From 2bfa2ad4c7b40f6316618dea4d7b34ee63429568 Mon Sep 17 00:00:00 2001 From: Sean Lu Date: Fri, 6 Dec 2024 15:44:37 +0800 Subject: [PATCH] version 2.5.0 --- .../Editor/AndroidManifestProcess.cs | 40 +- .../Scripts/CompositionLayerEditor.cs | 57 +- .../Editor/PackageManagerHelper.cs | 166 + ...k.cs.meta => PackageManagerHelper.cs.meta} | 2 +- .../Arts.meta => Editor/Preferences.meta} | 2 +- .../Preferences/PreferenceAvatarAsset.cs | 24 + .../PreferenceAvatarAsset.cs.meta} | 2 +- .../Preferences/ViveOpenXRPreference.cs | 296 + .../Preferences/ViveOpenXRPreference.cs.meta} | 2 +- .../Editor/VIVEFocus3FeatureEditor.cs | 30 - .../Editor/ViveAnchorEditor.cs | 24 + .../ViveAnchorEditor.cs.meta} | 2 +- com.htc.upm.vive.openxr/Editor/ViveMenu.cs | 44 + .../Editor/ViveMenu.cs.meta | 11 + .../Editor/ViveMockRuntimeEditor.cs | 64 + .../Editor/ViveMockRuntimeEditor.cs.meta | 11 + .../Editor/ViveOpenXRBuildCheck.cs | 135 - ...3FeatureSet.cs => ViveOpenXRFeatureSet.cs} | 19 +- ...t.cs.meta => ViveOpenXRFeatureSet.cs.meta} | 0 .../Editor/ViveSpectatorCameraProcess.cs | 81 + .../Editor/ViveSpectatorCameraProcess.cs.meta | 11 + com.htc.upm.vive.openxr/LICENSE | 54 - com.htc.upm.vive.openxr/LICENSE.txt | 4 + .../{LICENSE.meta => LICENSE.txt.meta} | 0 .../MockRuntime~/Win64/ViveMockRuntime.dll | 3 + .../Runtime/Android/arm64/libopenxr_loader.so | 4 +- .../Runtime/Android/arm64/libviveopenxr.so | 4 +- .../Runtime/Android/openxr_loader.aar | 4 +- .../Runtime/Common/IViveFeatureWrapper.cs | 38 + .../Common/IViveFeatureWrapper.cs.meta | 11 + .../Runtime/Common/MemoryTools.cs | 80 + .../Scripts => Common}/MemoryTools.cs.meta | 0 .../Common/ViveFeatureCommonWrapper.cs | 167 +- .../Common/ViveFeatureFutureWrapper.cs | 207 + .../Common/ViveFeatureFutureWrapper.cs.meta | 11 + .../Runtime/Common/ViveFeatureSpaceWrapper.cs | 86 +- .../Runtime/Common/ViveInterceptors.cs | 231 +- .../Common/ViveInterceptorsBeginSession.cs | 85 + .../ViveInterceptorsBeginSession.cs.meta | 11 + .../Common/ViveInterceptorsPollEvent.cs | 129 + .../Common/ViveInterceptorsPollEvent.cs.meta | 11 + .../Runtime/Common/ViveInterceptorsSubmit.cs | 89 + .../Common/ViveInterceptorsSubmit.cs.meta | 11 + .../Common/ViveInterceptorsWaitFrame.cs | 137 +- .../Runtime/Common/ViveRenderThreadTask.cs | 329 + .../Common/ViveRenderThreadTask.cs.meta | 11 + .../Scripts/CompositionLayer.cs | 289 +- .../Scripts/CompositionLayerPassthroughAPI.cs | 9 +- .../Arts/VRMfile.meta => Runtime/Editor.meta} | 2 +- .../Editor/CompositionLayer.meta} | 2 +- ...ViveCompositionLayerExtraSettingsEditor.cs | 46 + ...ompositionLayerExtraSettingsEditor.cs.meta | 11 + .../Runtime/Editor/FrameSynchronization.meta | 8 + .../ViveFrameSynchronizationEditor.cs | 30 + .../ViveFrameSynchronizationEditor.cs.meta | 11 + .../Runtime/Editor/Interactions.meta | 8 + .../Interactions/ViveInteractionsEditor.cs | 184 + .../ViveInteractionsEditor.cs.meta | 11 + .../Runtime/Editor/VIVERigEditor.cs | 44 + .../Runtime/Editor/VIVERigEditor.cs.meta | 11 + .../Anchor/Documentation/OpenXRExtensions.md | 180 + .../Features/Anchor/Scripts/ViveAnchor.cs | 802 +- .../ViveCompositionLayerExtraSettings.cs | 203 + .../ViveCompositionLayerExtraSettings.cs.meta | 11 + .../Scripts/ViveCompositionLayerHelper.cs | 114 +- .../ViveCompositionLayerPassthrough.cs | 3 +- .../ViveCompositionLayerPassthroughHelper.cs | 3 + .../Scripts/ViveDisplayRefreshRate.cs | 9 +- .../Scripts/ViveDisplayRefreshRateHelper.cs | 111 + .../ViveDisplayRefreshRateHelper.cs.meta | 11 + .../Features/EyeTracker/ViveEyeTracker.cs | 4 +- .../Documentation/OpenXRExtensions.md | 8 +- .../Scripts/ViveFacialTracking.cs | 7 +- .../Scripts/ViveFacialTrackingHelper.cs | 10 +- .../Runtime/Features/FirstPersonObserver.meta | 8 + .../Features/FirstPersonObserver/Scripts.meta | 8 + .../Scripts/ViveFirstPersonObserver.cs | 185 + .../Scripts/ViveFirstPersonObserver.cs.meta | 11 + .../Foveation/Scripts/ViveFoveation.cs | 4 +- .../Foveation/Scripts/ViveFoveationHelper.cs | 38 + .../Scripts/ViveFoveationHelper.cs.meta | 11 + .../Features/FrameSynchronization.meta | 8 + .../FrameSynchronization/Documentation.meta | 8 + .../Documentation/OpenXRExtensions.md | 19 + .../Documentation/OpenXRExtensions.md.meta | 7 + .../FrameSynchronization/Scripts.meta | 8 + .../Scripts/ViveFrameSynchronization.cs | 165 + .../Scripts/ViveFrameSynchronization.cs.meta | 11 + .../Scripts/ViveFrameSynchronizationHelper.cs | 67 + .../ViveFrameSynchronizationHelper.cs.meta | 11 + .../Documentation/OpenXRExtensions.md | 69 +- .../Scripts/ViveHandInteraction.cs | 102 +- .../Scripts/ViveHandInteractionExt.cs | 585 + .../Scripts/ViveHandInteractionExt.cs.meta | 11 + .../Hand/Tracking/Scripts/ViveHandTracking.cs | 146 +- .../Runtime/Features/Interactions.meta | 8 + .../Features/Interactions/ViveInteractions.cs | 154 + .../Interactions/ViveInteractions.cs.meta | 11 + .../Runtime/Features/MockRuntime.meta | 8 + .../Features/MockRuntime/ViveMockRuntime.cs | 76 + .../MockRuntime/ViveMockRuntime.cs.meta | 11 + .../Runtime/Features/Passthrough.meta | 8 + .../Features/Passthrough/Documentation.meta | 8 + .../Documentation/OpenXRExtensions.md | 30 + .../Documentation/OpenXRExtensions.md.meta | 7 + .../Runtime/Features/Passthrough/Scripts.meta | 8 + .../Passthrough/Scripts/VivePassthrough.cs | 1125 + .../Scripts/VivePassthrough.cs.meta | 11 + .../Scripts/VivePassthroughHelper.cs | 534 + .../Scripts/VivePassthroughHelper.cs.meta | 11 + .../Scripts/VivePathEnumeration.cs | 2 +- .../Documentation/OpenXRExtensions.md | 101 + .../Scripts/VivePlaneDetection.cs | 5 +- .../Features/SecondaryViewConfiguration.meta | 8 + .../SecondaryViewConfiguration/Scripts.meta | 8 + .../Scripts/AccessDebugTexture.cs | 126 + .../Scripts/AccessDebugTexture.cs.meta | 11 + .../Scripts/SpectatorCameraBased.Editor.cs | 146 + .../SpectatorCameraBased.Editor.cs.meta | 11 + .../Scripts/SpectatorCameraBased.cs | 836 + .../Scripts/SpectatorCameraBased.cs.meta | 11 + .../ViveSecondaryViewConfiguration.Editor.cs | 93 + ...eSecondaryViewConfiguration.Editor.cs.meta | 11 + .../Scripts/ViveSecondaryViewConfiguration.cs | 898 + .../ViveSecondaryViewConfiguration.cs.meta | 11 + .../Runtime/Features/Tracker/ViveTracker.meta | 8 + .../ViveTracker/HTCViveTrackerProfile.cs | 395 + .../ViveTracker/HTCViveTrackerProfile.cs.meta | 11 + .../Tracker/Wrist/Scripts/ViveWristTracker.cs | 121 +- .../Tracker/XR/Scripts/ViveXRTracker.cs | 2296 +- .../Runtime/Features/UserPresence.meta | 8 + .../Features/UserPresence/Documentation.meta | 8 + .../Documentation/OpenXRExtensions.md | 16 + .../Documentation/OpenXRExtensions.md.meta | 7 + .../Features/UserPresence/Scripts.meta | 8 + .../UserPresence/Scripts/ViveUserPresence.cs | 252 + .../Scripts/ViveUserPresence.cs.meta | 11 + .../Scripts/ViveUserPresenceHelper.cs | 92 + .../Scripts/ViveUserPresenceHelper.cs.meta | 11 + com.htc.upm.vive.openxr/Runtime/Models.meta | 8 + .../Runtime/Models/Controller.meta | 8 + .../Runtime/Models/Controller/2.5.meta | 8 + .../Models/Controller/2.5/Materials.meta | 8 + .../Controller/2.5/Materials/Ctrl_Battery.mat | 80 + .../2.5/Materials/Ctrl_Battery.mat.meta} | 2 +- .../Controller/2.5/Materials/_DEFAULT_MTL.mat | 85 + .../2.5/Materials/_DEFAULT_MTL.mat.meta} | 2 +- .../Runtime/Models/Controller/2.5/Models.meta | 8 + .../Controller/2.5/Models/controller_L.fbx | 3 + .../2.5/Models/controller_L.fbx.meta | 111 + .../Controller/2.5/Models/controller_R.fbx | 3 + .../2.5/Models/controller_R.fbx.meta | 111 + .../Models/Controller/2.5}/Textures.meta | 2 +- .../2.5/Textures}/TX_PanelBattery_status4.png | 0 .../TX_PanelBattery_status4.png.meta} | 8 +- .../2.5/Textures/controller_lr.png} | 0 .../2.5/Textures/controller_lr.png.meta} | 4 +- .../Controller/ControllerModelActions.cs | 118 + .../Controller/ControllerModelActions.cs.meta | 11 + .../Runtime/Models/Hand.meta | 8 + .../Runtime/Models/Hand/2.5.meta | 8 + .../Runtime/Models/Hand/2.5/Lefthand.fbx | 3 + .../Runtime/Models/Hand/2.5/Lefthand.fbx.meta | 111 + .../Runtime/Models/Hand/2.5/Materials.meta | 8 + .../Models/Hand/2.5/Materials/Hand.mat | 50 + .../Models/Hand/2.5/Materials/Hand.mat.meta} | 2 +- .../Runtime/Models/Hand/2.5/Righthand.fbx | 3 + .../Models/Hand/2.5/Righthand.fbx.meta | 111 + .../Runtime/Models/Hand/2.5/Shaders.meta | 8 + .../Hand/2.5/Shaders/handBlueGrafillOL.shader | 116 + .../2.5/Shaders/handBlueGrafillOL.shader.meta | 9 + .../Runtime/Models/Hand/2.5/Textures.meta | 8 + .../Models/Hand/2.5/Textures/Hand_alpha.png | 3 + .../Hand/2.5/Textures/Hand_alpha.png.meta} | 6 +- .../Runtime/Models/Hand/HandModelActions.cs | 136 + .../Models/Hand/HandModelActions.cs.meta | 11 + .../Runtime/OpenXRUtils.cs | 4172 +- com.htc.upm.vive.openxr/Runtime/Prefabs.meta | 8 + .../Prefabs/ViveFocus3ControllerAimL.prefab | 893 + .../ViveFocus3ControllerAimL.prefab.meta | 7 + .../Prefabs/ViveFocus3ControllerAimR.prefab | 893 + .../ViveFocus3ControllerAimR.prefab.meta | 7 + .../Runtime/Prefabs/ViveHandL.prefab | 1011 + .../Runtime/Prefabs/ViveHandL.prefab.meta | 7 + .../Runtime/Prefabs/ViveHandR.prefab | 1011 + .../Runtime/Prefabs/ViveHandR.prefab.meta | 7 + .../Runtime/Profiles/XR_EXT_hand_tracking.cs | 16 +- .../Profiles/XR_EXT_hand_tracking_impls.cs | 62 +- .../Runtime/Profiles/XR_EXT_user_presence.cs | 29 + .../Profiles/XR_EXT_user_presence.cs.meta | 11 + .../Profiles/XR_EXT_user_presence_impls.cs | 46 + .../XR_EXT_user_presence_impls.cs.meta | 11 + ...XR_HTC_composition_layer_extra_settings.cs | 45 + ...C_composition_layer_extra_settings.cs.meta | 11 + ..._composition_layer_extra_settings_impls.cs | 44 + ...osition_layer_extra_settings_impls.cs.meta | 11 + .../Runtime/Profiles/XR_HTC_passthrough.cs | 9 +- .../XR_HTC_passthrough_configuration.cs | 59 + .../XR_HTC_passthrough_configuration.cs.meta | 11 + .../XR_HTC_passthrough_configuration_impls.cs | 75 + ...TC_passthrough_configuration_impls.cs.meta | 11 + .../Profiles/XR_HTC_passthrough_impls.cs | 21 +- .../Runtime/Resources.meta | 8 + .../Runtime/Resources/Prefabs.meta | 8 + .../Runtime/Resources/Prefabs/ViveRig.prefab | 258 + .../Resources/Prefabs/ViveRig.prefab.meta | 7 + .../Runtime/Toolkits/Anchor/AnchorManager.cs | 580 +- .../Runtime/Toolkits/Common.meta | 8 + .../Runtime/Toolkits/Common/VIVEInput.cs | 815 + .../Runtime/Toolkits/Common/VIVEInput.cs.meta | 11 + .../Runtime/Toolkits/Future.meta | 8 + .../Runtime/Toolkits/Future/FutureTask.cs | 390 + .../Toolkits/Future/FutureTask.cs.meta | 11 + .../Runtime/Toolkits/Passthrough.meta | 8 + .../Toolkits/Passthrough/PassthroughAPI.cs | 783 + .../Passthrough/PassthroughAPI.cs.meta | 11 + .../PlaneDetection/Scripts/MemoryTools.cs | 51 - .../Runtime/{ => Toolkits}/Raycast.meta | 0 .../{ => Toolkits}/Raycast/Resources.meta | 0 .../Raycast/Resources/Materials.meta | 0 .../Resources/Materials/GazePointerDef.mat | 0 .../Materials/GazePointerDef.mat.meta | 0 .../Raycast/Resources/Shaders.meta | 0 .../Resources/Shaders/GazePointerDef.shader | 0 .../Shaders/GazePointerDef.shader.meta | 0 .../{ => Toolkits}/Raycast/Scripts.meta | 0 .../Raycast/Scripts/CanvasProvider.cs | 0 .../Raycast/Scripts/CanvasProvider.cs.meta | 0 .../Scripts/ControllerRaycastPointer.cs | 20 +- .../Scripts/ControllerRaycastPointer.cs.meta | 0 .../Raycast/Scripts/GazeRaycastRing.cs | 93 +- .../Raycast/Scripts/GazeRaycastRing.cs.meta | 0 .../Raycast/Scripts/HandRaycastPointer.cs | 36 +- .../Scripts/HandRaycastPointer.cs.meta | 0 .../Raycast/Scripts/RaycastEvents.cs | 0 .../Raycast/Scripts/RaycastEvents.cs.meta | 0 .../Raycast/Scripts/RaycastImpl.cs | 42 +- .../Raycast/Scripts/RaycastImpl.cs.meta | 0 .../Raycast/Scripts/RaycastPointer.cs | 18 +- .../Raycast/Scripts/RaycastPointer.cs.meta | 0 .../Raycast/Scripts/RaycastRing.cs | 18 +- .../Raycast/Scripts/RaycastRing.cs.meta | 0 .../Raycast/Scripts/RaycastSwitch.cs | 0 .../Raycast/Scripts/RaycastSwitch.cs.meta | 0 .../Raycast/Scripts/TargetCanvas.cs | 0 .../Raycast/Scripts/TargetCanvas.cs.meta | 0 .../Editor/HandMeshManagerEditor.cs | 2 +- .../Scripts/Grab/HandGrabInteractable.cs | 65 +- .../Scripts/Grab/HandGrabInteractor.cs | 76 +- .../Scripts/Grab/OneGrabMoveConstraint.cs | 9 +- .../Scripts/Grab/OneGrabRotateConstraint.cs | 15 +- .../Scripts/HandInteractionUtils.cs | 213 +- .../Scripts/HandMeshManager.cs | 36 +- .../Scripts/HandPose/HandPoseProvider.cs | 22 +- .../Scripts/HandPose/RealHandPose.cs | 6 +- .../Runtime/Toolkits/Spectator.meta | 8 + .../Runtime/Toolkits/Spectator/Scripts.meta | 8 + .../Toolkits/Spectator/Scripts/Helper.meta | 8 + .../Scripts/Helper/AndroidProcessHelper.cs | 82 + .../Helper/AndroidProcessHelper.cs.meta | 11 + .../Spectator/Scripts/Helper/EditorHelper.cs | 63 + .../Scripts/Helper/EditorHelper.cs.meta | 11 + .../Scripts/Helper/IOProcessHelper.cs | 163 + .../Scripts/Helper/IOProcessHelper.cs.meta | 11 + .../Scripts/Helper/LayerMaskHelper.cs | 102 + .../Scripts/Helper/LayerMaskHelper.cs.meta | 11 + .../Scripts/Helper/SpectatorCameraHelper.cs | 516 + .../Helper/SpectatorCameraHelper.cs.meta | 11 + .../Scripts/Helper/TextureProcessHelper.cs | 1114 + .../Helper/TextureProcessHelper.cs.meta | 11 + .../Scripts/ISpectatorCameraSetting.cs | 127 + .../Scripts/ISpectatorCameraSetting.cs.meta | 11 + .../Scripts/SpectatorCameraManager.Editor.cs | 748 + .../SpectatorCameraManager.Editor.cs.meta | 11 + .../Scripts/SpectatorCameraManager.cs | 1669 + .../Scripts/SpectatorCameraManager.cs.meta | 11 + .../Scripts/SpectatorCameraTracker.Editor.cs | 374 + .../SpectatorCameraTracker.Editor.cs.meta | 11 + .../Scripts/SpectatorCameraTracker.cs | 479 + .../Scripts/SpectatorCameraTracker.cs.meta | 11 + .../Runtime/VIVE.OpenXR.asmdef | 17 +- .../Runtime/VIVECosmosProfile.cs | 35 +- .../Runtime/VIVEFocus3Feature.cs | 361 +- .../Runtime/VIVEFocus3Profile.cs | 654 +- com.htc.upm.vive.openxr/Runtime/VIVERig.cs | 44 +- .../Samples/Anchor/Materials/Green.mat | 80 + .../Samples/Anchor/Materials/Green.mat.meta} | 2 +- ...Test.unity => AnchorPersistanceTest.unity} | 7655 +- ....meta => AnchorPersistanceTest.unity.meta} | 2 +- .../Samples/Anchor/Scenes/AnchorTest.unity | 4677 - .../Anchor/Scripts/AnchorTestHandle.cs | 1317 +- .../ActionMap/InputActions.inputactions | 2749 +- .../Samples/Samples/Commons/Fonts.meta | 8 + .../Fonts/NotoSansTraditionalChinese.meta | 8 + .../NotoSansTC-VariableFont_wght.ttf | 3 + .../NotoSansTC-VariableFont_wght.ttf.meta | 21 + .../NotoSansTC-VariableFont_wghtSDF.asset | 2015 + ...otoSansTC-VariableFont_wghtSDF.asset.meta} | 4 +- .../Fonts/NotoSansTraditionalChinese/OFL.txt | 93 + .../NotoSansTraditionalChinese/OFL.txt.meta | 7 + .../NotoSansTraditionalChinese/README.txt | 71 + .../README.txt.meta | 7 + .../Samples/Commons/Script/CommonHelper.cs | 300 + .../Commons/Script/CommonHelper.cs.meta | 11 + .../Samples/Commons/Script/CommonPose.cs | 127 + .../Samples/Commons/Script/CommonPose.cs.meta | 11 + .../Commons/Script/Focus3ModelAction.cs | 98 + .../Commons/Script/Focus3ModelAction.cs.meta | 11 + .../Commons/Script/HideObjectWhenUntracked.cs | 52 +- .../Script/HideObjectsWhenUntracked.cs | 40 +- .../Controller/Controller_Reaction.cs | 6 +- .../VRSPrefabs/Controller/Focus3AimL.prefab | 809 + .../Controller/Focus3AimL.prefab.meta | 7 + .../VRSPrefabs/Controller/Focus3AimR.prefab | 809 + .../Controller/Focus3AimR.prefab.meta | 7 + .../VRSPrefabs/Controller/Focus3_Left.prefab | 20 +- .../VRSPrefabs/Controller/Focus3_Right.prefab | 20 +- .../Materials/Sharpening.mat | 87 + .../Materials/Sharpening.mat.meta | 8 + .../Scenes/CompositionLayerTest_Rects.unity | 801 + .../CompositionLayerTest_Rects.unity.meta} | 2 +- .../CompositionLayerTest_Sharpening.unity | 17653 +++ ...CompositionLayerTest_Sharpening.unity.meta | 7 + .../CompositionLayer2/Scripts/Actions.cs | 82 + .../CompositionLayer2/Scripts/Actions.cs.meta | 11 + .../Scripts/PassthroughTest_Manager.cs | 58 +- .../CompositionLayer2/Textures/LeftRight.png | 3 + .../Textures/LeftRight.png.meta} | 4 +- .../CompositionLayer2/Textures/building1.png | 3 + .../Textures/building1.png.meta | 135 + .../CompositionLayer2/Textures/building2.png | 3 + .../Textures/building2.png.meta | 135 + .../CompositionLayer2/Textures/mono.jpg | 3 + .../CompositionLayer2/Textures/mono.jpg.meta} | 4 +- .../CompositionLayer2/Textures/topdown.jpg | 3 + .../Textures/topdown.jpg.meta} | 4 +- .../VIVE.OpenXR.Samples.TMPCheck.asmdef | 5 + .../Samples/EyeTracker/EyeTrackerTest.cs | 4 +- .../FacialTracking/Scripts/LipExpText.cs | 8 +- .../version2/Avatar_Shieh/Avatar_Shieh_V2.fbx | 4 +- .../ViveSR/Scenes/Face/FaceModel.unity | 69 +- .../ViveSR/Scripts/Lip/SRanipal_LipData_v2.cs | 16 +- .../Scenes/FoveatedRenderingTest.unity | 675 +- .../Scripts/MyFoveatedTest.cs | 51 +- .../Samples/Samples/HandInteractionExt.meta | 8 + .../HandInteractionExt/HandInteractionExt.cs | 294 + .../HandInteractionExt.cs.meta | 11 + .../HandInteractionExt.inputactions | 526 + .../HandInteractionExt.inputactions.meta | 14 + .../HandInteractionExt.unity | 8927 ++ .../HandInteractionExt.unity.meta | 7 + .../Vive_UltimateTracker.fbx.meta | 7 +- .../Vive_Ultimate_Tracker_BaseMap.mat} | 158 +- .../Vive_Ultimate_Tracker_BaseMap.mat.meta | 8 + .../Samples/Samples/Input/OpenXRInput.unity | 3405 +- .../Prefabs/VIVE/Vive_UltimateTracker.prefab | 2 +- .../Input/Scripts/TrackingModeOrigin.cs | 10 + .../Input/Scripts/VIVE/ControllerTracking.cs | 24 +- .../Scripts/VIVE/HandInteractionTracking.cs | 36 +- .../Samples/Input/Scripts/VIVE/PoseDriver.cs | 4 +- .../Samples/Input/Scripts/VIVE/TrackerPose.cs | 6 +- .../Samples/Input/Scripts/VIVE/TrackerText.cs | 14 +- .../Input/Scripts/VIVE/TrackerTracking.cs | 33 +- .../Input/Scripts/VIVE/UserPresence.cs | 56 + .../Input/Scripts/VIVE/UserPresence.cs.meta | 11 + .../Samples/Input/Scripts/VIVE/Utils.cs | 2 +- .../Samples/Samples/Input/Textures.meta | 2 +- .../Samples/Samples/Input/Textures/VIVE.meta | 8 + .../Input/Textures/VIVE/UltimateTracker.meta | 8 + .../Vive_Ultimate_Tracker_BaseMap.png | 3 + .../Vive_Ultimate_Tracker_BaseMap.png.meta} | 4 +- .../Vive_Ultimate_Tracker_NormalMap.png | 3 + .../Vive_Ultimate_Tracker_NormalMap.png.meta | 135 + .../Vive_Ultimate_Tracker_OcclusionMap.png | 3 + ...ive_Ultimate_Tracker_OcclusionMap.png.meta | 135 + .../Vive_Ultimate_Tracker_SpecularMap.png | 3 + ...Vive_Ultimate_Tracker_SpecularMap.png.meta | 135 + .../Samples/Samples/Input/Textures/test.png | 3 - .../Samples/Samples/Input/Textures/text.png | 3 - .../Scenes/Passthrough_Configuration.unity | 24569 ++++ .../Passthrough_Configuration.unity.meta | 7 + .../Scripts/PassthroughSample_Planar.cs | 24 +- .../Scripts/PassthroughSample_Projection.cs | 31 +- .../Scripts/Passthrough_manager.cs | 243 + .../Scripts/Passthrough_manager.cs.meta | 11 + .../MeshingTeapotFeature.cs | 2 +- .../Native~/openxr/openxr.h | 8 +- .../Native~/openxr/openxr_reflection.h | 8 +- .../Samples~/Samples/Samples/Spectator.meta | 8 + .../Samples/Samples/Spectator/AdvDemo.meta | 8 + .../Samples/Spectator/AdvDemo/Audio.meta | 8 + .../Spectator/AdvDemo/Audio/Button Pop.wav | 3 + .../AdvDemo/Audio/Button Pop.wav.meta | 22 + .../Samples/Spectator/AdvDemo/Materials.meta | 8 + .../AdvDemo/Materials/BlackGroove.mat | 77 + .../AdvDemo/Materials/BlackGroove.mat.meta} | 16 +- .../Materials/SimpleTeleportHighlight.mat | 87 + .../SimpleTeleportHighlight.mat.meta} | 16 +- .../Samples/Spectator/AdvDemo/Meshes.meta | 8 + .../AdvDemo/Meshes/CameraModel.asset | 165 + .../AdvDemo/Meshes/CameraModel.asset.meta | 8 + .../Samples/Spectator/AdvDemo/Models.meta | 8 + .../AdvDemo/Models/Teleport Hightlight.fbx | 3 + .../Models/Teleport Hightlight.fbx.meta | 109 + .../Samples/Spectator/AdvDemo/Prefabs.meta | 8 + .../Prefabs/Spectator Camera Manager.prefab | 69 + .../Spectator Camera Manager.prefab.meta | 7 + .../Prefabs/Spectator Camera Prefab.prefab | 375 + .../Spectator Camera Prefab.prefab.meta | 7 + .../AdvDemo/Prefabs/Teleport Reticle.prefab | 112 + .../Prefabs/Teleport Reticle.prefab.meta | 7 + .../Samples/Spectator/AdvDemo/Scenes.meta | 8 + .../Spectator/AdvDemo/Scenes/Adv_Demo_1.unity | 18792 +++ .../AdvDemo/Scenes/Adv_Demo_1.unity.meta | 7 + .../Spectator/AdvDemo/Scenes/Adv_Demo_2.unity | 2481 + .../AdvDemo/Scenes/Adv_Demo_2.unity.meta | 7 + .../Samples/Spectator/AdvDemo/Scripts.meta | 8 + .../CharacterMovementManager.Editor.cs | 32 + .../CharacterMovementManager.Editor.cs.meta | 11 + .../Scripts/CharacterMovementManager.cs | 87 + .../Scripts/CharacterMovementManager.cs.meta | 11 + .../AdvDemo/Scripts/ControllerInputManager.cs | 132 + .../Scripts/ControllerInputManager.cs.meta | 11 + .../Spectator/AdvDemo/Scripts/Helper.meta | 8 + .../AdvDemo/Scripts/Helper/DebugLogHelper.cs | 123 + .../Scripts/Helper/DebugLogHelper.cs.meta | 11 + .../Scripts/Helper/GameObjectProcessHelper.cs | 136 + .../Helper/GameObjectProcessHelper.cs.meta | 11 + .../Scripts/Helper/XRDeviceProcessHelper.cs | 67 + .../Helper/XRDeviceProcessHelper.cs.meta | 11 + .../Scripts/ObjectInteractionManager.cs | 409 + .../Scripts/ObjectInteractionManager.cs.meta | 11 + .../Scripts/TeleportationManager.Editor.cs | 32 + .../TeleportationManager.Editor.cs.meta | 11 + .../AdvDemo/Scripts/TeleportationManager.cs | 203 + .../Scripts/TeleportationManager.cs.meta | 11 + .../AdvDemo/Scripts/TestSceneUIButton.cs | 41 + .../AdvDemo/Scripts/TestSceneUIButton.cs.meta | 11 + .../Spectator/AdvDemo/Scripts/UIHint.cs | 95 + .../Spectator/AdvDemo/Scripts/UIHint.cs.meta | 11 + .../AdvDemo/Scripts/UIHintStaticResource.cs | 270 + .../Scripts/UIHintStaticResource.cs.meta | 11 + .../AdvDemo/Scripts/UIManager.Editor.cs | 33 + .../AdvDemo/Scripts/UIManager.Editor.cs.meta | 11 + .../Spectator/AdvDemo/Scripts/UIManager.cs | 799 + .../AdvDemo/Scripts/UIManager.cs.meta | 11 + .../Samples/Spectator/AdvDemo/Shaders.meta | 8 + .../Shaders/SimpleTeleportHighlight.shader | 59 + .../SimpleTeleportHighlight.shader.meta | 9 + .../Samples/Samples/Spectator/Demo.meta | 8 + .../Samples/Spectator/Demo/Materials.meta | 8 + .../Spectator/Demo/Materials}/Green.mat | 158 +- .../Spectator/Demo/Materials/Green.mat.meta | 8 + .../Samples/Spectator}/Demo/Materials/Red.mat | 6 +- .../Spectator/Demo/Materials/Red.mat.meta | 8 + .../Demo/Materials/Spectator Camera Debug.mat | 95 + .../Materials/Spectator Camera Debug.mat.meta | 8 + .../Samples/Spectator/Demo/Scenes.meta | 8 + .../Spectator/Demo/Scenes/Simple_Demo_1.unity | 2290 + .../Demo/Scenes/Simple_Demo_1.unity.meta | 7 + .../Spectator/Demo/Scenes/Simple_Demo_2.unity | 1567 + .../Demo/Scenes/Simple_Demo_2.unity.meta | 7 + .../Samples/Spectator/Demo/Scripts.meta | 8 + .../Demo/Scripts/SecondSceneLoadTest.cs | 81 + .../Demo/Scripts/SecondSceneLoadTest.cs.meta | 11 + .../Samples/Samples/Spectator/Prefabs.meta | 8 + .../Prefabs/Spectator Camera Based.prefab | 49 + .../Spectator Camera Based.prefab.meta | 7 + .../Spectator/Prefabs/Test Cube.prefab | 134 + .../Spectator/Prefabs/Test Cube.prefab.meta | 7 + .../Samples/VIVE.OpenXR.Samples.asmdef | 21 +- .../Samples~/Samples/Samples/ViveTracker.meta | 8 + .../ViveTracker/ViveTrackerSample.unity | 5496 + .../ViveTracker/ViveTrackerSample.unity.meta | 7 + .../Toolkits/BodyTracking(experimental).meta | 2 +- .../BodyTracking(experimental)/Demo.meta | 2 +- .../Arts/Female1_withAvatarIK.avatar.asset | 4223 - .../Female1_withBodyTracking.avatar.asset | 4223 - .../Demo/Arts/Female1_withVrmIK.avatar.asset | 4223 - .../Female1.BlendShapes/BlendShape.asset | 33 - .../Female1.Textures/_11.normal.png.meta | 135 - .../Female1/Female1.Textures/_17.png.meta | 135 - .../Arts/VRMfile/VRM1/Female1/Female1.vrm | Bin 16232176 -> 0 bytes .../VRMfile/VRM1/Female1/Female1.vrm.meta | 12 - .../VRMfile/VRM1/Female1/Female1_Hair1.mat | 93 - .../VRMfile/VRM1/Female1/Female1_Hair2.mat | 93 - .../Demo/Avatars.meta | 8 + .../Demo/Avatars/AnimeGirls.meta | 8 + .../Avatars/AnimeGirls/BaseCharacter.meta | 8 + .../AnimeGirls/BaseCharacter/Sourcefiles.meta | 8 + .../Sourcefiles/BaseCharacter.fbx | 3 + .../Sourcefiles/BaseCharacter.fbx.meta | 836 + .../BaseCharacter/Sourcefiles/Mat.meta | 8 + .../BaseCharacter/Sourcefiles/Mat/Body.mat | 77 + .../Sourcefiles/Mat/Body.mat.meta | 8 + .../BaseCharacter/Sourcefiles/Mat/Eye.mat | 78 + .../Sourcefiles/Mat/Eye.mat.meta | 8 + .../BaseCharacter/Sourcefiles/Mat/EyeBack.mat | 78 + .../Sourcefiles/Mat/EyeBack.mat.meta | 8 + .../Sourcefiles/Mat/Eye_reflection.mat | 77 + .../Sourcefiles/Mat/Eye_reflection.mat.meta | 8 + .../Sourcefiles/Mat/Eyebrows.mat | 78 + .../Sourcefiles/Mat/Eyebrows.mat.meta | 8 + .../Sourcefiles/Mat/Eyelashes.mat | 78 + .../Sourcefiles/Mat/Eyelashes.mat.meta | 8 + .../Sourcefiles/Mat/Eyeliner.mat | 78 + .../Sourcefiles/Mat/Eyeliner.mat.meta | 8 + .../BaseCharacter/Sourcefiles/Mat/Face.mat | 77 + .../Sourcefiles/Mat/Face.mat.meta | 8 + .../Sourcefiles/Mat/Hair_head.mat | 78 + .../Sourcefiles/Mat/Hair_head.mat.meta | 8 + .../Sourcefiles/Mat/Mat_EyeReflection.mat | 76 + .../Mat/Mat_EyeReflection.mat.meta | 8 + .../Sourcefiles/Mat/Mat_Hair_1_hair.mat | 76 + .../Sourcefiles/Mat/Mat_Hair_1_hair.mat.meta | 8 + .../Sourcefiles/Mat/Mat_Hair_1_head.mat | 77 + .../Sourcefiles/Mat/Mat_Hair_1_head.mat.meta | 8 + .../Sourcefiles/Mat/Mat_Hair_2_hair.mat | 76 + .../Sourcefiles/Mat/Mat_Hair_2_hair.mat.meta | 8 + .../Sourcefiles/Mat/Mat_Hair_2_head.mat | 77 + .../Sourcefiles/Mat/Mat_Hair_2_head.mat.meta | 8 + .../Sourcefiles/Mat/Mat_Hair_3_hair.mat | 76 + .../Sourcefiles/Mat/Mat_Hair_3_hair.mat.meta | 8 + .../Sourcefiles/Mat/Mat_Hair_3_head.mat | 77 + .../Sourcefiles/Mat/Mat_Hair_3_head.mat.meta | 8 + .../Sourcefiles/Mat/Mat_Hair_4_hair.mat | 76 + .../Sourcefiles/Mat/Mat_Hair_4_hair.mat.meta | 8 + .../Sourcefiles/Mat/Mat_Hair_4_head.mat | 77 + .../Sourcefiles/Mat/Mat_Hair_4_head.mat.meta | 8 + .../Sourcefiles/Mat/Mat_Hair_5_hair.mat | 76 + .../Sourcefiles/Mat/Mat_Hair_5_hair.mat.meta | 8 + .../Sourcefiles/Mat/Mat_Hair_5_head.mat | 77 + .../Sourcefiles/Mat/Mat_Hair_5_head.mat.meta | 8 + .../Sourcefiles/Mat/Mat_transp_Eye_color2.mat | 77 + .../Mat/Mat_transp_Eye_color2.mat.meta | 8 + .../Sourcefiles/Mat/Mat_transp_Eye_color3.mat | 77 + .../Mat/Mat_transp_Eye_color3.mat.meta | 8 + .../Sourcefiles/Mat/Mat_transp_Eye_color4.mat | 78 + .../Mat/Mat_transp_Eye_color4.mat.meta | 8 + .../Sourcefiles/Mat/Mat_underwear_1.mat | 77 + .../Sourcefiles/Mat/Mat_underwear_1.mat.meta | 8 + .../Sourcefiles/Mat/Mat_underwear_2.mat | 76 + .../Sourcefiles/Mat/Mat_underwear_2.mat.meta | 8 + .../Sourcefiles/Mat/Mat_underwear_3.mat | 77 + .../Sourcefiles/Mat/Mat_underwear_3.mat.meta | 8 + .../Sourcefiles/Mat/mouth_inside.mat | 77 + .../Sourcefiles/Mat/mouth_inside.mat.meta | 8 + .../BaseCharacter/Sourcefiles/Shader.meta | 8 + .../Sourcefiles/Shader/DoubleSided.shader | 32 + .../Shader/DoubleSided.shader.meta | 8 + .../Sourcefiles/Shader/UnlitColor.shader | 18 + .../Sourcefiles/Shader/UnlitColor.shader.meta | 8 + .../BaseCharacter/Sourcefiles/Tex.meta | 8 + .../Sourcefiles/Tex/Tex_Body.png | 3 + .../Sourcefiles/Tex/Tex_Body.png.meta | 86 + .../Sourcefiles/Tex/Tex_EyeReflection.png | 3 + .../Tex/Tex_EyeReflection.png.meta | 86 + .../Sourcefiles/Tex/Tex_EyeWhite.png | 3 + .../Sourcefiles/Tex/Tex_EyeWhite.png.meta | 86 + .../Sourcefiles/Tex/Tex_Eyebrows.png | 3 + .../Sourcefiles/Tex/Tex_Eyebrows.png.meta | 86 + .../Sourcefiles/Tex/Tex_Eyelashes.png | 3 + .../Sourcefiles/Tex/Tex_Eyelashes.png.meta | 86 + .../Sourcefiles/Tex/Tex_Eyeliner.png | 3 + .../Sourcefiles/Tex/Tex_Eyeliner.png.meta | 86 + .../Sourcefiles/Tex/Tex_Eyes.png | 3 + .../Sourcefiles/Tex/Tex_Eyes.png.meta | 86 + .../Sourcefiles/Tex/Tex_Face.png | 3 + .../Sourcefiles/Tex/Tex_Face.png.meta | 76 + .../Sourcefiles/Tex/Tex_Face_makeup.png | 3 + .../Sourcefiles/Tex/Tex_Face_makeup.png.meta | 86 + .../Sourcefiles/Tex/Tex_Hair1_hair.png | 3 + .../Sourcefiles/Tex/Tex_Hair1_hair.png.meta | 86 + .../Sourcefiles/Tex/Tex_Hair1_head.png | 3 + .../Sourcefiles/Tex/Tex_Hair1_head.png.meta | 86 + .../Sourcefiles/Tex/Tex_Hair2_hair.png | 3 + .../Sourcefiles/Tex/Tex_Hair2_hair.png.meta | 86 + .../Sourcefiles/Tex/Tex_Hair2_head.png | 3 + .../Sourcefiles/Tex/Tex_Hair2_head.png.meta | 86 + .../Sourcefiles/Tex/Tex_Hair3_hair.png | 3 + .../Sourcefiles/Tex/Tex_Hair3_hair.png.meta | 86 + .../Sourcefiles/Tex/Tex_Hair3_head.png | 3 + .../Sourcefiles/Tex/Tex_Hair3_head.png.meta | 86 + .../Sourcefiles/Tex/Tex_Hair4_hair.png | 3 + .../Sourcefiles/Tex/Tex_Hair4_hair.png.meta | 86 + .../Sourcefiles/Tex/Tex_Hair4_head.png | 3 + .../Sourcefiles/Tex/Tex_Hair4_head.png.meta | 86 + .../Sourcefiles/Tex/Tex_Hair5_hair.png | 3 + .../Sourcefiles/Tex/Tex_Hair5_hair.png.meta | 86 + .../Sourcefiles/Tex/Tex_Hair5_head.png | 3 + .../Sourcefiles/Tex/Tex_Hair5_head.png.meta | 86 + .../Sourcefiles/Tex/Tex_Mouth.png | 3 + .../Sourcefiles/Tex/Tex_Mouth.png.meta | 86 + .../Sourcefiles/Tex/Tex_underwear_1.png | 3 + .../Sourcefiles/Tex/Tex_underwear_1.png.meta | 86 + .../Sourcefiles/Tex/Tex_underwear_2.png | 3 + .../Sourcefiles/Tex/Tex_underwear_2.png.meta | 86 + .../BaseCharacter/Underwear1.prefab | 2242 + .../BaseCharacter/Underwear1.prefab.meta} | 4 +- .../Demo/Avatars/AnimeGirls/Casual1.meta | 8 + .../Avatars/AnimeGirls/Casual1/Casual1.prefab | 2123 + .../AnimeGirls/Casual1/Casual1.prefab.meta | 7 + .../AnimeGirls/Casual1/SourceFiles.meta | 8 + .../Casual1/SourceFiles}/Material.meta | 2 +- .../Casual1/SourceFiles/Material/Mat.mat | 77 + .../SourceFiles/Material/Mat.mat.meta} | 16 +- .../AnimeGirls/Casual1/SourceFiles/Mesh.meta | 8 + .../Casual1/SourceFiles/Mesh/AnimeGirl.fbx | 3 + .../SourceFiles/Mesh/AnimeGirl.fbx.meta | 1108 + .../Casual1/SourceFiles/Texture.meta | 8 + .../Casual1/SourceFiles/Texture/Casual1.png | 3 + .../SourceFiles/Texture/Casual1.png.meta | 88 + .../SourceFiles/Texture/Casual1NORMAL.png | 3 + .../Texture/Casual1NORMAL.png.meta | 88 + .../VRMfile/VRM1 => Avatars}/Female1.meta | 2 +- .../Female1/Female1.Avatar.meta | 2 +- .../Female1/Female1.Avatar/VrmAvatar.asset | 42 +- .../Female1.Avatar/VrmAvatar.asset.meta | 2 +- .../Female1/Female1.AvatarDescription.meta | 2 +- .../AvatarDescription.asset | 0 .../AvatarDescription.asset.meta | 2 +- .../Female1/Female1.BlendShapes.meta | 2 +- .../Female1.BlendShapes/BlendShape.A.asset | 0 .../BlendShape.A.asset.meta | 2 +- .../BlendShape.Angry.asset | 0 .../BlendShape.Angry.asset.meta | 2 +- .../BlendShape.Blink.asset | 0 .../BlendShape.Blink.asset.meta | 2 +- .../BlendShape.Blink_L.asset | 0 .../BlendShape.Blink_L.asset.meta | 2 +- .../BlendShape.Blink_R.asset | 0 .../BlendShape.Blink_R.asset.meta | 2 +- .../Female1.BlendShapes/BlendShape.E.asset | 0 .../BlendShape.E.asset.meta | 2 +- .../Female1.BlendShapes/BlendShape.Fun.asset | 0 .../BlendShape.Fun.asset.meta | 2 +- .../Female1.BlendShapes/BlendShape.I.asset | 0 .../BlendShape.I.asset.meta | 2 +- .../Female1.BlendShapes/BlendShape.Joy.asset | 0 .../BlendShape.Joy.asset.meta | 2 +- .../BlendShape.Neutral.asset | 0 .../BlendShape.Neutral.asset.meta | 2 +- .../Female1.BlendShapes/BlendShape.O.asset | 0 .../BlendShape.O.asset.meta | 2 +- .../BlendShape.Sorrow.asset | 0 .../BlendShape.Sorrow.asset.meta | 2 +- .../BlendShape.Surprised.asset | 0 .../BlendShape.Surprised.asset.meta | 2 +- .../Female1.BlendShapes/BlendShape.U.asset | 0 .../BlendShape.U.asset.meta | 2 +- .../Female1.BlendShapes/BlendShape.asset | 33 + .../Female1.BlendShapes/BlendShape.asset.meta | 2 +- .../Female1.BlendShapes/LookDown.asset | 0 .../Female1.BlendShapes/LookDown.asset.meta | 2 +- .../Female1.BlendShapes/LookLeft.asset | 0 .../Female1.BlendShapes/LookLeft.asset.meta | 2 +- .../Female1.BlendShapes/LookRight.asset | 0 .../Female1.BlendShapes/LookRight.asset.meta | 2 +- .../Female1/Female1.BlendShapes/LookUp.asset | 0 .../Female1.BlendShapes/LookUp.asset.meta | 2 +- .../Female1/Female1.Materials.meta | 2 +- .../N00_000_00_Body_00_SKIN (Instance).asset | 21 +- ..._000_00_Body_00_SKIN (Instance).asset.meta | 2 +- ...00_00_EyeHighlight_00_EYE (Instance).asset | 18 +- ..._EyeHighlight_00_EYE (Instance).asset.meta | 2 +- ...N00_000_00_EyeIris_00_EYE (Instance).asset | 18 +- ...00_00_EyeIris_00_EYE (Instance).asset.meta | 2 +- ...00_000_00_EyeWhite_00_EYE (Instance).asset | 18 +- ...0_00_EyeWhite_00_EYE (Instance).asset.meta | 2 +- ...0_000_00_FaceBrow_00_FACE (Instance).asset | 18 +- ..._00_FaceBrow_00_FACE (Instance).asset.meta | 2 +- ...00_00_FaceEyeline_00_FACE (Instance).asset | 18 +- ..._FaceEyeline_00_FACE (Instance).asset.meta | 2 +- ..._000_00_FaceMouth_00_FACE (Instance).asset | 18 +- ...00_FaceMouth_00_FACE (Instance).asset.meta | 2 +- .../N00_000_00_Face_00_SKIN (Instance).asset | 23 +- ..._000_00_Face_00_SKIN (Instance).asset.meta | 2 +- ...0_000_00_HairBack_00_HAIR (Instance).asset | 16 +- ..._00_HairBack_00_HAIR (Instance).asset.meta | 2 +- .../N00_000_Hair_00_HAIR (Instance).asset | 18 +- ...N00_000_Hair_00_HAIR (Instance).asset.meta | 2 +- ...0_001_03_Bottoms_01_CLOTH (Instance).asset | 21 +- ..._03_Bottoms_01_CLOTH (Instance).asset.meta | 2 +- .../N00_002_01_Tops_01_CLOTH (Instance).asset | 21 +- ...002_01_Tops_01_CLOTH (Instance).asset.meta | 2 +- ...N00_006_01_Shoes_01_CLOTH (Instance).asset | 21 +- ...06_01_Shoes_01_CLOTH (Instance).asset.meta | 2 +- ...0_01_Onepiece_00_CLOTH_01 (Instance).asset | 21 +- ...Onepiece_00_CLOTH_01 (Instance).asset.meta | 2 +- ...0_01_Onepiece_00_CLOTH_02 (Instance).asset | 21 +- ...Onepiece_00_CLOTH_02 (Instance).asset.meta | 2 +- .../Female1/Female1.Meshes.meta | 2 +- .../Female1.Meshes/Body (merged).baked.asset | 0 .../Body (merged).baked.asset.meta | 2 +- .../Face (merged)(Clone).baked.asset | 0 .../Face (merged)(Clone).baked.asset.meta | 2 +- .../Hair001 (merged).baked.asset | 0 .../Hair001 (merged).baked.asset.meta | 2 +- .../Female1/Female1.MetaObject.meta | 2 +- .../Female1/Female1.MetaObject/Meta.asset | 2 +- .../Female1.MetaObject/Meta.asset.meta | 2 +- .../Female1/Female1.Textures.meta | 2 +- .../Female1.Textures/MatcapWarp_01.png | 0 .../Female1.Textures/MatcapWarp_01.png.meta | 96 + .../Female1.Textures/MatcapWarp_02.png | 0 .../Female1.Textures/MatcapWarp_02.png.meta | 96 + .../N00_000_00_Face_00_out.png | 0 .../N00_000_00_Face_00_out.png.meta | 96 + .../N00_000_00_HairBack_00_nml.normal.png | 0 ...N00_000_00_HairBack_00_nml.normal.png.meta | 96 + .../N00_000_Hair_00_nml.normal.png | 0 .../N00_000_Hair_00_nml.normal.png.meta | 43 +- .../Female1.Textures/Shader_NoneBlack.png | 0 .../Shader_NoneBlack.png.meta | 96 + .../Shader_NoneNormal.normal.png | 0 .../Shader_NoneNormal.normal.png.meta | 43 +- .../Female1/Female1.Textures/Thumbnail.png | 0 .../Female1.Textures/Thumbnail.png.meta} | 6 +- .../Female1/Female1.Textures/_01.png | 0 .../Female1/Female1.Textures/_01.png.meta | 43 +- .../Female1/Female1.Textures/_02.png | 0 .../Female1/Female1.Textures/_02.png.meta | 96 + .../Female1/Female1.Textures/_03.png | 0 .../Female1/Female1.Textures/_03.png.meta | 43 +- .../Female1/Female1.Textures/_04.png | 0 .../Female1/Female1.Textures/_04.png.meta | 43 +- .../Female1/Female1.Textures/_05.normal.png | 0 .../Female1.Textures/_05.normal.png.meta | 43 +- .../Female1/Female1.Textures/_06.png | 0 .../Female1/Female1.Textures/_06.png.meta | 43 +- .../Female1/Female1.Textures/_07.png | 0 .../Female1/Female1.Textures/_07.png.meta | 43 +- .../Female1/Female1.Textures/_09.png | 0 .../Female1/Female1.Textures/_09.png.meta | 43 +- .../Female1/Female1.Textures/_10.png | 0 .../Female1/Female1.Textures/_10.png.meta} | 6 +- .../Female1/Female1.Textures/_11.normal.png | 0 .../Female1.Textures/_11.normal.png.meta} | 43 +- .../Female1/Female1.Textures/_12.png | 0 .../Female1/Female1.Textures/_12.png.meta | 43 +- .../Female1/Female1.Textures/_13.png | 0 .../Female1/Female1.Textures/_13.png.meta | 43 +- .../Female1/Female1.Textures/_14.png | 0 .../Female1/Female1.Textures/_14.png.meta} | 43 +- .../Female1/Female1.Textures/_15.png | 0 .../Female1/Female1.Textures/_15.png.meta} | 43 +- .../Female1/Female1.Textures/_16.png | 0 .../Female1/Female1.Textures/_16.png.meta | 43 +- .../Female1/Female1.Textures/_17.png | 0 .../Female1/Female1.Textures/_17.png.meta | 96 + .../Female1/Female1.Textures/_18.png | 0 .../Female1/Female1.Textures/_18.png.meta | 43 +- .../Female1/Female1.Textures/_19.png | 0 .../Female1/Female1.Textures/_19.png.meta | 43 +- .../VRM1 => Avatars}/Female1/Female1.prefab | 12748 +- .../Female1/Female1.prefab.meta | 2 +- .../Demo/BodyTracking.unity | 107207 +++++++++------ .../Demo/Materials.meta | 2 +- .../Demo/Materials/Metal_M.mat | 92 - .../Demo/Materials/Textures.meta | 8 + .../{wood_3.JPG => Textures/Wood.JPG} | 0 .../Wood.JPG.meta} | 2 +- .../Materials/{Wood_M.mat => WoodMat.mat} | 4 +- .../Demo/Materials/WoodMat.mat.meta | 8 + .../Demo/Prefabs.meta | 2 +- .../Demo/Prefabs/JointCanvas.prefab.meta | 2 +- .../Demo/Prefabs/JointCoordinate.prefab | 28 +- .../Demo/Prefabs/JointCoordinate.prefab.meta | 2 +- .../Demo/Prefabs/Pose.meta | 8 + .../Demo/Prefabs/Pose/HeadPose.prefab | 45 + .../Demo/Prefabs/Pose/HeadPose.prefab.meta | 7 + .../Prefabs/Pose/LeftControllerPose.prefab | 46 + .../Pose/LeftControllerPose.prefab.meta | 7 + .../Demo/Prefabs/Pose/LeftHandPose.prefab | 46 + .../Prefabs/Pose/LeftHandPose.prefab.meta | 7 + .../Prefabs/Pose/RightControllerPose.prefab | 46 + .../Pose/RightControllerPose.prefab.meta | 7 + .../Demo/Prefabs/Pose/RightHandPose.prefab | 46 + .../Prefabs/Pose/RightHandPose.prefab.meta | 7 + .../Demo/Prefabs/Pose/TrackerIndexPose.prefab | 46 + .../Prefabs/Pose/TrackerIndexPose.prefab.meta | 7 + .../Demo/Prefabs/Tracker.meta | 8 + .../Tracker/SelfTrackerIMLeftAnkle.prefab | 750 + .../SelfTrackerIMLeftAnkle.prefab.meta | 7 + .../Tracker/SelfTrackerIMLeftKnee.prefab | 750 + .../Tracker/SelfTrackerIMLeftKnee.prefab.meta | 7 + .../Tracker/SelfTrackerIMRightAnkle.prefab | 750 + .../SelfTrackerIMRightAnkle.prefab.meta | 7 + .../Tracker/SelfTrackerIMRightKnee.prefab | 750 + .../SelfTrackerIMRightKnee.prefab.meta | 7 + .../Prefabs/Tracker/SelfTrackerWaist.prefab | 750 + .../Tracker/SelfTrackerWaist.prefab.meta | 7 + .../Demo/Scripts.meta | 2 +- .../Demo/Scripts/AvatarCoordinate.meta | 8 + .../AvatarCoordinate/CoordinateCasual1.asset | 118 + .../CoordinateCasual1.asset.meta} | 4 +- .../Demo/Scripts/AvatarIKMenu.cs | 60 - .../{Debug => }/BodyJointCoordinate.cs | 43 +- .../{Debug => }/BodyJointCoordinate.cs.meta | 2 +- .../Demo/Scripts/BodyTrackerPose.cs | 114 + .../Demo/Scripts/BodyTrackerPose.cs.meta | 11 + .../Demo/Scripts/BodyTrackerStatus.cs | 37 + .../Demo/Scripts/BodyTrackerStatus.cs.meta | 11 + .../Demo/Scripts/BodyTrackingMenu.cs | 60 - .../Demo/Scripts/BodyTrackingSample.cs | 361 - .../Demo/Scripts/ContentIK.meta | 8 + .../Demo/Scripts/ContentIK/Animator.meta | 8 + .../Animator/AnimatorTrackingMenu.cs | 129 + .../Animator/AnimatorTrackingMenu.cs.meta | 11 + .../Demo/Scripts/ContentIK/Avatar.meta | 8 + .../ContentIK/Avatar/AvatarTrackingMenu.cs | 86 + .../Avatar/AvatarTrackingMenu.cs.meta | 11 + .../Avatar/AvatarTrackingSample.cs} | 54 +- .../Avatar/AvatarTrackingSample.cs.meta | 11 + .../Scripts/{ => ContentIK}/BTDemoHelper.cs | 0 .../{ => ContentIK}/BTDemoHelper.cs.meta | 2 +- .../Demo/Scripts/ContentIK/Body.meta | 8 + .../Demo/Scripts/ContentIK/Body/BodyIKMenu.cs | 65 + .../Scripts/ContentIK/Body/BodyIKMenu.cs.meta | 11 + .../Scripts/ContentIK/Body/BodyIKSample.cs | 446 + .../ContentIK/Body/BodyIKSample.cs.meta | 11 + .../ContentIK/Body/BodyTrackingMenu.cs | 100 + .../Body}/BodyTrackingMenu.cs.meta | 2 +- .../ContentIK/Body/BodyTrackingSample.cs | 508 + .../Body}/BodyTrackingSample.cs.meta | 2 +- .../Demo/Scripts/ContentIK/Humanoid.meta | 8 + .../ContentIK/Humanoid/HumanoidIKMenu.cs | 65 + .../ContentIK/Humanoid/HumanoidIKMenu.cs.meta | 11 + .../ContentIK/Humanoid/HumanoidIKSample.cs | 633 + .../Humanoid/HumanoidIKSample.cs.meta | 11 + .../Humanoid/HumanoidTrackingMenu.cs | 129 + .../Humanoid/HumanoidTrackingMenu.cs.meta | 11 + .../Humanoid}/HumanoidTrackingTeleport.cs | 1 - .../HumanoidTrackingTeleport.cs.meta | 2 +- .../Demo/Scripts/Debug.meta | 2 +- .../Demo/Scripts/Debug/DebugRotation.cs.meta | 2 +- .../Scripts/Debug/DebugRotationMaster.cs.meta | 2 +- .../Demo/Scripts/Debug/ProfilerLogger.cs | 6 +- .../Demo/Scripts/Debug/ProfilerLogger.cs.meta | 2 +- .../Demo/Scripts/DrawBone.cs | 66 + .../Demo/Scripts/DrawBone.cs.meta | 11 + .../Demo/Scripts/HumanoidTrackingSample.cs | 70 - .../Scripts/HumanoidTrackingSample.cs.meta | 11 - .../Demo/Scripts/SetTrackerRole.cs | 35 - .../Demo/Scripts/SetTrackerRole.cs.meta | 11 - .../Demo/Scripts/TrackerConfig.meta | 8 + .../TrackerConfig/ConfigTrackerIndexType.cs | 221 + .../ConfigTrackerIndexType.cs.meta | 11 + .../TrackerConfig/DefineTrackerLocation.cs | 12 + .../DefineTrackerLocation.cs.meta | 11 + .../Demo/Scripts/TrackerUpdater.cs | 80 + .../Demo/Scripts/TrackerUpdater.cs.meta | 11 + .../BodyTracking(experimental)/Editor.meta | 2 +- .../Editor/AnimatorTrackingEditor.cs | 154 + .../Editor/AnimatorTrackingEditor.cs.meta | 11 + .../Editor/BodyRoleDataEditor.cs | 54 + .../Editor/BodyRoleDataEditor.cs.meta | 11 + .../Editor/BodyTracking.dll | 3 + .../Editor/BodyTracking.dll.meta | 81 + .../Editor/HumanoidTrackingEditor.cs | 22 +- .../Editor/HumanoidTrackingEditor.cs.meta | 2 +- .../Editor/LICENSE.txt | 42 + .../Editor/LICENSE.txt.meta | 7 + .../Editor/SrdpEditor.cs | 63 + .../Editor/SrdpEditor.cs.meta | 11 + .../Editor/opencv_world341.dll | 3 + .../Editor/opencv_world341.dll.meta | 27 + .../BodyTracking(experimental)/Scripts.meta | 2 +- .../Scripts/AnimatorTracking.cs | 749 + .../Scripts/AnimatorTracking.cs.meta | 11 + .../Scripts/AvatarCoordinate.meta | 8 + .../AvatarCoordinateProducer.cs | 197 + .../AvatarCoordinateProducer.cs.meta | 11 + .../Scripts/BodyManager.cs | 1835 +- .../Scripts/BodyManager.cs.meta | 2 +- .../Scripts/BodyTrackingUtils.cs | 4588 +- .../Scripts/BodyTrackingUtils.cs.meta | 2 +- .../Scripts/HumanoidTracking.cs | 525 +- .../Scripts/HumanoidTracking.cs.meta | 2 +- .../Scripts/Poses.meta | 8 + .../Scripts/Poses/BodyRoleData.cs | 423 + .../Scripts/Poses/BodyRoleData.cs.meta | 11 + .../Scripts/Poses/RolePose.cs | 64 + .../Scripts/Poses/RolePose.cs.meta | 11 + .../Scripts/Poses/RolePoseController.cs | 56 + .../Scripts/Poses/RolePoseController.cs.meta | 11 + .../Scripts/Poses/RolePoseHand.cs | 56 + .../Scripts/Poses/RolePoseHand.cs.meta | 11 + .../Scripts/Poses/RolePoseHead.cs | 54 + .../Scripts/Poses/RolePoseHead.cs.meta | 11 + .../Scripts/Poses/RolePoseProvider.cs | 125 + .../Scripts/Poses/RolePoseProvider.cs.meta | 11 + .../Scripts/Poses/RolePoseTracker.cs | 72 + .../Scripts/Poses/RolePoseTracker.cs.meta | 11 + .../Scripts/Srdp.cs | 1449 + .../Scripts/Srdp.cs.meta | 11 + .../Scripts/libbodytracking.so | 4 +- .../Scripts/libbodytracking.so.meta | 13 +- .../Toolkits/Toolkits/Common/Materials.meta | 8 + .../Gray.mat => Materials/Black-0-0-0.mat} | 158 +- .../Common/Materials/Black-0-0-0.mat.meta | 8 + .../Common/Materials/Blue-0-0-255.mat | 80 + .../Common/Materials/Blue-0-0-255.mat.meta | 8 + .../Common/Materials/Gray-128-128-128.mat | 80 + .../Gray-128-128-128.mat.meta} | 16 +- .../Materials/Green-0-255-0.mat} | 154 +- .../Common/Materials/Green-0-255-0.mat.meta | 8 + .../Materials/Red-255-0-0.mat} | 155 +- .../Common/Materials/Red-255-0-0.mat.meta | 8 + .../Demo/Materials => Common/Models}/Cone.fbx | 0 .../Materials => Common/Models}/Cone.fbx.meta | 202 +- .../{Material => }/Focus3ModelL.fbx | 0 .../{Material => }/Focus3ModelL.fbx.meta | 0 .../{Material => }/Focus3ModelR.fbx | 0 .../{Material => }/Focus3ModelR.fbx.meta | 0 .../{Material.meta => Materials.meta} | 0 .../{Material => Materials}/_DEFAULT_MTL1.mat | 0 .../_DEFAULT_MTL1.mat.meta | 0 .../{Material => Materials}/__Battery.mat | 0 .../__Battery.mat.meta | 0 .../{Texture.meta => Textures.meta} | 0 .../{Texture => Textures}/battery.meta | 0 .../battery/TX_PanelBattery_status1.png | 0 .../battery/TX_PanelBattery_status1.png.meta | 0 .../battery/TX_PanelBattery_status2.png | 0 .../battery/TX_PanelBattery_status2.png.meta | 0 .../battery/TX_PanelBattery_status3.png | 0 .../battery/TX_PanelBattery_status3.png.meta | 0 .../battery/TX_PanelBattery_status4.png | 3 + .../battery/TX_PanelBattery_status4.png.meta | 0 .../Models/Controller/Textures/overlay.png | 3 + .../{Texture => Textures}/overlay.png.meta | 0 .../Toolkits/Toolkits/Common/Models/Hand.meta | 8 + .../Common/Models/Hand/Materials.meta | 8 + .../Models/Hand/Materials/LeftHandMat.mat | 50 + .../Hand/Materials/LeftHandMat.mat.meta | 8 + .../Models/Hand/Materials/RightHandMat.mat | 50 + .../Hand/Materials/RightHandMat.mat.meta | 8 + .../Toolkits/Common/Models/Hand/Shaders.meta | 8 + .../Hand/Shaders/handBlueGrafillOL.shader | 116 + .../Shaders/handBlueGrafillOL.shader.meta | 9 + .../Toolkits/Common/Models/Hand/Textures.meta | 8 + .../Models/Hand/Textures/Hand_alpha.png | 3 + .../Models/Hand/Textures/Hand_alpha.png.meta | 92 + .../Models/Hand/WVRLeftHand_1106_ASCII.fbx | 3 + .../Hand/WVRLeftHand_1106_ASCII.fbx.meta | 102 + .../Models/Hand/WVRRightHand_1106_ASCII.fbx | 3 + .../Hand/WVRRightHand_1106_ASCII.fbx.meta | 102 + .../SelfTracker/Material/Black.mat.meta | 8 - .../SelfTracker/Material/Green.mat.meta | 8 - .../Common/Models/UltimateTracker.meta | 8 + .../UltimateTracker/Vive_UltimateTracker.fbx | 3 + .../Vive_UltimateTracker.fbx.meta | 106 + .../Toolkits/Toolkits/Common/Prefabs.meta | 8 + .../Toolkits/Common/Prefabs/Controller.meta | 8 + .../Controller/Focus3L.prefab | 0 .../Controller/Focus3L.prefab.meta | 0 .../Controller/Focus3R.prefab | 0 .../Controller/Focus3R.prefab.meta | 0 .../{Models => Prefabs}/SelfTracker.meta | 0 .../SelfTracker/SelfTracker.prefab | 14 +- .../SelfTracker/SelfTracker.prefab.meta | 14 +- .../Common/ViveOpenXRToolkits.inputactions | 80 + .../Toolkits/VIVE.OpenXR.Toolkits.asmdef | 16 +- .../UniVRM-0.109.0_7aff.unitypackage | 3 + com.htc.upm.vive.openxr/package.json | 4 +- 966 files changed, 238216 insertions(+), 77239 deletions(-) create mode 100644 com.htc.upm.vive.openxr/Editor/PackageManagerHelper.cs rename com.htc.upm.vive.openxr/Editor/{ViveOpenXRBuildCheck.cs.meta => PackageManagerHelper.cs.meta} (83%) rename com.htc.upm.vive.openxr/{Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Arts.meta => Editor/Preferences.meta} (77%) create mode 100644 com.htc.upm.vive.openxr/Editor/Preferences/PreferenceAvatarAsset.cs rename com.htc.upm.vive.openxr/Editor/{VIVEFocus3FeatureEditor.cs.meta => Preferences/PreferenceAvatarAsset.cs.meta} (83%) create mode 100644 com.htc.upm.vive.openxr/Editor/Preferences/ViveOpenXRPreference.cs rename com.htc.upm.vive.openxr/{Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Scripts/AvatarIKMenu.cs.meta => Editor/Preferences/ViveOpenXRPreference.cs.meta} (83%) delete mode 100644 com.htc.upm.vive.openxr/Editor/VIVEFocus3FeatureEditor.cs create mode 100644 com.htc.upm.vive.openxr/Editor/ViveAnchorEditor.cs rename com.htc.upm.vive.openxr/{Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Scripts/AvatarIKSample.cs.meta => Editor/ViveAnchorEditor.cs.meta} (83%) create mode 100644 com.htc.upm.vive.openxr/Editor/ViveMenu.cs create mode 100644 com.htc.upm.vive.openxr/Editor/ViveMenu.cs.meta create mode 100644 com.htc.upm.vive.openxr/Editor/ViveMockRuntimeEditor.cs create mode 100644 com.htc.upm.vive.openxr/Editor/ViveMockRuntimeEditor.cs.meta delete mode 100644 com.htc.upm.vive.openxr/Editor/ViveOpenXRBuildCheck.cs rename com.htc.upm.vive.openxr/Editor/{VIVEFocus3FeatureSet.cs => ViveOpenXRFeatureSet.cs} (59%) rename com.htc.upm.vive.openxr/Editor/{VIVEFocus3FeatureSet.cs.meta => ViveOpenXRFeatureSet.cs.meta} (100%) create mode 100644 com.htc.upm.vive.openxr/Editor/ViveSpectatorCameraProcess.cs create mode 100644 com.htc.upm.vive.openxr/Editor/ViveSpectatorCameraProcess.cs.meta delete mode 100644 com.htc.upm.vive.openxr/LICENSE create mode 100644 com.htc.upm.vive.openxr/LICENSE.txt rename com.htc.upm.vive.openxr/{LICENSE.meta => LICENSE.txt.meta} (100%) create mode 100644 com.htc.upm.vive.openxr/MockRuntime~/Win64/ViveMockRuntime.dll create mode 100644 com.htc.upm.vive.openxr/Runtime/Common/IViveFeatureWrapper.cs create mode 100644 com.htc.upm.vive.openxr/Runtime/Common/IViveFeatureWrapper.cs.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Common/MemoryTools.cs rename com.htc.upm.vive.openxr/Runtime/{Toolkits/PlaneDetection/Scripts => Common}/MemoryTools.cs.meta (100%) create mode 100644 com.htc.upm.vive.openxr/Runtime/Common/ViveFeatureFutureWrapper.cs create mode 100644 com.htc.upm.vive.openxr/Runtime/Common/ViveFeatureFutureWrapper.cs.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Common/ViveInterceptorsBeginSession.cs create mode 100644 com.htc.upm.vive.openxr/Runtime/Common/ViveInterceptorsBeginSession.cs.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Common/ViveInterceptorsPollEvent.cs create mode 100644 com.htc.upm.vive.openxr/Runtime/Common/ViveInterceptorsPollEvent.cs.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Common/ViveInterceptorsSubmit.cs create mode 100644 com.htc.upm.vive.openxr/Runtime/Common/ViveInterceptorsSubmit.cs.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Common/ViveRenderThreadTask.cs create mode 100644 com.htc.upm.vive.openxr/Runtime/Common/ViveRenderThreadTask.cs.meta rename com.htc.upm.vive.openxr/{Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Arts/VRMfile.meta => Runtime/Editor.meta} (77%) rename com.htc.upm.vive.openxr/{Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Arts/VRMfile/VRM1.meta => Runtime/Editor/CompositionLayer.meta} (77%) create mode 100644 com.htc.upm.vive.openxr/Runtime/Editor/CompositionLayer/ViveCompositionLayerExtraSettingsEditor.cs create mode 100644 com.htc.upm.vive.openxr/Runtime/Editor/CompositionLayer/ViveCompositionLayerExtraSettingsEditor.cs.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Editor/FrameSynchronization.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Editor/FrameSynchronization/ViveFrameSynchronizationEditor.cs create mode 100644 com.htc.upm.vive.openxr/Runtime/Editor/FrameSynchronization/ViveFrameSynchronizationEditor.cs.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Editor/Interactions.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Editor/Interactions/ViveInteractionsEditor.cs create mode 100644 com.htc.upm.vive.openxr/Runtime/Editor/Interactions/ViveInteractionsEditor.cs.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Editor/VIVERigEditor.cs create mode 100644 com.htc.upm.vive.openxr/Runtime/Editor/VIVERigEditor.cs.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Features/CompositionLayer/Scripts/ViveCompositionLayerExtraSettings.cs create mode 100644 com.htc.upm.vive.openxr/Runtime/Features/CompositionLayer/Scripts/ViveCompositionLayerExtraSettings.cs.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Features/DisplayRefreshRate/Scripts/ViveDisplayRefreshRateHelper.cs create mode 100644 com.htc.upm.vive.openxr/Runtime/Features/DisplayRefreshRate/Scripts/ViveDisplayRefreshRateHelper.cs.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Features/FirstPersonObserver.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Features/FirstPersonObserver/Scripts.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Features/FirstPersonObserver/Scripts/ViveFirstPersonObserver.cs create mode 100644 com.htc.upm.vive.openxr/Runtime/Features/FirstPersonObserver/Scripts/ViveFirstPersonObserver.cs.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Features/Foveation/Scripts/ViveFoveationHelper.cs create mode 100644 com.htc.upm.vive.openxr/Runtime/Features/Foveation/Scripts/ViveFoveationHelper.cs.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Features/FrameSynchronization.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Features/FrameSynchronization/Documentation.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Features/FrameSynchronization/Documentation/OpenXRExtensions.md create mode 100644 com.htc.upm.vive.openxr/Runtime/Features/FrameSynchronization/Documentation/OpenXRExtensions.md.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Features/FrameSynchronization/Scripts.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Features/FrameSynchronization/Scripts/ViveFrameSynchronization.cs create mode 100644 com.htc.upm.vive.openxr/Runtime/Features/FrameSynchronization/Scripts/ViveFrameSynchronization.cs.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Features/FrameSynchronization/Scripts/ViveFrameSynchronizationHelper.cs create mode 100644 com.htc.upm.vive.openxr/Runtime/Features/FrameSynchronization/Scripts/ViveFrameSynchronizationHelper.cs.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Features/Hand/Interaction/Scripts/ViveHandInteractionExt.cs create mode 100644 com.htc.upm.vive.openxr/Runtime/Features/Hand/Interaction/Scripts/ViveHandInteractionExt.cs.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Features/Interactions.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Features/Interactions/ViveInteractions.cs create mode 100644 com.htc.upm.vive.openxr/Runtime/Features/Interactions/ViveInteractions.cs.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Features/MockRuntime.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Features/MockRuntime/ViveMockRuntime.cs create mode 100644 com.htc.upm.vive.openxr/Runtime/Features/MockRuntime/ViveMockRuntime.cs.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Features/Passthrough.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Features/Passthrough/Documentation.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Features/Passthrough/Documentation/OpenXRExtensions.md create mode 100644 com.htc.upm.vive.openxr/Runtime/Features/Passthrough/Documentation/OpenXRExtensions.md.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Features/Passthrough/Scripts.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Features/Passthrough/Scripts/VivePassthrough.cs create mode 100644 com.htc.upm.vive.openxr/Runtime/Features/Passthrough/Scripts/VivePassthrough.cs.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Features/Passthrough/Scripts/VivePassthroughHelper.cs create mode 100644 com.htc.upm.vive.openxr/Runtime/Features/Passthrough/Scripts/VivePassthroughHelper.cs.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Features/SecondaryViewConfiguration.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Features/SecondaryViewConfiguration/Scripts.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Features/SecondaryViewConfiguration/Scripts/AccessDebugTexture.cs create mode 100644 com.htc.upm.vive.openxr/Runtime/Features/SecondaryViewConfiguration/Scripts/AccessDebugTexture.cs.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Features/SecondaryViewConfiguration/Scripts/SpectatorCameraBased.Editor.cs create mode 100644 com.htc.upm.vive.openxr/Runtime/Features/SecondaryViewConfiguration/Scripts/SpectatorCameraBased.Editor.cs.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Features/SecondaryViewConfiguration/Scripts/SpectatorCameraBased.cs create mode 100644 com.htc.upm.vive.openxr/Runtime/Features/SecondaryViewConfiguration/Scripts/SpectatorCameraBased.cs.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Features/SecondaryViewConfiguration/Scripts/ViveSecondaryViewConfiguration.Editor.cs create mode 100644 com.htc.upm.vive.openxr/Runtime/Features/SecondaryViewConfiguration/Scripts/ViveSecondaryViewConfiguration.Editor.cs.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Features/SecondaryViewConfiguration/Scripts/ViveSecondaryViewConfiguration.cs create mode 100644 com.htc.upm.vive.openxr/Runtime/Features/SecondaryViewConfiguration/Scripts/ViveSecondaryViewConfiguration.cs.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Features/Tracker/ViveTracker.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Features/Tracker/ViveTracker/HTCViveTrackerProfile.cs create mode 100644 com.htc.upm.vive.openxr/Runtime/Features/Tracker/ViveTracker/HTCViveTrackerProfile.cs.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Features/UserPresence.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Features/UserPresence/Documentation.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Features/UserPresence/Documentation/OpenXRExtensions.md create mode 100644 com.htc.upm.vive.openxr/Runtime/Features/UserPresence/Documentation/OpenXRExtensions.md.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Features/UserPresence/Scripts.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Features/UserPresence/Scripts/ViveUserPresence.cs create mode 100644 com.htc.upm.vive.openxr/Runtime/Features/UserPresence/Scripts/ViveUserPresence.cs.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Features/UserPresence/Scripts/ViveUserPresenceHelper.cs create mode 100644 com.htc.upm.vive.openxr/Runtime/Features/UserPresence/Scripts/ViveUserPresenceHelper.cs.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Models.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Models/Controller.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Models/Controller/2.5.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Models/Controller/2.5/Materials.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Models/Controller/2.5/Materials/Ctrl_Battery.mat rename com.htc.upm.vive.openxr/{Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Arts/VRMfile/VRM1/Female1/Female1_Hair2.mat.meta => Runtime/Models/Controller/2.5/Materials/Ctrl_Battery.mat.meta} (79%) create mode 100644 com.htc.upm.vive.openxr/Runtime/Models/Controller/2.5/Materials/_DEFAULT_MTL.mat rename com.htc.upm.vive.openxr/{Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Materials/Metal_M.mat.meta => Runtime/Models/Controller/2.5/Materials/_DEFAULT_MTL.mat.meta} (79%) create mode 100644 com.htc.upm.vive.openxr/Runtime/Models/Controller/2.5/Models.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Models/Controller/2.5/Models/controller_L.fbx create mode 100644 com.htc.upm.vive.openxr/Runtime/Models/Controller/2.5/Models/controller_L.fbx.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Models/Controller/2.5/Models/controller_R.fbx create mode 100644 com.htc.upm.vive.openxr/Runtime/Models/Controller/2.5/Models/controller_R.fbx.meta rename com.htc.upm.vive.openxr/{Samples~/Samples/Samples/Commons/ArtAssets => Runtime/Models/Controller/2.5}/Textures.meta (77%) rename com.htc.upm.vive.openxr/{Samples~/Toolkits/Toolkits/Common/Models/Controller/Texture/battery => Runtime/Models/Controller/2.5/Textures}/TX_PanelBattery_status4.png (100%) rename com.htc.upm.vive.openxr/{Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Arts/VRMfile/VRM1/Female1/Female1.Textures/Shader_NoneBlack.png.meta => Runtime/Models/Controller/2.5/Textures/TX_PanelBattery_status4.png.meta} (96%) rename com.htc.upm.vive.openxr/{Samples~/Toolkits/Toolkits/Common/Models/Controller/Texture/overlay.png => Runtime/Models/Controller/2.5/Textures/controller_lr.png} (100%) rename com.htc.upm.vive.openxr/{Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Arts/VRMfile/VRM1/Female1/Female1.Textures/_02.png.meta => Runtime/Models/Controller/2.5/Textures/controller_lr.png.meta} (98%) create mode 100644 com.htc.upm.vive.openxr/Runtime/Models/Controller/ControllerModelActions.cs create mode 100644 com.htc.upm.vive.openxr/Runtime/Models/Controller/ControllerModelActions.cs.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Models/Hand.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Models/Hand/2.5.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Models/Hand/2.5/Lefthand.fbx create mode 100644 com.htc.upm.vive.openxr/Runtime/Models/Hand/2.5/Lefthand.fbx.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Models/Hand/2.5/Materials.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Models/Hand/2.5/Materials/Hand.mat rename com.htc.upm.vive.openxr/{Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Materials/Wood_M.mat.meta => Runtime/Models/Hand/2.5/Materials/Hand.mat.meta} (79%) create mode 100644 com.htc.upm.vive.openxr/Runtime/Models/Hand/2.5/Righthand.fbx create mode 100644 com.htc.upm.vive.openxr/Runtime/Models/Hand/2.5/Righthand.fbx.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Models/Hand/2.5/Shaders.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Models/Hand/2.5/Shaders/handBlueGrafillOL.shader create mode 100644 com.htc.upm.vive.openxr/Runtime/Models/Hand/2.5/Shaders/handBlueGrafillOL.shader.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Models/Hand/2.5/Textures.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Models/Hand/2.5/Textures/Hand_alpha.png rename com.htc.upm.vive.openxr/{Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Arts/VRMfile/VRM1/Female1/Female1.Textures/N00_000_00_Face_00_out.png.meta => Runtime/Models/Hand/2.5/Textures/Hand_alpha.png.meta} (97%) create mode 100644 com.htc.upm.vive.openxr/Runtime/Models/Hand/HandModelActions.cs create mode 100644 com.htc.upm.vive.openxr/Runtime/Models/Hand/HandModelActions.cs.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Prefabs.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Prefabs/ViveFocus3ControllerAimL.prefab create mode 100644 com.htc.upm.vive.openxr/Runtime/Prefabs/ViveFocus3ControllerAimL.prefab.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Prefabs/ViveFocus3ControllerAimR.prefab create mode 100644 com.htc.upm.vive.openxr/Runtime/Prefabs/ViveFocus3ControllerAimR.prefab.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Prefabs/ViveHandL.prefab create mode 100644 com.htc.upm.vive.openxr/Runtime/Prefabs/ViveHandL.prefab.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Prefabs/ViveHandR.prefab create mode 100644 com.htc.upm.vive.openxr/Runtime/Prefabs/ViveHandR.prefab.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Profiles/XR_EXT_user_presence.cs create mode 100644 com.htc.upm.vive.openxr/Runtime/Profiles/XR_EXT_user_presence.cs.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Profiles/XR_EXT_user_presence_impls.cs create mode 100644 com.htc.upm.vive.openxr/Runtime/Profiles/XR_EXT_user_presence_impls.cs.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Profiles/XR_HTC_composition_layer_extra_settings.cs create mode 100644 com.htc.upm.vive.openxr/Runtime/Profiles/XR_HTC_composition_layer_extra_settings.cs.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Profiles/XR_HTC_composition_layer_extra_settings_impls.cs create mode 100644 com.htc.upm.vive.openxr/Runtime/Profiles/XR_HTC_composition_layer_extra_settings_impls.cs.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Profiles/XR_HTC_passthrough_configuration.cs create mode 100644 com.htc.upm.vive.openxr/Runtime/Profiles/XR_HTC_passthrough_configuration.cs.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Profiles/XR_HTC_passthrough_configuration_impls.cs create mode 100644 com.htc.upm.vive.openxr/Runtime/Profiles/XR_HTC_passthrough_configuration_impls.cs.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Resources.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Resources/Prefabs.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Resources/Prefabs/ViveRig.prefab create mode 100644 com.htc.upm.vive.openxr/Runtime/Resources/Prefabs/ViveRig.prefab.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Toolkits/Common.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Toolkits/Common/VIVEInput.cs create mode 100644 com.htc.upm.vive.openxr/Runtime/Toolkits/Common/VIVEInput.cs.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Toolkits/Future.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Toolkits/Future/FutureTask.cs create mode 100644 com.htc.upm.vive.openxr/Runtime/Toolkits/Future/FutureTask.cs.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Toolkits/Passthrough.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Toolkits/Passthrough/PassthroughAPI.cs create mode 100644 com.htc.upm.vive.openxr/Runtime/Toolkits/Passthrough/PassthroughAPI.cs.meta delete mode 100644 com.htc.upm.vive.openxr/Runtime/Toolkits/PlaneDetection/Scripts/MemoryTools.cs rename com.htc.upm.vive.openxr/Runtime/{ => Toolkits}/Raycast.meta (100%) rename com.htc.upm.vive.openxr/Runtime/{ => Toolkits}/Raycast/Resources.meta (100%) rename com.htc.upm.vive.openxr/Runtime/{ => Toolkits}/Raycast/Resources/Materials.meta (100%) rename com.htc.upm.vive.openxr/Runtime/{ => Toolkits}/Raycast/Resources/Materials/GazePointerDef.mat (100%) rename com.htc.upm.vive.openxr/Runtime/{ => Toolkits}/Raycast/Resources/Materials/GazePointerDef.mat.meta (100%) rename com.htc.upm.vive.openxr/Runtime/{ => Toolkits}/Raycast/Resources/Shaders.meta (100%) rename com.htc.upm.vive.openxr/Runtime/{ => Toolkits}/Raycast/Resources/Shaders/GazePointerDef.shader (100%) rename com.htc.upm.vive.openxr/Runtime/{ => Toolkits}/Raycast/Resources/Shaders/GazePointerDef.shader.meta (100%) rename com.htc.upm.vive.openxr/Runtime/{ => Toolkits}/Raycast/Scripts.meta (100%) rename com.htc.upm.vive.openxr/Runtime/{ => Toolkits}/Raycast/Scripts/CanvasProvider.cs (100%) rename com.htc.upm.vive.openxr/Runtime/{ => Toolkits}/Raycast/Scripts/CanvasProvider.cs.meta (100%) rename com.htc.upm.vive.openxr/Runtime/{ => Toolkits}/Raycast/Scripts/ControllerRaycastPointer.cs (81%) rename com.htc.upm.vive.openxr/Runtime/{ => Toolkits}/Raycast/Scripts/ControllerRaycastPointer.cs.meta (100%) rename com.htc.upm.vive.openxr/Runtime/{ => Toolkits}/Raycast/Scripts/GazeRaycastRing.cs (70%) rename com.htc.upm.vive.openxr/Runtime/{ => Toolkits}/Raycast/Scripts/GazeRaycastRing.cs.meta (100%) rename com.htc.upm.vive.openxr/Runtime/{ => Toolkits}/Raycast/Scripts/HandRaycastPointer.cs (90%) rename com.htc.upm.vive.openxr/Runtime/{ => Toolkits}/Raycast/Scripts/HandRaycastPointer.cs.meta (100%) rename com.htc.upm.vive.openxr/Runtime/{ => Toolkits}/Raycast/Scripts/RaycastEvents.cs (100%) rename com.htc.upm.vive.openxr/Runtime/{ => Toolkits}/Raycast/Scripts/RaycastEvents.cs.meta (100%) rename com.htc.upm.vive.openxr/Runtime/{ => Toolkits}/Raycast/Scripts/RaycastImpl.cs (91%) rename com.htc.upm.vive.openxr/Runtime/{ => Toolkits}/Raycast/Scripts/RaycastImpl.cs.meta (100%) rename com.htc.upm.vive.openxr/Runtime/{ => Toolkits}/Raycast/Scripts/RaycastPointer.cs (89%) rename com.htc.upm.vive.openxr/Runtime/{ => Toolkits}/Raycast/Scripts/RaycastPointer.cs.meta (100%) rename com.htc.upm.vive.openxr/Runtime/{ => Toolkits}/Raycast/Scripts/RaycastRing.cs (94%) rename com.htc.upm.vive.openxr/Runtime/{ => Toolkits}/Raycast/Scripts/RaycastRing.cs.meta (100%) rename com.htc.upm.vive.openxr/Runtime/{ => Toolkits}/Raycast/Scripts/RaycastSwitch.cs (100%) rename com.htc.upm.vive.openxr/Runtime/{ => Toolkits}/Raycast/Scripts/RaycastSwitch.cs.meta (100%) rename com.htc.upm.vive.openxr/Runtime/{ => Toolkits}/Raycast/Scripts/TargetCanvas.cs (100%) rename com.htc.upm.vive.openxr/Runtime/{ => Toolkits}/Raycast/Scripts/TargetCanvas.cs.meta (100%) create mode 100644 com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/Helper.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/Helper/AndroidProcessHelper.cs create mode 100644 com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/Helper/AndroidProcessHelper.cs.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/Helper/EditorHelper.cs create mode 100644 com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/Helper/EditorHelper.cs.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/Helper/IOProcessHelper.cs create mode 100644 com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/Helper/IOProcessHelper.cs.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/Helper/LayerMaskHelper.cs create mode 100644 com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/Helper/LayerMaskHelper.cs.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/Helper/SpectatorCameraHelper.cs create mode 100644 com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/Helper/SpectatorCameraHelper.cs.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/Helper/TextureProcessHelper.cs create mode 100644 com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/Helper/TextureProcessHelper.cs.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/ISpectatorCameraSetting.cs create mode 100644 com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/ISpectatorCameraSetting.cs.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/SpectatorCameraManager.Editor.cs create mode 100644 com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/SpectatorCameraManager.Editor.cs.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/SpectatorCameraManager.cs create mode 100644 com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/SpectatorCameraManager.cs.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/SpectatorCameraTracker.Editor.cs create mode 100644 com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/SpectatorCameraTracker.Editor.cs.meta create mode 100644 com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/SpectatorCameraTracker.cs create mode 100644 com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/SpectatorCameraTracker.cs.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Anchor/Materials/Green.mat rename com.htc.upm.vive.openxr/Samples~/{Toolkits/Toolkits/BodyTracking(experimental)/Demo/Arts/VRMfile/VRM1/Female1/Female1_Hair1.mat.meta => Samples/Samples/Anchor/Materials/Green.mat.meta} (79%) rename com.htc.upm.vive.openxr/Samples~/Samples/Samples/Anchor/Scenes/{PDAnchorTest.unity => AnchorPersistanceTest.unity} (59%) rename com.htc.upm.vive.openxr/Samples~/Samples/Samples/Anchor/Scenes/{AnchorTest.unity.meta => AnchorPersistanceTest.unity.meta} (74%) delete mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Anchor/Scenes/AnchorTest.unity create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/Fonts.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/Fonts/NotoSansTraditionalChinese.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/Fonts/NotoSansTraditionalChinese/NotoSansTC-VariableFont_wght.ttf create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/Fonts/NotoSansTraditionalChinese/NotoSansTC-VariableFont_wght.ttf.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/Fonts/NotoSansTraditionalChinese/NotoSansTC-VariableFont_wghtSDF.asset rename com.htc.upm.vive.openxr/Samples~/{Toolkits/Toolkits/BodyTracking(experimental)/Demo/Arts/Female1_withAvatarIK.avatar.asset.meta => Samples/Samples/Commons/Fonts/NotoSansTraditionalChinese/NotoSansTC-VariableFont_wghtSDF.asset.meta} (64%) create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/Fonts/NotoSansTraditionalChinese/OFL.txt create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/Fonts/NotoSansTraditionalChinese/OFL.txt.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/Fonts/NotoSansTraditionalChinese/README.txt create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/Fonts/NotoSansTraditionalChinese/README.txt.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/Script/CommonHelper.cs create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/Script/CommonHelper.cs.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/Script/CommonPose.cs create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/Script/CommonPose.cs.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/Script/Focus3ModelAction.cs create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/Script/Focus3ModelAction.cs.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/VRSPrefabs/Controller/Focus3AimL.prefab create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/VRSPrefabs/Controller/Focus3AimL.prefab.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/VRSPrefabs/Controller/Focus3AimR.prefab create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/VRSPrefabs/Controller/Focus3AimR.prefab.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/CompositionLayer2/Materials/Sharpening.mat create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/CompositionLayer2/Materials/Sharpening.mat.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/CompositionLayer2/Scenes/CompositionLayerTest_Rects.unity rename com.htc.upm.vive.openxr/Samples~/Samples/Samples/{Anchor/Scenes/PDAnchorTest.unity.meta => CompositionLayer2/Scenes/CompositionLayerTest_Rects.unity.meta} (74%) create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/CompositionLayer2/Scenes/CompositionLayerTest_Sharpening.unity create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/CompositionLayer2/Scenes/CompositionLayerTest_Sharpening.unity.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/CompositionLayer2/Scripts/Actions.cs create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/CompositionLayer2/Scripts/Actions.cs.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/CompositionLayer2/Textures/LeftRight.png rename com.htc.upm.vive.openxr/Samples~/{Toolkits/Toolkits/BodyTracking(experimental)/Demo/Arts/VRMfile/VRM1/Female1/Female1.Textures/Thumbnail.png.meta => Samples/Samples/CompositionLayer2/Textures/LeftRight.png.meta} (98%) create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/CompositionLayer2/Textures/building1.png create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/CompositionLayer2/Textures/building1.png.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/CompositionLayer2/Textures/building2.png create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/CompositionLayer2/Textures/building2.png.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/CompositionLayer2/Textures/mono.jpg rename com.htc.upm.vive.openxr/Samples~/{Toolkits/Toolkits/BodyTracking(experimental)/Demo/Arts/VRMfile/VRM1/Female1/Female1.Textures/_10.png.meta => Samples/Samples/CompositionLayer2/Textures/mono.jpg.meta} (98%) create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/CompositionLayer2/Textures/topdown.jpg rename com.htc.upm.vive.openxr/Samples~/{Toolkits/Toolkits/BodyTracking(experimental)/Demo/Arts/VRMfile/VRM1/Female1/Female1.Textures/_14.png.meta => Samples/Samples/CompositionLayer2/Textures/topdown.jpg.meta} (98%) create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/HandInteractionExt.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/HandInteractionExt/HandInteractionExt.cs create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/HandInteractionExt/HandInteractionExt.cs.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/HandInteractionExt/HandInteractionExt.inputactions create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/HandInteractionExt/HandInteractionExt.inputactions.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/HandInteractionExt/HandInteractionExt.unity create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/HandInteractionExt/HandInteractionExt.unity.meta rename com.htc.upm.vive.openxr/Samples~/{Toolkits/Toolkits/Common/Models/SelfTracker/Material/Black.mat => Samples/Samples/Input/Materials/VIVE/UltimateTracker/Vive_Ultimate_Tracker_BaseMap.mat} (88%) create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Materials/VIVE/UltimateTracker/Vive_Ultimate_Tracker_BaseMap.mat.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Scripts/VIVE/UserPresence.cs create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Scripts/VIVE/UserPresence.cs.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Textures/VIVE.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Textures/VIVE/UltimateTracker.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Textures/VIVE/UltimateTracker/Vive_Ultimate_Tracker_BaseMap.png rename com.htc.upm.vive.openxr/Samples~/{Toolkits/Toolkits/BodyTracking(experimental)/Demo/Arts/VRMfile/VRM1/Female1/Female1.Textures/_15.png.meta => Samples/Samples/Input/Textures/VIVE/UltimateTracker/Vive_Ultimate_Tracker_BaseMap.png.meta} (98%) create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Textures/VIVE/UltimateTracker/Vive_Ultimate_Tracker_NormalMap.png create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Textures/VIVE/UltimateTracker/Vive_Ultimate_Tracker_NormalMap.png.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Textures/VIVE/UltimateTracker/Vive_Ultimate_Tracker_OcclusionMap.png create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Textures/VIVE/UltimateTracker/Vive_Ultimate_Tracker_OcclusionMap.png.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Textures/VIVE/UltimateTracker/Vive_Ultimate_Tracker_SpecularMap.png create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Textures/VIVE/UltimateTracker/Vive_Ultimate_Tracker_SpecularMap.png.meta delete mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Textures/test.png delete mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Textures/text.png create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Passthrough/Scenes/Passthrough_Configuration.unity create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Passthrough/Scenes/Passthrough_Configuration.unity.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Passthrough/Scripts/Passthrough_manager.cs create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Passthrough/Scripts/Passthrough_manager.cs.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Audio.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Audio/Button Pop.wav create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Audio/Button Pop.wav.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Materials.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Materials/BlackGroove.mat rename com.htc.upm.vive.openxr/Samples~/{Toolkits/Toolkits/BodyTracking(experimental)/Demo/Materials/Blue.mat.meta => Samples/Samples/Spectator/AdvDemo/Materials/BlackGroove.mat.meta} (75%) create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Materials/SimpleTeleportHighlight.mat rename com.htc.upm.vive.openxr/Samples~/{Toolkits/Toolkits/BodyTracking(experimental)/Demo/Materials/Green.mat.meta => Samples/Samples/Spectator/AdvDemo/Materials/SimpleTeleportHighlight.mat.meta} (75%) create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Meshes.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Meshes/CameraModel.asset create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Meshes/CameraModel.asset.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Models.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Models/Teleport Hightlight.fbx create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Models/Teleport Hightlight.fbx.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Prefabs.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Prefabs/Spectator Camera Manager.prefab create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Prefabs/Spectator Camera Manager.prefab.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Prefabs/Spectator Camera Prefab.prefab create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Prefabs/Spectator Camera Prefab.prefab.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Prefabs/Teleport Reticle.prefab create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Prefabs/Teleport Reticle.prefab.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scenes.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scenes/Adv_Demo_1.unity create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scenes/Adv_Demo_1.unity.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scenes/Adv_Demo_2.unity create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scenes/Adv_Demo_2.unity.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/CharacterMovementManager.Editor.cs create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/CharacterMovementManager.Editor.cs.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/CharacterMovementManager.cs create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/CharacterMovementManager.cs.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/ControllerInputManager.cs create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/ControllerInputManager.cs.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/Helper.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/Helper/DebugLogHelper.cs create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/Helper/DebugLogHelper.cs.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/Helper/GameObjectProcessHelper.cs create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/Helper/GameObjectProcessHelper.cs.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/Helper/XRDeviceProcessHelper.cs create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/Helper/XRDeviceProcessHelper.cs.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/ObjectInteractionManager.cs create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/ObjectInteractionManager.cs.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/TeleportationManager.Editor.cs create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/TeleportationManager.Editor.cs.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/TeleportationManager.cs create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/TeleportationManager.cs.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/TestSceneUIButton.cs create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/TestSceneUIButton.cs.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/UIHint.cs create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/UIHint.cs.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/UIHintStaticResource.cs create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/UIHintStaticResource.cs.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/UIManager.Editor.cs create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/UIManager.Editor.cs.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/UIManager.cs create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/UIManager.cs.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Shaders.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Shaders/SimpleTeleportHighlight.shader create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Shaders/SimpleTeleportHighlight.shader.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/Demo.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/Demo/Materials.meta rename com.htc.upm.vive.openxr/Samples~/{Toolkits/Toolkits/Common/Models/SelfTracker/Material => Samples/Samples/Spectator/Demo/Materials}/Green.mat (92%) create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/Demo/Materials/Green.mat.meta rename com.htc.upm.vive.openxr/Samples~/{Toolkits/Toolkits/BodyTracking(experimental) => Samples/Samples/Spectator}/Demo/Materials/Red.mat (95%) create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/Demo/Materials/Red.mat.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/Demo/Materials/Spectator Camera Debug.mat create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/Demo/Materials/Spectator Camera Debug.mat.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/Demo/Scenes.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/Demo/Scenes/Simple_Demo_1.unity create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/Demo/Scenes/Simple_Demo_1.unity.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/Demo/Scenes/Simple_Demo_2.unity create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/Demo/Scenes/Simple_Demo_2.unity.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/Demo/Scripts.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/Demo/Scripts/SecondSceneLoadTest.cs create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/Demo/Scripts/SecondSceneLoadTest.cs.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/Prefabs.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/Prefabs/Spectator Camera Based.prefab create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/Prefabs/Spectator Camera Based.prefab.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/Prefabs/Test Cube.prefab create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/Prefabs/Test Cube.prefab.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/ViveTracker.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/ViveTracker/ViveTrackerSample.unity create mode 100644 com.htc.upm.vive.openxr/Samples~/Samples/Samples/ViveTracker/ViveTrackerSample.unity.meta delete mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Arts/Female1_withAvatarIK.avatar.asset delete mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Arts/Female1_withBodyTracking.avatar.asset delete mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Arts/Female1_withVrmIK.avatar.asset delete mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Arts/VRMfile/VRM1/Female1/Female1.BlendShapes/BlendShape.asset delete mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Arts/VRMfile/VRM1/Female1/Female1.Textures/_11.normal.png.meta delete mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Arts/VRMfile/VRM1/Female1/Female1.Textures/_17.png.meta delete mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Arts/VRMfile/VRM1/Female1/Female1.vrm delete mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Arts/VRMfile/VRM1/Female1/Female1.vrm.meta delete mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Arts/VRMfile/VRM1/Female1/Female1_Hair1.mat delete mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Arts/VRMfile/VRM1/Female1/Female1_Hair2.mat create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/BaseCharacter.fbx create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/BaseCharacter.fbx.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Mat.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Mat/Body.mat create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Mat/Body.mat.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Mat/Eye.mat create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Mat/Eye.mat.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Mat/EyeBack.mat create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Mat/EyeBack.mat.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Mat/Eye_reflection.mat create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Mat/Eye_reflection.mat.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Mat/Eyebrows.mat create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Mat/Eyebrows.mat.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Mat/Eyelashes.mat create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Mat/Eyelashes.mat.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Mat/Eyeliner.mat create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Mat/Eyeliner.mat.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Mat/Face.mat create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Mat/Face.mat.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Mat/Hair_head.mat create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Mat/Hair_head.mat.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Mat/Mat_EyeReflection.mat create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Mat/Mat_EyeReflection.mat.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Mat/Mat_Hair_1_hair.mat create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Mat/Mat_Hair_1_hair.mat.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Mat/Mat_Hair_1_head.mat create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Mat/Mat_Hair_1_head.mat.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Mat/Mat_Hair_2_hair.mat create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Mat/Mat_Hair_2_hair.mat.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Mat/Mat_Hair_2_head.mat create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Mat/Mat_Hair_2_head.mat.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Mat/Mat_Hair_3_hair.mat create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Mat/Mat_Hair_3_hair.mat.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Mat/Mat_Hair_3_head.mat create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Mat/Mat_Hair_3_head.mat.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Mat/Mat_Hair_4_hair.mat create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Mat/Mat_Hair_4_hair.mat.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Mat/Mat_Hair_4_head.mat create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Mat/Mat_Hair_4_head.mat.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Mat/Mat_Hair_5_hair.mat create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Mat/Mat_Hair_5_hair.mat.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Mat/Mat_Hair_5_head.mat create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Mat/Mat_Hair_5_head.mat.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Mat/Mat_transp_Eye_color2.mat create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Mat/Mat_transp_Eye_color2.mat.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Mat/Mat_transp_Eye_color3.mat create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Mat/Mat_transp_Eye_color3.mat.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Mat/Mat_transp_Eye_color4.mat create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Mat/Mat_transp_Eye_color4.mat.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Mat/Mat_underwear_1.mat create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Mat/Mat_underwear_1.mat.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Mat/Mat_underwear_2.mat create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Mat/Mat_underwear_2.mat.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Mat/Mat_underwear_3.mat create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Mat/Mat_underwear_3.mat.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Mat/mouth_inside.mat create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Mat/mouth_inside.mat.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Shader.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Shader/DoubleSided.shader create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Shader/DoubleSided.shader.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Shader/UnlitColor.shader create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Shader/UnlitColor.shader.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Tex.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Tex/Tex_Body.png create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Tex/Tex_Body.png.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Tex/Tex_EyeReflection.png create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Tex/Tex_EyeReflection.png.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Tex/Tex_EyeWhite.png create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Tex/Tex_EyeWhite.png.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Tex/Tex_Eyebrows.png create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Tex/Tex_Eyebrows.png.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Tex/Tex_Eyelashes.png create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Tex/Tex_Eyelashes.png.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Tex/Tex_Eyeliner.png create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Tex/Tex_Eyeliner.png.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Tex/Tex_Eyes.png create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Tex/Tex_Eyes.png.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Tex/Tex_Face.png create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Tex/Tex_Face.png.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Tex/Tex_Face_makeup.png create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Tex/Tex_Face_makeup.png.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Tex/Tex_Hair1_hair.png create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Tex/Tex_Hair1_hair.png.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Tex/Tex_Hair1_head.png create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Tex/Tex_Hair1_head.png.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Tex/Tex_Hair2_hair.png create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Tex/Tex_Hair2_hair.png.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Tex/Tex_Hair2_head.png create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Tex/Tex_Hair2_head.png.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Tex/Tex_Hair3_hair.png create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Tex/Tex_Hair3_hair.png.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Tex/Tex_Hair3_head.png create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Tex/Tex_Hair3_head.png.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Tex/Tex_Hair4_hair.png create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Tex/Tex_Hair4_hair.png.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Tex/Tex_Hair4_head.png create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Tex/Tex_Hair4_head.png.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Tex/Tex_Hair5_hair.png create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Tex/Tex_Hair5_hair.png.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Tex/Tex_Hair5_head.png create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Tex/Tex_Hair5_head.png.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Tex/Tex_Mouth.png create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Tex/Tex_Mouth.png.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Tex/Tex_underwear_1.png create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Tex/Tex_underwear_1.png.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Tex/Tex_underwear_2.png create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Sourcefiles/Tex/Tex_underwear_2.png.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/BaseCharacter/Underwear1.prefab rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/Female1_withVrmIK.avatar.asset.meta => Avatars/AnimeGirls/BaseCharacter/Underwear1.prefab.meta} (63%) create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/Casual1.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/Casual1/Casual1.prefab create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/Casual1/Casual1.prefab.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/Casual1/SourceFiles.meta rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/{Common/Models/SelfTracker => BodyTracking(experimental)/Demo/Avatars/AnimeGirls/Casual1/SourceFiles}/Material.meta (77%) create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/Casual1/SourceFiles/Material/Mat.mat rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Materials/Red.mat.meta => Avatars/AnimeGirls/Casual1/SourceFiles/Material/Mat.mat.meta} (75%) create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/Casual1/SourceFiles/Mesh.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/Casual1/SourceFiles/Mesh/AnimeGirl.fbx create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/Casual1/SourceFiles/Mesh/AnimeGirl.fbx.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/Casual1/SourceFiles/Texture.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/Casual1/SourceFiles/Texture/Casual1.png create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/Casual1/SourceFiles/Texture/Casual1.png.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/Casual1/SourceFiles/Texture/Casual1NORMAL.png create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/AnimeGirls/Casual1/SourceFiles/Texture/Casual1NORMAL.png.meta rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1.meta (77%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.Avatar.meta (77%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.Avatar/VrmAvatar.asset (99%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.Avatar/VrmAvatar.asset.meta (79%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.AvatarDescription.meta (77%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.AvatarDescription/AvatarDescription.asset (100%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.AvatarDescription/AvatarDescription.asset.meta (79%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.BlendShapes.meta (77%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.BlendShapes/BlendShape.A.asset (100%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.BlendShapes/BlendShape.A.asset.meta (79%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.BlendShapes/BlendShape.Angry.asset (100%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.BlendShapes/BlendShape.Angry.asset.meta (79%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.BlendShapes/BlendShape.Blink.asset (100%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.BlendShapes/BlendShape.Blink.asset.meta (79%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.BlendShapes/BlendShape.Blink_L.asset (100%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.BlendShapes/BlendShape.Blink_L.asset.meta (79%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.BlendShapes/BlendShape.Blink_R.asset (100%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.BlendShapes/BlendShape.Blink_R.asset.meta (79%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.BlendShapes/BlendShape.E.asset (100%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.BlendShapes/BlendShape.E.asset.meta (79%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.BlendShapes/BlendShape.Fun.asset (100%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.BlendShapes/BlendShape.Fun.asset.meta (79%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.BlendShapes/BlendShape.I.asset (100%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.BlendShapes/BlendShape.I.asset.meta (79%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.BlendShapes/BlendShape.Joy.asset (100%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.BlendShapes/BlendShape.Joy.asset.meta (79%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.BlendShapes/BlendShape.Neutral.asset (100%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.BlendShapes/BlendShape.Neutral.asset.meta (79%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.BlendShapes/BlendShape.O.asset (100%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.BlendShapes/BlendShape.O.asset.meta (79%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.BlendShapes/BlendShape.Sorrow.asset (100%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.BlendShapes/BlendShape.Sorrow.asset.meta (79%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.BlendShapes/BlendShape.Surprised.asset (100%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.BlendShapes/BlendShape.Surprised.asset.meta (79%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.BlendShapes/BlendShape.U.asset (100%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.BlendShapes/BlendShape.U.asset.meta (79%) create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/Female1/Female1.BlendShapes/BlendShape.asset rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.BlendShapes/BlendShape.asset.meta (79%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.BlendShapes/LookDown.asset (100%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.BlendShapes/LookDown.asset.meta (79%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.BlendShapes/LookLeft.asset (100%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.BlendShapes/LookLeft.asset.meta (79%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.BlendShapes/LookRight.asset (100%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.BlendShapes/LookRight.asset.meta (79%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.BlendShapes/LookUp.asset (100%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.BlendShapes/LookUp.asset.meta (79%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.Materials.meta (77%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.Materials/N00_000_00_Body_00_SKIN (Instance).asset (80%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.Materials/N00_000_00_Body_00_SKIN (Instance).asset.meta (79%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.Materials/N00_000_00_EyeHighlight_00_EYE (Instance).asset (82%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.Materials/N00_000_00_EyeHighlight_00_EYE (Instance).asset.meta (79%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.Materials/N00_000_00_EyeIris_00_EYE (Instance).asset (82%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.Materials/N00_000_00_EyeIris_00_EYE (Instance).asset.meta (79%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.Materials/N00_000_00_EyeWhite_00_EYE (Instance).asset (82%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.Materials/N00_000_00_EyeWhite_00_EYE (Instance).asset.meta (79%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.Materials/N00_000_00_FaceBrow_00_FACE (Instance).asset (82%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.Materials/N00_000_00_FaceBrow_00_FACE (Instance).asset.meta (79%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.Materials/N00_000_00_FaceEyeline_00_FACE (Instance).asset (82%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.Materials/N00_000_00_FaceEyeline_00_FACE (Instance).asset.meta (79%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.Materials/N00_000_00_FaceMouth_00_FACE (Instance).asset (82%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.Materials/N00_000_00_FaceMouth_00_FACE (Instance).asset.meta (79%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.Materials/N00_000_00_Face_00_SKIN (Instance).asset (78%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.Materials/N00_000_00_Face_00_SKIN (Instance).asset.meta (79%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.Materials/N00_000_00_HairBack_00_HAIR (Instance).asset (85%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.Materials/N00_000_00_HairBack_00_HAIR (Instance).asset.meta (79%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.Materials/N00_000_Hair_00_HAIR (Instance).asset (82%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.Materials/N00_000_Hair_00_HAIR (Instance).asset.meta (79%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.Materials/N00_001_03_Bottoms_01_CLOTH (Instance).asset (80%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.Materials/N00_001_03_Bottoms_01_CLOTH (Instance).asset.meta (79%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.Materials/N00_002_01_Tops_01_CLOTH (Instance).asset (80%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.Materials/N00_002_01_Tops_01_CLOTH (Instance).asset.meta (79%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.Materials/N00_006_01_Shoes_01_CLOTH (Instance).asset (80%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.Materials/N00_006_01_Shoes_01_CLOTH (Instance).asset.meta (79%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.Materials/N00_010_01_Onepiece_00_CLOTH_01 (Instance).asset (80%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.Materials/N00_010_01_Onepiece_00_CLOTH_01 (Instance).asset.meta (79%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.Materials/N00_010_01_Onepiece_00_CLOTH_02 (Instance).asset (80%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.Materials/N00_010_01_Onepiece_00_CLOTH_02 (Instance).asset.meta (79%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.Meshes.meta (77%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.Meshes/Body (merged).baked.asset (100%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.Meshes/Body (merged).baked.asset.meta (79%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.Meshes/Face (merged)(Clone).baked.asset (100%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.Meshes/Face (merged)(Clone).baked.asset.meta (79%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.Meshes/Hair001 (merged).baked.asset (100%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.Meshes/Hair001 (merged).baked.asset.meta (79%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.MetaObject.meta (77%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.MetaObject/Meta.asset (89%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.MetaObject/Meta.asset.meta (79%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.Textures.meta (77%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.Textures/MatcapWarp_01.png (100%) create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/Female1/Female1.Textures/MatcapWarp_01.png.meta rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.Textures/MatcapWarp_02.png (100%) create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/Female1/Female1.Textures/MatcapWarp_02.png.meta rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.Textures/N00_000_00_Face_00_out.png (100%) create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/Female1/Female1.Textures/N00_000_00_Face_00_out.png.meta rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.Textures/N00_000_00_HairBack_00_nml.normal.png (100%) create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/Female1/Female1.Textures/N00_000_00_HairBack_00_nml.normal.png.meta rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.Textures/N00_000_Hair_00_nml.normal.png (100%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.Textures/N00_000_Hair_00_nml.normal.png.meta (64%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.Textures/Shader_NoneBlack.png (100%) create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/Female1/Female1.Textures/Shader_NoneBlack.png.meta rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.Textures/Shader_NoneNormal.normal.png (100%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.Textures/Shader_NoneNormal.normal.png.meta (64%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.Textures/Thumbnail.png (100%) rename com.htc.upm.vive.openxr/Samples~/{Samples/Samples/Input/Textures/test.png.meta => Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/Female1/Female1.Textures/Thumbnail.png.meta} (94%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.Textures/_01.png (100%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.Textures/_01.png.meta (64%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.Textures/_02.png (100%) create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/Female1/Female1.Textures/_02.png.meta rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.Textures/_03.png (100%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.Textures/_03.png.meta (64%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.Textures/_04.png (100%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.Textures/_04.png.meta (64%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.Textures/_05.normal.png (100%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.Textures/_05.normal.png.meta (64%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.Textures/_06.png (100%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.Textures/_06.png.meta (64%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.Textures/_07.png (100%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.Textures/_07.png.meta (64%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.Textures/_09.png (100%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.Textures/_09.png.meta (64%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.Textures/_10.png (100%) rename com.htc.upm.vive.openxr/Samples~/{Samples/Samples/Input/Textures/text.png.meta => Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/Female1/Female1.Textures/_10.png.meta} (94%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.Textures/_11.normal.png (100%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1/Female1/Female1.Textures/N00_000_00_HairBack_00_nml.normal.png.meta => Avatars/Female1/Female1.Textures/_11.normal.png.meta} (64%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.Textures/_12.png (100%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.Textures/_12.png.meta (64%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.Textures/_13.png (100%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.Textures/_13.png.meta (64%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.Textures/_14.png (100%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1/Female1/Female1.Textures/MatcapWarp_01.png.meta => Avatars/Female1/Female1.Textures/_14.png.meta} (64%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.Textures/_15.png (100%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1/Female1/Female1.Textures/MatcapWarp_02.png.meta => Avatars/Female1/Female1.Textures/_15.png.meta} (64%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.Textures/_16.png (100%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.Textures/_16.png.meta (64%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.Textures/_17.png (100%) create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Avatars/Female1/Female1.Textures/_17.png.meta rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.Textures/_18.png (100%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.Textures/_18.png.meta (64%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.Textures/_19.png (100%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.Textures/_19.png.meta (64%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.prefab (67%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/VRMfile/VRM1 => Avatars}/Female1/Female1.prefab.meta (74%) delete mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Materials/Metal_M.mat create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Materials/Textures.meta rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Materials/{wood_3.JPG => Textures/Wood.JPG} (100%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Materials/{wood_3.JPG.meta => Textures/Wood.JPG.meta} (97%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Materials/{Wood_M.mat => WoodMat.mat} (95%) create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Materials/WoodMat.mat.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Prefabs/Pose.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Prefabs/Pose/HeadPose.prefab create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Prefabs/Pose/HeadPose.prefab.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Prefabs/Pose/LeftControllerPose.prefab create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Prefabs/Pose/LeftControllerPose.prefab.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Prefabs/Pose/LeftHandPose.prefab create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Prefabs/Pose/LeftHandPose.prefab.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Prefabs/Pose/RightControllerPose.prefab create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Prefabs/Pose/RightControllerPose.prefab.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Prefabs/Pose/RightHandPose.prefab create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Prefabs/Pose/RightHandPose.prefab.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Prefabs/Pose/TrackerIndexPose.prefab create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Prefabs/Pose/TrackerIndexPose.prefab.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Prefabs/Tracker.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Prefabs/Tracker/SelfTrackerIMLeftAnkle.prefab create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Prefabs/Tracker/SelfTrackerIMLeftAnkle.prefab.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Prefabs/Tracker/SelfTrackerIMLeftKnee.prefab create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Prefabs/Tracker/SelfTrackerIMLeftKnee.prefab.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Prefabs/Tracker/SelfTrackerIMRightAnkle.prefab create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Prefabs/Tracker/SelfTrackerIMRightAnkle.prefab.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Prefabs/Tracker/SelfTrackerIMRightKnee.prefab create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Prefabs/Tracker/SelfTrackerIMRightKnee.prefab.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Prefabs/Tracker/SelfTrackerWaist.prefab create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Prefabs/Tracker/SelfTrackerWaist.prefab.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Scripts/AvatarCoordinate.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Scripts/AvatarCoordinate/CoordinateCasual1.asset rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/{Arts/Female1_withBodyTracking.avatar.asset.meta => Scripts/AvatarCoordinate/CoordinateCasual1.asset.meta} (64%) delete mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Scripts/AvatarIKMenu.cs rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Scripts/{Debug => }/BodyJointCoordinate.cs (75%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Scripts/{Debug => }/BodyJointCoordinate.cs.meta (83%) create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Scripts/BodyTrackerPose.cs create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Scripts/BodyTrackerPose.cs.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Scripts/BodyTrackerStatus.cs create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Scripts/BodyTrackerStatus.cs.meta delete mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Scripts/BodyTrackingMenu.cs delete mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Scripts/BodyTrackingSample.cs create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Scripts/ContentIK.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Scripts/ContentIK/Animator.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Scripts/ContentIK/Animator/AnimatorTrackingMenu.cs create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Scripts/ContentIK/Animator/AnimatorTrackingMenu.cs.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Scripts/ContentIK/Avatar.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Scripts/ContentIK/Avatar/AvatarTrackingMenu.cs create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Scripts/ContentIK/Avatar/AvatarTrackingMenu.cs.meta rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Scripts/{AvatarIKSample.cs => ContentIK/Avatar/AvatarTrackingSample.cs} (88%) create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Scripts/ContentIK/Avatar/AvatarTrackingSample.cs.meta rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Scripts/{ => ContentIK}/BTDemoHelper.cs (100%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Scripts/{ => ContentIK}/BTDemoHelper.cs.meta (83%) create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Scripts/ContentIK/Body.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Scripts/ContentIK/Body/BodyIKMenu.cs create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Scripts/ContentIK/Body/BodyIKMenu.cs.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Scripts/ContentIK/Body/BodyIKSample.cs create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Scripts/ContentIK/Body/BodyIKSample.cs.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Scripts/ContentIK/Body/BodyTrackingMenu.cs rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Scripts/{ => ContentIK/Body}/BodyTrackingMenu.cs.meta (83%) create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Scripts/ContentIK/Body/BodyTrackingSample.cs rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Scripts/{ => ContentIK/Body}/BodyTrackingSample.cs.meta (83%) create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Scripts/ContentIK/Humanoid.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Scripts/ContentIK/Humanoid/HumanoidIKMenu.cs create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Scripts/ContentIK/Humanoid/HumanoidIKMenu.cs.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Scripts/ContentIK/Humanoid/HumanoidIKSample.cs create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Scripts/ContentIK/Humanoid/HumanoidIKSample.cs.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Scripts/ContentIK/Humanoid/HumanoidTrackingMenu.cs create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Scripts/ContentIK/Humanoid/HumanoidTrackingMenu.cs.meta rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Scripts/{ => ContentIK/Humanoid}/HumanoidTrackingTeleport.cs (99%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Scripts/{ => ContentIK/Humanoid}/HumanoidTrackingTeleport.cs.meta (83%) create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Scripts/DrawBone.cs create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Scripts/DrawBone.cs.meta delete mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Scripts/HumanoidTrackingSample.cs delete mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Scripts/HumanoidTrackingSample.cs.meta delete mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Scripts/SetTrackerRole.cs delete mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Scripts/SetTrackerRole.cs.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Scripts/TrackerConfig.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Scripts/TrackerConfig/ConfigTrackerIndexType.cs create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Scripts/TrackerConfig/ConfigTrackerIndexType.cs.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Scripts/TrackerConfig/DefineTrackerLocation.cs create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Scripts/TrackerConfig/DefineTrackerLocation.cs.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Scripts/TrackerUpdater.cs create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Scripts/TrackerUpdater.cs.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Editor/AnimatorTrackingEditor.cs create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Editor/AnimatorTrackingEditor.cs.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Editor/BodyRoleDataEditor.cs create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Editor/BodyRoleDataEditor.cs.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Editor/BodyTracking.dll create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Editor/BodyTracking.dll.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Editor/LICENSE.txt create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Editor/LICENSE.txt.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Editor/SrdpEditor.cs create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Editor/SrdpEditor.cs.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Editor/opencv_world341.dll create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Editor/opencv_world341.dll.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Scripts/AnimatorTracking.cs create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Scripts/AnimatorTracking.cs.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Scripts/AvatarCoordinate.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Scripts/AvatarCoordinate/AvatarCoordinateProducer.cs create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Scripts/AvatarCoordinate/AvatarCoordinateProducer.cs.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Scripts/Poses.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Scripts/Poses/BodyRoleData.cs create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Scripts/Poses/BodyRoleData.cs.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Scripts/Poses/RolePose.cs create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Scripts/Poses/RolePose.cs.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Scripts/Poses/RolePoseController.cs create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Scripts/Poses/RolePoseController.cs.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Scripts/Poses/RolePoseHand.cs create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Scripts/Poses/RolePoseHand.cs.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Scripts/Poses/RolePoseHead.cs create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Scripts/Poses/RolePoseHead.cs.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Scripts/Poses/RolePoseProvider.cs create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Scripts/Poses/RolePoseProvider.cs.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Scripts/Poses/RolePoseTracker.cs create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Scripts/Poses/RolePoseTracker.cs.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Scripts/Srdp.cs create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Scripts/Srdp.cs.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/Common/Materials.meta rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/Common/{Models/SelfTracker/Material/Gray.mat => Materials/Black-0-0-0.mat} (90%) create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/Common/Materials/Black-0-0-0.mat.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/Common/Materials/Blue-0-0-255.mat create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/Common/Materials/Blue-0-0-255.mat.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/Common/Materials/Gray-128-128-128.mat rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/Common/{Models/SelfTracker/Material/Gray.mat.meta => Materials/Gray-128-128-128.mat.meta} (95%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/{BodyTracking(experimental)/Demo/Materials/Green.mat => Common/Materials/Green-0-255-0.mat} (95%) create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/Common/Materials/Green-0-255-0.mat.meta rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/{BodyTracking(experimental)/Demo/Materials/Blue.mat => Common/Materials/Red-255-0-0.mat} (93%) create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/Common/Materials/Red-255-0-0.mat.meta rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/{BodyTracking(experimental)/Demo/Materials => Common/Models}/Cone.fbx (100%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/{BodyTracking(experimental)/Demo/Materials => Common/Models}/Cone.fbx.meta (94%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/Common/Models/Controller/{Material => }/Focus3ModelL.fbx (100%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/Common/Models/Controller/{Material => }/Focus3ModelL.fbx.meta (100%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/Common/Models/Controller/{Material => }/Focus3ModelR.fbx (100%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/Common/Models/Controller/{Material => }/Focus3ModelR.fbx.meta (100%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/Common/Models/Controller/{Material.meta => Materials.meta} (100%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/Common/Models/Controller/{Material => Materials}/_DEFAULT_MTL1.mat (100%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/Common/Models/Controller/{Material => Materials}/_DEFAULT_MTL1.mat.meta (100%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/Common/Models/Controller/{Material => Materials}/__Battery.mat (100%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/Common/Models/Controller/{Material => Materials}/__Battery.mat.meta (100%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/Common/Models/Controller/{Texture.meta => Textures.meta} (100%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/Common/Models/Controller/{Texture => Textures}/battery.meta (100%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/Common/Models/Controller/{Texture => Textures}/battery/TX_PanelBattery_status1.png (100%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/Common/Models/Controller/{Texture => Textures}/battery/TX_PanelBattery_status1.png.meta (100%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/Common/Models/Controller/{Texture => Textures}/battery/TX_PanelBattery_status2.png (100%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/Common/Models/Controller/{Texture => Textures}/battery/TX_PanelBattery_status2.png.meta (100%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/Common/Models/Controller/{Texture => Textures}/battery/TX_PanelBattery_status3.png (100%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/Common/Models/Controller/{Texture => Textures}/battery/TX_PanelBattery_status3.png.meta (100%) create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/Common/Models/Controller/Textures/battery/TX_PanelBattery_status4.png rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/Common/Models/Controller/{Texture => Textures}/battery/TX_PanelBattery_status4.png.meta (100%) create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/Common/Models/Controller/Textures/overlay.png rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/Common/Models/Controller/{Texture => Textures}/overlay.png.meta (100%) create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/Common/Models/Hand.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/Common/Models/Hand/Materials.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/Common/Models/Hand/Materials/LeftHandMat.mat create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/Common/Models/Hand/Materials/LeftHandMat.mat.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/Common/Models/Hand/Materials/RightHandMat.mat create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/Common/Models/Hand/Materials/RightHandMat.mat.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/Common/Models/Hand/Shaders.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/Common/Models/Hand/Shaders/handBlueGrafillOL.shader create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/Common/Models/Hand/Shaders/handBlueGrafillOL.shader.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/Common/Models/Hand/Textures.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/Common/Models/Hand/Textures/Hand_alpha.png create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/Common/Models/Hand/Textures/Hand_alpha.png.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/Common/Models/Hand/WVRLeftHand_1106_ASCII.fbx create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/Common/Models/Hand/WVRLeftHand_1106_ASCII.fbx.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/Common/Models/Hand/WVRRightHand_1106_ASCII.fbx create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/Common/Models/Hand/WVRRightHand_1106_ASCII.fbx.meta delete mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/Common/Models/SelfTracker/Material/Black.mat.meta delete mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/Common/Models/SelfTracker/Material/Green.mat.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/Common/Models/UltimateTracker.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/Common/Models/UltimateTracker/Vive_UltimateTracker.fbx create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/Common/Models/UltimateTracker/Vive_UltimateTracker.fbx.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/Common/Prefabs.meta create mode 100644 com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/Common/Prefabs/Controller.meta rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/Common/{Models => Prefabs}/Controller/Focus3L.prefab (100%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/Common/{Models => Prefabs}/Controller/Focus3L.prefab.meta (100%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/Common/{Models => Prefabs}/Controller/Focus3R.prefab (100%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/Common/{Models => Prefabs}/Controller/Focus3R.prefab.meta (100%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/Common/{Models => Prefabs}/SelfTracker.meta (100%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/Common/{Models => Prefabs}/SelfTracker/SelfTracker.prefab (97%) rename com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/Common/{Models => Prefabs}/SelfTracker/SelfTracker.prefab.meta (95%) create mode 100644 com.htc.upm.vive.openxr/UnityPackages~/UniVRM-0.109.0_7aff.unitypackage diff --git a/com.htc.upm.vive.openxr/Editor/AndroidManifestProcess.cs b/com.htc.upm.vive.openxr/Editor/AndroidManifestProcess.cs index 318afd8..ad8402b 100644 --- a/com.htc.upm.vive.openxr/Editor/AndroidManifestProcess.cs +++ b/com.htc.upm.vive.openxr/Editor/AndroidManifestProcess.cs @@ -1,6 +1,7 @@ // Copyright HTC Corporation All Rights Reserved. using System; using System.IO; +using System.Reflection; using System.Text; using System.Threading; using System.Xml; @@ -12,7 +13,6 @@ using UnityEngine; using UnityEngine.XR.OpenXR; using UnityEngine.XR.OpenXR.Features; using UnityEngine.XR.OpenXR.Features.Interactions; -using VIVE.OpenXR.FacialTracking; using VIVE.OpenXR.Hand; using VIVE.OpenXR.Tracker; @@ -152,7 +152,7 @@ namespace VIVE.OpenXR.Editor m_IsEnabled = enabled; - sb.Clear().Append(LOG_TAG).Append(m_IsEnabled ? "Enable " : "Disable ").Append("Simultaneous Interaction."); DEBUG(sb); + //sb.Clear().Append(LOG_TAG).Append(m_IsEnabled ? "Enable " : "Disable ").Append("Simultaneous Interaction."); DEBUG(sb); } [MenuItem(MENU_NAME, validate = true, priority = 601)] @@ -255,6 +255,10 @@ namespace VIVE.OpenXR.Editor bool enableTracker = false; bool enableEyetracking = false; bool enableLipexpression = false; + const string kHandTrackingExtension = "XR_EXT_hand_tracking"; + const string kFacialTrackingExtension = "XR_HTC_facial_tracking"; + const string kHandInteractionHTC = "XR_HTC_hand_interaction"; + const string kHandInteractionEXT = "XR_EXT_hand_interaction"; var settings = OpenXRSettings.GetSettingsForBuildTargetGroup(BuildTargetGroup.Android); if (null == settings) @@ -279,14 +283,32 @@ namespace VIVE.OpenXR.Editor foreach (var feature in settings.GetFeatures()) { - if (feature is ViveHandTracking && feature.enabled) + if (!feature.enabled) { continue; } + + FieldInfo fieldInfoOpenXrExtensionStrings = typeof(OpenXRFeature).GetField( + "openxrExtensionStrings", + BindingFlags.NonPublic | BindingFlags.Instance); + if (fieldInfoOpenXrExtensionStrings != null) { - enableHandtracking = true; - } - if (feature is ViveFacialTracking && feature.enabled) - { - enableEyetracking = true; - enableLipexpression = true; + var openXrExtensionStringsArray = + ((string)fieldInfoOpenXrExtensionStrings.GetValue(feature)).Split(' '); + + foreach (string stringItem in openXrExtensionStringsArray) + { + if (string.IsNullOrEmpty(stringItem)) { continue; } + + if (stringItem.Equals(kHandTrackingExtension) || + stringItem.Equals(kHandInteractionHTC) || + stringItem.Equals(kHandInteractionEXT)) + { + enableHandtracking = true; + } + if (stringItem.Equals(kFacialTrackingExtension)) + { + enableEyetracking = true; + enableLipexpression = true; + } + } } } diff --git a/com.htc.upm.vive.openxr/Editor/CompositionLayer/Scripts/CompositionLayerEditor.cs b/com.htc.upm.vive.openxr/Editor/CompositionLayer/Scripts/CompositionLayerEditor.cs index 6f0c750..08c8526 100644 --- a/com.htc.upm.vive.openxr/Editor/CompositionLayer/Scripts/CompositionLayerEditor.cs +++ b/com.htc.upm.vive.openxr/Editor/CompositionLayer/Scripts/CompositionLayerEditor.cs @@ -83,6 +83,15 @@ namespace VIVE.OpenXR.CompositionLayer.Editor static GUIContent Label_IsDynamicLayer = new GUIContent("Dynamic Layer", "Specify whether Layer needs to be updated each frame or not."); SerializedProperty Property_IsDynamicLayer; + static string PropertyName_IsCustomRects = "isCustomRects"; + static GUIContent Label_IsCustomRects = new GUIContent("Customize Rects", "Using a single texture as a stereo image"); + SerializedProperty Property_IsCustomRects; + + static string PropertyName_CustomRects = "customRects"; + static GUIContent Label_CustomRects = new GUIContent("Customize Rects Type", "Specify the customize rects type of the left texture."); + SerializedProperty Property_CustomRects; + + static string PropertyName_ApplyColorScaleBias = "applyColorScaleBias"; static GUIContent Label_ApplyColorScaleBias = new GUIContent("Apply Color Scale Bias", "Color scale and bias are applied to a layer color during composition, after its conversion to premultiplied alpha representation. LayerColor = LayerColor * colorScale + colorBias"); SerializedProperty Property_ApplyColorScaleBias; @@ -114,15 +123,18 @@ namespace VIVE.OpenXR.CompositionLayer.Editor private bool showLayerParams = true, showColorScaleBiasParams = true; - private bool showExternalSurfaceParams = false; - + //private bool showExternalSurfaceParams = false; + Rect FullRect = new Rect(0, 0, 1, 1); + Rect LeftRightRect = new Rect(0, 0, 0.5f, 1); + Rect TopDownRect = new Rect(0, 0.5f, 1, 0.5f); public override void OnInspectorGUI() { if (Property_LayerType == null) Property_LayerType = serializedObject.FindProperty(PropertyName_LayerType); if (Property_CompositionDepth == null) Property_CompositionDepth = serializedObject.FindProperty(PropertyName_CompositionDepth); if (Property_LayerShape == null) Property_LayerShape = serializedObject.FindProperty(PropertyName_LayerShape); if (Property_LayerVisibility == null) Property_LayerVisibility = serializedObject.FindProperty(PropertyName_LayerVisibility); + if (Property_CustomRects == null) Property_CustomRects = serializedObject.FindProperty(PropertyName_CustomRects); if (Property_LockMode == null) Property_LockMode = serializedObject.FindProperty(PropertyName_LockMode); if (Property_QuadWidth == null) Property_QuadWidth = serializedObject.FindProperty(PropertyName_QuadWidth); if (Property_QuadHeight == null) Property_QuadHeight = serializedObject.FindProperty(PropertyName_QuadHeight); @@ -134,6 +146,7 @@ namespace VIVE.OpenXR.CompositionLayer.Editor if (Property_ExternalSurfaceWidth == null) Property_ExternalSurfaceWidth = serializedObject.FindProperty(PropertyName_ExternalSurfaceWidth); if (Property_ExternalSurfaceHeight == null) Property_ExternalSurfaceHeight = serializedObject.FindProperty(PropertyName_ExternalSurfaceHeight); if (Property_IsDynamicLayer == null) Property_IsDynamicLayer = serializedObject.FindProperty(PropertyName_IsDynamicLayer); + if (Property_IsCustomRects == null) Property_IsCustomRects = serializedObject.FindProperty(PropertyName_IsCustomRects); if (Property_ApplyColorScaleBias == null) Property_ApplyColorScaleBias = serializedObject.FindProperty(PropertyName_ApplyColorScaleBias); if (Property_SolidEffect == null) Property_SolidEffect = serializedObject.FindProperty(PropertyName_SolidEffect); if (Property_ColorScale == null) Property_ColorScale = serializedObject.FindProperty(PropertyName_ColorScale); @@ -311,6 +324,12 @@ namespace VIVE.OpenXR.CompositionLayer.Editor { if (GUILayout.Button("Show Cylinder Preview")) { + Rect srcRectLeft = FullRect; + if (targetCompositionLayer.isCustomRects && targetCompositionLayer.customRects == CompositionLayer.CustomRectsType.LeftRight) + srcRectLeft = LeftRightRect; + if (targetCompositionLayer.isCustomRects && targetCompositionLayer.customRects == CompositionLayer.CustomRectsType.TopDown) + srcRectLeft = TopDownRect; + targetCompositionLayer.isPreviewingCylinder = true; Vector3[] cylinderVertices = CompositionLayer.MeshGenerationHelper.GenerateCylinderVertex(targetCompositionLayer.CylinderAngleOfArc, targetCompositionLayer.CylinderRadius, targetCompositionLayer.CylinderHeight); //Add components to Game Object @@ -330,6 +349,8 @@ namespace VIVE.OpenXR.CompositionLayer.Editor if (targetCompositionLayer.texture != null) { cylinderMeshRenderer.sharedMaterial.mainTexture = targetCompositionLayer.texture; + cylinderMeshRenderer.sharedMaterial.mainTextureOffset = srcRectLeft.position; + cylinderMeshRenderer.sharedMaterial.mainTextureScale = srcRectLeft.size; } //Generate Mesh @@ -409,6 +430,12 @@ namespace VIVE.OpenXR.CompositionLayer.Editor { if (GUILayout.Button("Show Quad Preview")) { + Rect srcRectLeft = FullRect; + if (targetCompositionLayer.isCustomRects && targetCompositionLayer.customRects == CompositionLayer.CustomRectsType.LeftRight) + srcRectLeft = LeftRightRect; + if (targetCompositionLayer.isCustomRects && targetCompositionLayer.customRects == CompositionLayer.CustomRectsType.TopDown) + srcRectLeft = TopDownRect; + targetCompositionLayer.isPreviewingQuad = true; //Generate vertices Vector3[] quadVertices = CompositionLayer.MeshGenerationHelper.GenerateQuadVertex(targetCompositionLayer.quadWidth, targetCompositionLayer.quadHeight); @@ -430,6 +457,8 @@ namespace VIVE.OpenXR.CompositionLayer.Editor if (targetCompositionLayer.texture != null) { quadMeshRenderer.sharedMaterial.mainTexture = targetCompositionLayer.texture; + quadMeshRenderer.sharedMaterial.mainTextureOffset = srcRectLeft.position; + quadMeshRenderer.sharedMaterial.mainTextureScale = srcRectLeft.size; } //Generate Mesh quadMeshFilter.mesh = CompositionLayer.MeshGenerationHelper.GenerateQuadMesh(quadVertices); @@ -440,11 +469,18 @@ namespace VIVE.OpenXR.CompositionLayer.Editor //Rect UI For textures Rect labelRect = EditorGUILayout.GetControlRect(); - EditorGUI.LabelField(new Rect(labelRect.x, labelRect.y, labelRect.width / 2, labelRect.height), new GUIContent("Texture", "Texture to be rendered on the layer")); + EditorGUI.LabelField(new Rect(labelRect.x, labelRect.y, labelRect.width / 2, labelRect.height), new GUIContent("Left Texture", "Texture used for the left eye")); + EditorGUI.LabelField(new Rect(labelRect.x + labelRect.width / 2, labelRect.y, labelRect.width / 2, labelRect.height), new GUIContent("Right Texture", "Texture used for the right eye")); Rect textureRect = EditorGUILayout.GetControlRect(GUILayout.Height(64)); targetCompositionLayer.texture = (Texture)EditorGUI.ObjectField(new Rect(textureRect.x, textureRect.y, 64, textureRect.height), targetCompositionLayer.texture, typeof(Texture), true); + targetCompositionLayer.textureRight = (Texture)EditorGUI.ObjectField(new Rect(textureRect.x + textureRect.width / 2, textureRect.y, 64, textureRect.height), targetCompositionLayer.textureRight, typeof(Texture), true); + if (null == targetCompositionLayer.textureLeft) + { + targetCompositionLayer.texture = targetCompositionLayer.textureRight; + //myScript.textures[1] = right; + } EditorGUILayout.PropertyField(Property_LayerVisibility, new GUIContent(Label_LayerVisibility)); serializedObject.ApplyModifiedProperties(); @@ -456,7 +492,7 @@ namespace VIVE.OpenXR.CompositionLayer.Editor //serializedObject.ApplyModifiedProperties(); //if (targetCompositionLayer.isExternalSurface) - if (false) + /*if (false) { EditorGUI.indentLevel++; showExternalSurfaceParams = EditorGUILayout.Foldout(showExternalSurfaceParams, "External Surface Parameters"); @@ -469,8 +505,21 @@ namespace VIVE.OpenXR.CompositionLayer.Editor serializedObject.ApplyModifiedProperties(); } EditorGUI.indentLevel--; + }*/ + + if (targetCompositionLayer.textureLeft == targetCompositionLayer.textureRight || targetCompositionLayer.textureRight == null) + { + EditorGUILayout.PropertyField(Property_IsCustomRects, Label_IsCustomRects); + serializedObject.ApplyModifiedProperties(); } + if (targetCompositionLayer.isCustomRects) + { + EditorGUILayout.PropertyField(Property_CustomRects, new GUIContent(Label_CustomRects)); + serializedObject.ApplyModifiedProperties(); + } + + EditorGUILayout.Space(); EditorGUILayout.PropertyField(Property_ApplyColorScaleBias, Label_ApplyColorScaleBias); serializedObject.ApplyModifiedProperties(); diff --git a/com.htc.upm.vive.openxr/Editor/PackageManagerHelper.cs b/com.htc.upm.vive.openxr/Editor/PackageManagerHelper.cs new file mode 100644 index 0000000..d31971f --- /dev/null +++ b/com.htc.upm.vive.openxr/Editor/PackageManagerHelper.cs @@ -0,0 +1,166 @@ +// Copyright HTC Corporation All Rights Reserved. + +using UnityEditor.PackageManager; +using UnityEditor.PackageManager.Requests; +using UnityEngine; + +public static class PackageManagerHelper +{ + private static bool s_wasPreparing; + private static bool m_wasAdded; + private static bool s_wasRemoved; + private static ListRequest m_listRequest; + private static AddRequest m_addRequest; + private static RemoveRequest m_removeRequest; + private static string s_fallbackIdentifier; + + public static bool isPreparingList + { + get + { + if (m_listRequest == null) { return s_wasPreparing = true; } + + switch (m_listRequest.Status) + { + case StatusCode.InProgress: + return s_wasPreparing = true; + case StatusCode.Failure: + if (!s_wasPreparing) + { + Debug.LogError("Something wrong when adding package to list. error:" + m_listRequest.Error.errorCode + "(" + m_listRequest.Error.message + ")"); + } + break; + case StatusCode.Success: + break; + } + + return s_wasPreparing = false; + } + } + + public static bool isAddingToList + { + get + { + if (m_addRequest == null) { return m_wasAdded = false; } + + switch (m_addRequest.Status) + { + case StatusCode.InProgress: + return m_wasAdded = true; + case StatusCode.Failure: + if (!m_wasAdded) + { + AddRequest request = m_addRequest; + m_addRequest = null; + if (string.IsNullOrEmpty(s_fallbackIdentifier)) + { + Debug.LogError("Something wrong when adding package to list. error:" + request.Error.errorCode + "(" + request.Error.message + ")"); + } + else + { + Debug.Log("Failed to install package: \"" + request.Error.message + "\". Retry with fallback identifier \"" + s_fallbackIdentifier + "\""); + AddToPackageList(s_fallbackIdentifier); + } + + s_fallbackIdentifier = null; + } + break; + case StatusCode.Success: + if (!m_wasAdded) + { + m_addRequest = null; + s_fallbackIdentifier = null; + ResetPackageList(); + } + break; + } + + return m_wasAdded = false; + } + } + + public static bool isRemovingFromList + { + get + { + if (m_removeRequest == null) { return s_wasRemoved = false; } + + switch (m_removeRequest.Status) + { + case StatusCode.InProgress: + return s_wasRemoved = true; + case StatusCode.Failure: + if (!s_wasRemoved) + { + var request = m_removeRequest; + m_removeRequest = null; + Debug.LogError("Something wrong when removing package from list. error:" + m_removeRequest.Error.errorCode + "(" + m_removeRequest.Error.message + ")"); + } + break; + case StatusCode.Success: + if (!s_wasRemoved) + { + m_removeRequest = null; + ResetPackageList(); + } + break; + } + + return s_wasRemoved = false; + } + } + + public static void PreparePackageList() + { + if (m_listRequest != null) { return; } + m_listRequest = Client.List(true, true); + } + + public static void ResetPackageList() + { + s_wasPreparing = false; + m_listRequest = null; + } + + public static bool IsPackageInList(string name, out UnityEditor.PackageManager.PackageInfo packageInfo) + { + packageInfo = null; + if (m_listRequest == null || m_listRequest.Result == null) return false; + + foreach (var package in m_listRequest.Result) + { + if (package.name.Equals(name)) + { + packageInfo = package; + return true; + } + } + return false; + } + + public static void AddToPackageList(string identifier, string fallbackIdentifier = null) + { + Debug.Assert(m_addRequest == null); + + m_addRequest = Client.Add(identifier); + s_fallbackIdentifier = fallbackIdentifier; + } + + public static void RemovePackage(string identifier) + { + Debug.Assert(m_removeRequest == null); + + m_removeRequest = Client.Remove(identifier); + } + + public static PackageCollection GetPackageList() + { + if (m_listRequest == null || m_listRequest.Result == null) + { + return null; + } + + return m_listRequest.Result; + } +} diff --git a/com.htc.upm.vive.openxr/Editor/ViveOpenXRBuildCheck.cs.meta b/com.htc.upm.vive.openxr/Editor/PackageManagerHelper.cs.meta similarity index 83% rename from com.htc.upm.vive.openxr/Editor/ViveOpenXRBuildCheck.cs.meta rename to com.htc.upm.vive.openxr/Editor/PackageManagerHelper.cs.meta index ac67c11..6b4187f 100644 --- a/com.htc.upm.vive.openxr/Editor/ViveOpenXRBuildCheck.cs.meta +++ b/com.htc.upm.vive.openxr/Editor/PackageManagerHelper.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: a00aae5e5e4790c429467d7a03b4a6de +guid: 43952515f295bac4385e71851692047d MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Arts.meta b/com.htc.upm.vive.openxr/Editor/Preferences.meta similarity index 77% rename from com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Arts.meta rename to com.htc.upm.vive.openxr/Editor/Preferences.meta index 7487fbb..40b4da0 100644 --- a/com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Arts.meta +++ b/com.htc.upm.vive.openxr/Editor/Preferences.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: ba676113e4d2dfc4095675f6fb934d9e +guid: 5f1198e3724eb5b44a705edc6d6bae06 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/com.htc.upm.vive.openxr/Editor/Preferences/PreferenceAvatarAsset.cs b/com.htc.upm.vive.openxr/Editor/Preferences/PreferenceAvatarAsset.cs new file mode 100644 index 0000000..2d9df9b --- /dev/null +++ b/com.htc.upm.vive.openxr/Editor/Preferences/PreferenceAvatarAsset.cs @@ -0,0 +1,24 @@ +// Copyright HTC Corporation All Rights Reserved. + +using System; +using UnityEngine; + +#if UNITY_EDITOR +namespace VIVE.OpenXR.Editor +{ + [Serializable] + public class PreferenceAvatarAsset : ScriptableObject + { + public const string AssetPath = "Assets/VIVE/OpenXR/Preferences/PreferenceAvatarAsset.asset"; + + // VRM constants + public const string kVrm0Package = "UniVRM-0.109.0_7aff.unitypackage"; + public const string kVrm0Asset = "Assets/VRM.meta"; + public const string kVrm1Package = "VRM-0.109.0_7aff.unitypackage"; + public const string kVrm1Asset = "Assets/VRM10.meta"; + + public bool SupportVrm0 = false; + public bool SupportVrm1 = false; + } +} +#endif diff --git a/com.htc.upm.vive.openxr/Editor/VIVEFocus3FeatureEditor.cs.meta b/com.htc.upm.vive.openxr/Editor/Preferences/PreferenceAvatarAsset.cs.meta similarity index 83% rename from com.htc.upm.vive.openxr/Editor/VIVEFocus3FeatureEditor.cs.meta rename to com.htc.upm.vive.openxr/Editor/Preferences/PreferenceAvatarAsset.cs.meta index 43cb216..b0ac55b 100644 --- a/com.htc.upm.vive.openxr/Editor/VIVEFocus3FeatureEditor.cs.meta +++ b/com.htc.upm.vive.openxr/Editor/Preferences/PreferenceAvatarAsset.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: b048c9b388bf8d34e9814b272da7ddb5 +guid: 94f6766384418a0418eb5ebdb371be20 MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/com.htc.upm.vive.openxr/Editor/Preferences/ViveOpenXRPreference.cs b/com.htc.upm.vive.openxr/Editor/Preferences/ViveOpenXRPreference.cs new file mode 100644 index 0000000..4a164ff --- /dev/null +++ b/com.htc.upm.vive.openxr/Editor/Preferences/ViveOpenXRPreference.cs @@ -0,0 +1,296 @@ +// Copyright HTC Corporation All Rights Reserved. + +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using System.Text; +using System.IO; +using System.Linq; + +#if UNITY_EDITOR +using UnityEditor; +using UnityEditor.PackageManager; +using UnityEditor.PackageManager.Requests; +using UnityEditor.XR.Management.Metadata; + +namespace VIVE.OpenXR.Editor +{ + [InitializeOnLoad] + public static class ViveOpenXRPreference + { + #region Log + static StringBuilder m_sb = null; + static StringBuilder sb { + get { + if (m_sb == null) { m_sb = new StringBuilder(); } + return m_sb; + } + } + const string LOG_TAG = "VIVE.OpenXR.Editor.ViveOpenXRPreference"; + static void DEBUG(StringBuilder msg) { Debug.LogFormat("{0} {1}", LOG_TAG, msg); } + static void ERROR(StringBuilder msg) { Debug.LogErrorFormat("{0} {1}", LOG_TAG, msg); } + #endregion + + static ViveOpenXRPreference() + { + EditorApplication.update += OnUpdate; + } + + #region Scripting Symbols + internal struct ScriptingDefinedSettings + { + public string[] scriptingDefinedSymbols; + public BuildTargetGroup[] targetGroups; + + public ScriptingDefinedSettings(string[] symbols, BuildTargetGroup[] groups) + { + scriptingDefinedSymbols = symbols; + targetGroups = groups; + } + } + + const string DEFINE_USE_VRM_0_x = "USE_VRM_0_x"; + static readonly ScriptingDefinedSettings m_ScriptDefineSettingVrm0 = new ScriptingDefinedSettings( + new string[] { DEFINE_USE_VRM_0_x, }, + new BuildTargetGroup[] { BuildTargetGroup.Android, } + ); + + static void AddScriptingDefineSymbols(ScriptingDefinedSettings setting) + { + for (int group_index = 0; group_index < setting.targetGroups.Length; group_index++) + { + var group = setting.targetGroups[group_index]; + string definesString = PlayerSettings.GetScriptingDefineSymbolsForGroup(group); + List allDefines = definesString.Split(';').ToList(); + for (int symbol_index = 0; symbol_index < setting.scriptingDefinedSymbols.Length; symbol_index++) + { + if (!allDefines.Contains(setting.scriptingDefinedSymbols[symbol_index])) + { + sb.Clear().Append("AddDefineSymbols() ").Append(setting.scriptingDefinedSymbols[symbol_index]).Append(" to group ").Append(group); DEBUG(sb); + allDefines.Add(setting.scriptingDefinedSymbols[symbol_index]); + } + else + { + sb.Clear().Append("AddDefineSymbols() ").Append(setting.scriptingDefinedSymbols[symbol_index]).Append(" already existed."); DEBUG(sb); + } + } + PlayerSettings.SetScriptingDefineSymbolsForGroup( + group, + string.Join(";", allDefines.ToArray()) + ); + } + } + static void RemoveScriptingDefineSymbols(ScriptingDefinedSettings setting) + { + for (int group_index = 0; group_index < setting.targetGroups.Length; group_index++) + { + var group = setting.targetGroups[group_index]; + string definesString = PlayerSettings.GetScriptingDefineSymbolsForGroup(group); + List allDefines = definesString.Split(';').ToList(); + for (int symbol_index = 0; symbol_index < setting.scriptingDefinedSymbols.Length; symbol_index++) + { + if (allDefines.Contains(setting.scriptingDefinedSymbols[symbol_index])) + { + sb.Clear().Append("RemoveDefineSymbols() ").Append(setting.scriptingDefinedSymbols[symbol_index]).Append(" from group ").Append(group); DEBUG(sb); + allDefines.Remove(setting.scriptingDefinedSymbols[symbol_index]); + } + else + { + sb.Clear().Append("RemoveDefineSymbols() ").Append(setting.scriptingDefinedSymbols[symbol_index]).Append(" already existed."); DEBUG(sb); + } + } + PlayerSettings.SetScriptingDefineSymbolsForGroup( + group, + string.Join(";", allDefines.ToArray()) + ); + } + } + static bool HasScriptingDefineSymbols(ScriptingDefinedSettings setting) + { + for (int group_index = 0; group_index < setting.targetGroups.Length; group_index++) + { + var group = setting.targetGroups[group_index]; + string definesString = PlayerSettings.GetScriptingDefineSymbolsForGroup(group); + List allDefines = definesString.Split(';').ToList(); + for (int symbol_index = 0; symbol_index < setting.scriptingDefinedSymbols.Length; symbol_index++) + { + if (!allDefines.Contains(setting.scriptingDefinedSymbols[symbol_index])) + { + return false; + } + } + } + + return true; + } + + const string XR_LOADER_OPENXR_NAME = "UnityEngine.XR.OpenXR.OpenXRLoader"; + internal static bool ViveOpenXRAndroidAssigned { get { return XRPackageMetadataStore.IsLoaderAssigned(XR_LOADER_OPENXR_NAME, BuildTargetGroup.Android); } } + + static PreferenceAvatarAsset m_AssetAvatar = null; + static void CheckPreferenceAssets() + { + if (File.Exists(PreferenceAvatarAsset.AssetPath)) + { + m_AssetAvatar = AssetDatabase.LoadAssetAtPath(PreferenceAvatarAsset.AssetPath, typeof(PreferenceAvatarAsset)) as PreferenceAvatarAsset; + } + else + { + string folderPath = PreferenceAvatarAsset.AssetPath.Substring(0, PreferenceAvatarAsset.AssetPath.LastIndexOf('/')); + DirectoryInfo folder = Directory.CreateDirectory(folderPath); + sb.Clear().Append("CheckPreferenceAssets() Creates folder: Assets/").Append(folder.Name); DEBUG(sb); + + m_AssetAvatar = ScriptableObject.CreateInstance(typeof(PreferenceAvatarAsset)) as PreferenceAvatarAsset; + m_AssetAvatar.SupportVrm0 = false; + m_AssetAvatar.SupportVrm1 = false; + + sb.Clear().Append("CheckPreferenceAssets() Creates the asset: ").Append(PreferenceAvatarAsset.AssetPath); DEBUG(sb); + AssetDatabase.CreateAsset(m_AssetAvatar, PreferenceAvatarAsset.AssetPath); + } + } + + static void OnUpdate() + { + if (!ViveOpenXRAndroidAssigned) { return; } + + CheckPreferenceAssets(); + + if (m_AssetAvatar) + { + // Adds the script symbol if VRM0 is imported. + if (File.Exists(PreferenceAvatarAsset.kVrm0Asset)) + { + if (!HasScriptingDefineSymbols(m_ScriptDefineSettingVrm0)) + { + sb.Clear().Append("OnUpdate() Adds m_ScriptDefineSettingVrm0."); DEBUG(sb); + AddScriptingDefineSymbols(m_ScriptDefineSettingVrm0); + } + m_AssetAvatar.SupportVrm0 = true; + } + else + { + if (HasScriptingDefineSymbols(m_ScriptDefineSettingVrm0)) + { + sb.Clear().Append("OnUpdate() Removes m_ScriptDefineSettingVrm0."); DEBUG(sb); + RemoveScriptingDefineSymbols(m_ScriptDefineSettingVrm0); + } + m_AssetAvatar.SupportVrm0 = false; + } + + m_AssetAvatar.SupportVrm1 = File.Exists(PreferenceAvatarAsset.kVrm1Asset); + } + } + #endregion + + #region Preferences + const string kPreferenceName = "VIVE OpenXR"; + private static GUIContent m_Vrm0Option = new GUIContent("VRM 0", "Avatar format."); + private static GUIContent m_Vrm1Option = new GUIContent("VRM 1", "Avatar format."); + + internal static void ImportModule(string packagePath, bool interactive = false) + { + string target = Path.Combine("Packages/com.htc.upm.vive.openxr/UnityPackages~", packagePath); + sb.Clear().Append("ImportModule: " + target); DEBUG(sb); + AssetDatabase.ImportPackage(target, interactive); + } + + static bool avatarOption = true; +#pragma warning disable 0618 + [PreferenceItem(kPreferenceName)] +#pragma warning restore 0618 + private static void OnPreferencesGUI() + { + if (EditorApplication.isCompiling) + { + EditorGUILayout.LabelField("Compiling..."); + return; + } + if (PackageManagerHelper.isAddingToList) + { + EditorGUILayout.LabelField("Installing packages..."); + return; + } + if (PackageManagerHelper.isRemovingFromList) + { + EditorGUILayout.LabelField("Removing packages..."); + return; + } + + PackageManagerHelper.PreparePackageList(); + if (PackageManagerHelper.isPreparingList) + { + EditorGUILayout.LabelField("Checking Packages..."); + return; + } + + CheckPreferenceAssets(); + + GUIStyle sectionTitleStyle = new GUIStyle(EditorStyles.label); + sectionTitleStyle.fontSize = 16; + sectionTitleStyle.richText = true; + sectionTitleStyle.fontStyle = FontStyle.Bold; + + #region Avatar + GUILayout.BeginHorizontal(); + GUILayout.Space(10); + GUILayout.Label("Avatar", sectionTitleStyle); + GUILayout.EndHorizontal(); + + GUIStyle foldoutStyle = EditorStyles.foldout; + foldoutStyle.fontSize = 14; + foldoutStyle.fontStyle = FontStyle.Normal; + + GUILayout.BeginHorizontal(); + GUILayout.Space(20); + avatarOption = EditorGUILayout.Foldout(avatarOption, "Supported Format", foldoutStyle); + GUILayout.EndHorizontal(); + + foldoutStyle.fontSize = 12; + foldoutStyle.fontStyle = FontStyle.Normal; + + if (m_AssetAvatar && avatarOption) + { + /// VRM 0 + GUILayout.Space(5); + GUILayout.BeginHorizontal(); + GUILayout.Space(35); + if (!m_AssetAvatar.SupportVrm0) + { + bool toggled = EditorGUILayout.ToggleLeft(m_Vrm0Option, false, GUILayout.Width(230f)); + if (toggled) + { + sb.Clear().Append("OnPreferencesGUI() Adds ").Append(PreferenceAvatarAsset.kVrm0Package); DEBUG(sb); + ImportModule(PreferenceAvatarAsset.kVrm0Package); + } + } + else + { + EditorGUILayout.ToggleLeft(m_Vrm0Option, true, GUILayout.Width(230f)); + } + GUILayout.EndHorizontal(); + + /// VRM 1 + GUILayout.Space(5); + GUILayout.BeginHorizontal(); + GUILayout.Space(35); + if (!m_AssetAvatar.SupportVrm1) + { + bool toggled = EditorGUILayout.ToggleLeft(m_Vrm1Option, false, GUILayout.Width(230f)); + if (toggled) + { + sb.Clear().Append("OnPreferencesGUI() Adds ").Append(PreferenceAvatarAsset.kVrm1Package); DEBUG(sb); + ImportModule(PreferenceAvatarAsset.kVrm1Package); + } + } + else + { + EditorGUILayout.ToggleLeft(m_Vrm1Option, true, GUILayout.Width(230f)); + } + GUILayout.EndHorizontal(); + } + #endregion + } + #endregion + } +} +#endif \ No newline at end of file diff --git a/com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Scripts/AvatarIKMenu.cs.meta b/com.htc.upm.vive.openxr/Editor/Preferences/ViveOpenXRPreference.cs.meta similarity index 83% rename from com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Scripts/AvatarIKMenu.cs.meta rename to com.htc.upm.vive.openxr/Editor/Preferences/ViveOpenXRPreference.cs.meta index 1b8d2d2..7d14e65 100644 --- a/com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Scripts/AvatarIKMenu.cs.meta +++ b/com.htc.upm.vive.openxr/Editor/Preferences/ViveOpenXRPreference.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 484659e19359fb740ac4a253c3fa83c6 +guid: 73bdd0b88ffae0e43a3a498347e6dea4 MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/com.htc.upm.vive.openxr/Editor/VIVEFocus3FeatureEditor.cs b/com.htc.upm.vive.openxr/Editor/VIVEFocus3FeatureEditor.cs deleted file mode 100644 index 8bc5315..0000000 --- a/com.htc.upm.vive.openxr/Editor/VIVEFocus3FeatureEditor.cs +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright HTC Corporation All Rights Reserved. -#if UNITY_EDITOR -using UnityEditor; - -namespace VIVE.OpenXR.Editor -{ - [CustomEditor(typeof(VIVEFocus3Feature))] - internal class VIVEFocus3FeatureEditor : UnityEditor.Editor - { - //private SerializedProperty enableHandTracking; - //private SerializedProperty enableTracker; - - void OnEnable() - { - //enableHandTracking = serializedObject.FindProperty("enableHandTracking"); - //enableTracker = serializedObject.FindProperty("enableTracker"); - } - - public override void OnInspectorGUI() - { - serializedObject.Update(); - - //EditorGUILayout.PropertyField(enableHandTracking); - //EditorGUILayout.PropertyField(enableTracker); - - serializedObject.ApplyModifiedProperties(); - } - } -} -#endif diff --git a/com.htc.upm.vive.openxr/Editor/ViveAnchorEditor.cs b/com.htc.upm.vive.openxr/Editor/ViveAnchorEditor.cs new file mode 100644 index 0000000..cf4cdd4 --- /dev/null +++ b/com.htc.upm.vive.openxr/Editor/ViveAnchorEditor.cs @@ -0,0 +1,24 @@ +// Copyright HTC Corporation All Rights Reserved. +using UnityEditor; +using VIVE.OpenXR.Feature; + +namespace VIVE.OpenXR.Editor +{ + [CustomEditor(typeof(ViveAnchor))] + internal class ViveAnchorEditor : UnityEditor.Editor + { + private SerializedProperty enablePersistedAnchor; + + void OnEnable() + { + enablePersistedAnchor = serializedObject.FindProperty("enablePersistedAnchor"); + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + EditorGUILayout.PropertyField(enablePersistedAnchor); + serializedObject.ApplyModifiedProperties(); + } + } +} diff --git a/com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Scripts/AvatarIKSample.cs.meta b/com.htc.upm.vive.openxr/Editor/ViveAnchorEditor.cs.meta similarity index 83% rename from com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Scripts/AvatarIKSample.cs.meta rename to com.htc.upm.vive.openxr/Editor/ViveAnchorEditor.cs.meta index 3682ad8..80f7fae 100644 --- a/com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Scripts/AvatarIKSample.cs.meta +++ b/com.htc.upm.vive.openxr/Editor/ViveAnchorEditor.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 6acba111d20a438439e5d1152010efa5 +guid: 9094698271e2abb4ab295256548772c3 MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/com.htc.upm.vive.openxr/Editor/ViveMenu.cs b/com.htc.upm.vive.openxr/Editor/ViveMenu.cs new file mode 100644 index 0000000..0abbde9 --- /dev/null +++ b/com.htc.upm.vive.openxr/Editor/ViveMenu.cs @@ -0,0 +1,44 @@ +// Copyright HTC Corporation All Rights Reserved. + +using UnityEngine; +using UnityEngine.SceneManagement; + +#if UNITY_EDITOR +using UnityEditor; + +namespace VIVE.OpenXR.Editor +{ + public class ViveMenu : UnityEditor.Editor + { + private const string kMenuXR = "VIVE/XR/Convert Main Camera to ViveRig"; + + [MenuItem(kMenuXR, priority = 101)] + private static void ConvertToViveRig() + { + // 1. Removes default Camera + Camera cam = FindObjectOfType(); + if (cam != null && cam.transform.parent == null) + { + Debug.Log("ConvertToViveRig() remove " + cam.gameObject.name); + DestroyImmediate(cam.gameObject); + } + + // 2. Loads ViveRig + if (GameObject.Find("ViveRig") == null && GameObject.Find("ViveRig(Clone)") == null) + { + GameObject prefab = Resources.Load("Prefabs/ViveRig"); + if (prefab != null) + { + Debug.Log("ConvertToViveRig() load " + prefab.name); + GameObject inst = Instantiate(prefab, null); + if (inst != null) + { + inst.name = "ViveRig"; + UnityEditor.SceneManagement.EditorSceneManager.MarkSceneDirty(SceneManager.GetActiveScene()); + } + } + } + } + } +} +#endif \ No newline at end of file diff --git a/com.htc.upm.vive.openxr/Editor/ViveMenu.cs.meta b/com.htc.upm.vive.openxr/Editor/ViveMenu.cs.meta new file mode 100644 index 0000000..2f7fcd3 --- /dev/null +++ b/com.htc.upm.vive.openxr/Editor/ViveMenu.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 0f78968df8bc5794393fb2016e223a6c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Editor/ViveMockRuntimeEditor.cs b/com.htc.upm.vive.openxr/Editor/ViveMockRuntimeEditor.cs new file mode 100644 index 0000000..ec9ec15 --- /dev/null +++ b/com.htc.upm.vive.openxr/Editor/ViveMockRuntimeEditor.cs @@ -0,0 +1,64 @@ +// Copyright HTC Corporation All Rights Reserved. +using UnityEditor; +using UnityEngine; +using VIVE.OpenXR.Feature; + +namespace VIVE.OpenXR.Editor +{ + [CustomEditor(typeof(ViveMockRuntime))] + internal class ViveMockRuntimeEditor : UnityEditor.Editor + { + private SerializedProperty enableFuture; + private SerializedProperty enableAnchor; + + void OnEnable() + { + enableFuture = serializedObject.FindProperty("enableFuture"); + enableAnchor = serializedObject.FindProperty("enableAnchor"); + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + // Show a text field for description + EditorGUILayout.HelpBox("VIVE's mock runtime. Used with OpenXR MockRuntime to test unsupported extensions and features on Editor.", MessageType.Info); + + if (GUILayout.Button("Install MockRuntime Library")) { + InstallMockRuntimeLibrary(); + } + + // check if changed + EditorGUI.BeginChangeCheck(); + EditorGUILayout.PropertyField(enableFuture); + if (EditorGUI.EndChangeCheck()) { + if (!enableFuture.boolValue) { + enableAnchor.boolValue = false; + } + } + + EditorGUI.BeginChangeCheck(); + EditorGUILayout.PropertyField(enableAnchor); + if (EditorGUI.EndChangeCheck()) { + if (enableAnchor.boolValue) { + enableFuture.boolValue = true; + } + } + + serializedObject.ApplyModifiedProperties(); + } + + public void InstallMockRuntimeLibrary() { + string sourcePathName = "Packages/com.htc.upm.vive.openxr/MockRuntime~/Win64/ViveMockRuntime.dll"; + string destPath = "Assets/Plugins/Win64"; + string destPathName = "Assets/Plugins/Win64/ViveMockRuntime.dll"; + + // check if the folder exists. If not, create it. + if (!System.IO.Directory.Exists(destPath)) { + System.IO.Directory.CreateDirectory(destPath); + } + + FileUtil.CopyFileOrDirectory(sourcePathName, destPathName); + AssetDatabase.Refresh(); + } + } +} diff --git a/com.htc.upm.vive.openxr/Editor/ViveMockRuntimeEditor.cs.meta b/com.htc.upm.vive.openxr/Editor/ViveMockRuntimeEditor.cs.meta new file mode 100644 index 0000000..f3b3a5a --- /dev/null +++ b/com.htc.upm.vive.openxr/Editor/ViveMockRuntimeEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: eedb4211aafd2cb4bae86fcc0e948f72 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Editor/ViveOpenXRBuildCheck.cs b/com.htc.upm.vive.openxr/Editor/ViveOpenXRBuildCheck.cs deleted file mode 100644 index 694e99b..0000000 --- a/com.htc.upm.vive.openxr/Editor/ViveOpenXRBuildCheck.cs +++ /dev/null @@ -1,135 +0,0 @@ -// Copyright HTC Corporation All Rights Reserved. - -using System.Collections.Generic; -using System.Linq; -using UnityEngine; - -#if UNITY_EDITOR -using UnityEditor; -using UnityEditor.XR.Management.Metadata; - -namespace VIVE.OpenXR.Editor -{ - [InitializeOnLoad] - public static class CheckIfVIVEEnabled - { - const string LOG_TAG = "VIVE.OpenXR.Editor.CheckIfVIVEEnabled"; - static void DEBUG(string msg) { Debug.Log(LOG_TAG + " " + msg); } - const string VERSION_DEFINE_OPENXR = "USE_VIVE_OPENXR_1_0_0"; - internal struct ScriptingDefinedSettings - { - public string[] scriptingDefinedSymbols; - public BuildTargetGroup[] targetGroups; - - public ScriptingDefinedSettings(string[] symbols, BuildTargetGroup[] groups) - { - scriptingDefinedSymbols = symbols; - targetGroups = groups; - } - } - static readonly ScriptingDefinedSettings m_ScriptDefineSettingOpenXRAndroid = new ScriptingDefinedSettings( - new string[] { VERSION_DEFINE_OPENXR, }, - new BuildTargetGroup[] { BuildTargetGroup.Android, } - ); - const string XR_LOADER_OPENXR_NAME = "UnityEngine.XR.OpenXR.OpenXRLoader"; - internal static bool ViveOpenXRAndroidAssigned { get { return XRPackageMetadataStore.IsLoaderAssigned(XR_LOADER_OPENXR_NAME, BuildTargetGroup.Android); } } - static void AddScriptingDefineSymbols(ScriptingDefinedSettings setting) - { - for (int group_index = 0; group_index < setting.targetGroups.Length; group_index++) - { - var group = setting.targetGroups[group_index]; - string definesString = PlayerSettings.GetScriptingDefineSymbolsForGroup(group); - List allDefines = definesString.Split(';').ToList(); - for (int symbol_index = 0; symbol_index < setting.scriptingDefinedSymbols.Length; symbol_index++) - { - if (!allDefines.Contains(setting.scriptingDefinedSymbols[symbol_index])) - { - DEBUG("AddDefineSymbols() " + setting.scriptingDefinedSymbols[symbol_index] + " to group " + group); - allDefines.Add(setting.scriptingDefinedSymbols[symbol_index]); - } - else - { - DEBUG("AddDefineSymbols() " + setting.scriptingDefinedSymbols[symbol_index] + " already existed."); - } - } - PlayerSettings.SetScriptingDefineSymbolsForGroup( - group, - string.Join(";", allDefines.ToArray()) - ); - } - } - static void RemoveScriptingDefineSymbols(ScriptingDefinedSettings setting) - { - for (int group_index = 0; group_index < setting.targetGroups.Length; group_index++) - { - var group = setting.targetGroups[group_index]; - string definesString = PlayerSettings.GetScriptingDefineSymbolsForGroup(group); - List allDefines = definesString.Split(';').ToList(); - for (int symbol_index = 0; symbol_index < setting.scriptingDefinedSymbols.Length; symbol_index++) - { - if (allDefines.Contains(setting.scriptingDefinedSymbols[symbol_index])) - { - DEBUG("RemoveDefineSymbols() " + setting.scriptingDefinedSymbols[symbol_index] + " from group " + group); - allDefines.Remove(setting.scriptingDefinedSymbols[symbol_index]); - } - else - { - DEBUG("RemoveDefineSymbols() " + setting.scriptingDefinedSymbols[symbol_index] + " already existed."); - } - } - PlayerSettings.SetScriptingDefineSymbolsForGroup( - group, - string.Join(";", allDefines.ToArray()) - ); - } - } - static bool HasScriptingDefineSymbols(ScriptingDefinedSettings setting) - { - for (int group_index = 0; group_index < setting.targetGroups.Length; group_index++) - { - var group = setting.targetGroups[group_index]; - string definesString = PlayerSettings.GetScriptingDefineSymbolsForGroup(group); - List allDefines = definesString.Split(';').ToList(); - for (int symbol_index = 0; symbol_index < setting.scriptingDefinedSymbols.Length; symbol_index++) - { - if (!allDefines.Contains(setting.scriptingDefinedSymbols[symbol_index])) - { - return false; - } - } - } - - return true; - } - static void CheckScriptingDefineSymbols() - { - // Adds the script symbol if Vive OpenXR Plugin - Android is imported and assigned in XR Plugin-in Management. - if (ViveOpenXRAndroidAssigned) - { - if (!HasScriptingDefineSymbols(m_ScriptDefineSettingOpenXRAndroid)) - { - DEBUG("OnUpdate() Adds m_ScriptDefineSettingOpenXRAndroid."); - AddScriptingDefineSymbols(m_ScriptDefineSettingOpenXRAndroid); - } - } - // Removes the script symbol if Vive OpenXR Plugin - Android is uninstalled. - else - { - if (HasScriptingDefineSymbols(m_ScriptDefineSettingOpenXRAndroid)) - { - DEBUG("OnUpdate() Removes m_ScriptDefineSettingOpenXRAndroid."); - RemoveScriptingDefineSymbols(m_ScriptDefineSettingOpenXRAndroid); - } - } - } - static void OnUpdate() - { - //CheckScriptingDefineSymbols(); - } - static CheckIfVIVEEnabled() - { - EditorApplication.update += OnUpdate; - } - } -} -#endif \ No newline at end of file diff --git a/com.htc.upm.vive.openxr/Editor/VIVEFocus3FeatureSet.cs b/com.htc.upm.vive.openxr/Editor/ViveOpenXRFeatureSet.cs similarity index 59% rename from com.htc.upm.vive.openxr/Editor/VIVEFocus3FeatureSet.cs rename to com.htc.upm.vive.openxr/Editor/ViveOpenXRFeatureSet.cs index cb23514..2a78fb2 100644 --- a/com.htc.upm.vive.openxr/Editor/VIVEFocus3FeatureSet.cs +++ b/com.htc.upm.vive.openxr/Editor/ViveOpenXRFeatureSet.cs @@ -19,14 +19,27 @@ namespace VIVE.OpenXR "vive.openxr.feature.foveation", FacialTracking.ViveFacialTracking.featureId, PlaneDetection.VivePlaneDetection.featureId, - Anchor.ViveAnchor.featureId, + VivePathEnumeration.featureId, + Feature.ViveAnchor.featureId, + DisplayRefreshRate.ViveDisplayRefreshRate.featureId, + Passthrough.VivePassthrough.featureId, + FirstPersonObserver.ViveFirstPersonObserver.FeatureId, + SecondaryViewConfiguration.ViveSecondaryViewConfiguration.FeatureId, + UserPresence.ViveUserPresence.featureId, + CompositionLayer.ViveCompositionLayerExtraSettings.featureId, + FrameSynchronization.ViveFrameSynchronization.featureId, + EyeTracker.ViveEyeTracker.featureId, + Feature.ViveMockRuntime.featureId, + Interaction.ViveInteractions.featureId, }, UiName = "VIVE XR Support", Description = "Necessary to deploy an VIVE XR compatible app.", FeatureSetId = "com.htc.vive.openxr.featureset.vivexr", +#if UNITY_ANDROID DefaultFeatureIds = new string[] { VIVEFocus3Feature.featureId, VIVEFocus3Profile.featureId, }, - SupportedBuildTargets = new BuildTargetGroup[] { BuildTargetGroup.Android } +#endif + SupportedBuildTargets = new BuildTargetGroup[] { BuildTargetGroup.Android, BuildTargetGroup.Standalone } )] - sealed class VIVEFocus3FeatureSet { } + sealed class ViveOpenXRFeatureSet { } } #endif diff --git a/com.htc.upm.vive.openxr/Editor/VIVEFocus3FeatureSet.cs.meta b/com.htc.upm.vive.openxr/Editor/ViveOpenXRFeatureSet.cs.meta similarity index 100% rename from com.htc.upm.vive.openxr/Editor/VIVEFocus3FeatureSet.cs.meta rename to com.htc.upm.vive.openxr/Editor/ViveOpenXRFeatureSet.cs.meta diff --git a/com.htc.upm.vive.openxr/Editor/ViveSpectatorCameraProcess.cs b/com.htc.upm.vive.openxr/Editor/ViveSpectatorCameraProcess.cs new file mode 100644 index 0000000..0816e6a --- /dev/null +++ b/com.htc.upm.vive.openxr/Editor/ViveSpectatorCameraProcess.cs @@ -0,0 +1,81 @@ +using System; +using System.Reflection; +using UnityEditor; +using UnityEditor.Build.Reporting; +using UnityEditor.XR.OpenXR.Features; +using UnityEngine.XR.OpenXR.Features; +using UnityEngine.XR.OpenXR; +using static VIVE.OpenXR.VIVEFocus3Feature; + +namespace VIVE.OpenXR.Editor +{ + public class ViveSpectatorCameraProcess : OpenXRFeatureBuildHooks + { + public override int callbackOrder => 1; + + public override Type featureType => typeof(VIVEFocus3Feature); + + /// + /// Enable or disable the "First Person Observer" extension according to the Spectator Camera Feature. + /// + /// Type True if Spectator Camera Feature is enabled. Otherwise, type False. + private static void SetFirstPersonObserver(in bool enable) + { + var settings = OpenXRSettings.GetSettingsForBuildTargetGroup(BuildTargetGroup.Android); + + foreach (OpenXRFeature feature in settings.GetFeatures()) + { + FieldInfo fieldInfoOpenXrExtensionStrings = typeof(OpenXRFeature).GetField( + "openxrExtensionStrings", + BindingFlags.NonPublic | BindingFlags.Instance); + if (fieldInfoOpenXrExtensionStrings != null) + { + var openXrExtensionStringsArray = + ((string)fieldInfoOpenXrExtensionStrings.GetValue(feature)).Split(' '); + + foreach (var stringItem in openXrExtensionStringsArray) + { + if (string.IsNullOrEmpty(stringItem)) + { + continue; + } + + if (!string.Equals(stringItem, FirstPersonObserver.ViveFirstPersonObserver.OPEN_XR_EXTENSION_STRING)) + { + continue; + } + + feature.enabled = enable; + return; + } + } + } + } + + #region The callbacks during the build process when your OpenXR Extension is enabled. + + protected override void OnPreprocessBuildExt(BuildReport report) + { + if (IsViveSpectatorCameraEnabled()) + { + SetFirstPersonObserver(true); + UnityEngine.Debug.Log("Enable \"First Person Observer\" extension due to the Spectator Camera Feature."); + } + else + { + SetFirstPersonObserver(false); + UnityEngine.Debug.Log("Disable \"First Person Observer\" extension because Spectator Camera Feature is closed."); + } + } + + protected override void OnPostGenerateGradleAndroidProjectExt(string path) + { + } + + protected override void OnPostprocessBuildExt(BuildReport report) + { + } + + #endregion + } +} \ No newline at end of file diff --git a/com.htc.upm.vive.openxr/Editor/ViveSpectatorCameraProcess.cs.meta b/com.htc.upm.vive.openxr/Editor/ViveSpectatorCameraProcess.cs.meta new file mode 100644 index 0000000..8f0b646 --- /dev/null +++ b/com.htc.upm.vive.openxr/Editor/ViveSpectatorCameraProcess.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4fcb7e5a984acb64bb9221b9b05c0517 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/LICENSE b/com.htc.upm.vive.openxr/LICENSE deleted file mode 100644 index 88da92d..0000000 --- a/com.htc.upm.vive.openxr/LICENSE +++ /dev/null @@ -1,54 +0,0 @@ -================================================================================ -Copyright 2017-2021, HTC Corporation. All rights reserved. -================================================================================ - -Unless otherwise provided herein or in the folder you download or use, the information in this Work is the exclusive property of HTC. - -Please note that this Work includes VIVE SDK native binary which is subject to a sperate license agreement described below. You can find more detailed information about VIVE SDK and its available plugin software packages at VIVE developer resource page (https://developer.vive.com/resources/knowledgebase/wave-sdk/). - -*VIVE SDK native binary: -Your use of VIVE SDK native binary will be subject to SDK License Agreement between you and HTC. You can find the text of license agreement at https://developer.vive.com/resources/knowledgebase/sdk-license-agreement-english-version/. Please read it carefully before using this Work. - -*VIVE SDK Plugin Package: -Your use of plugin software package will be subject to the license terms contemplated herein. You can use, modify, share and/or reproduce the VIVE SDK Plugin Package in accordance with the Agreement herein. - -If you do not agree to the terms of the Agreement, please do not use this Work. - -The VIVE SDK native binary contains some third party software which separate license terms may apply. Please refer to the Accompanying License in a separate file named “VIVE SDK Native Binary Accompanying OSS Licenseâ€. - -================================================================================ - -License Terms for VIVE SDK Plugin Package - -The works ("Work") herein refer to the software developed or owned by -HTC Corporation ("HTC") under the terms of the license. Unless otherwise -provided herein or in the folder you download or use, the information in -this Work is the exclusive property of HTC. HTC grants the -legal user the right to use the Work within the scope of the legitimate -development of software. No further right is granted under this license, -including but not limited to, distribution, reproduction and -modification. Any other usage of the Works shall be subject to the -written consent of HTC. - -The use of the Work is permitted provided that the following conditions -are met: - * The Work is used in a source code form must retain the above - copyright notice, this list of conditions and the following - disclaimer. - * The Work is used in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distributions. - * Neither HTC nor the names of its contributors may be used to - endorse or promote products derived from this software without - specific prior written permission. - -THE WORK 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 WORK OR THE USE OR OTHER -DEALINGS IN THE WORK. - - diff --git a/com.htc.upm.vive.openxr/LICENSE.txt b/com.htc.upm.vive.openxr/LICENSE.txt new file mode 100644 index 0000000..e247fc1 --- /dev/null +++ b/com.htc.upm.vive.openxr/LICENSE.txt @@ -0,0 +1,4 @@ +Copyright © HTC Corporation, LLC and its affiliates. All rights reserved. + +Your use of this SDK, sample, or tool is subject to HTC VIVE SDK License Agreement, available at https://developer.vive.com/resources/downloads/licenses-and-agreements/ + diff --git a/com.htc.upm.vive.openxr/LICENSE.meta b/com.htc.upm.vive.openxr/LICENSE.txt.meta similarity index 100% rename from com.htc.upm.vive.openxr/LICENSE.meta rename to com.htc.upm.vive.openxr/LICENSE.txt.meta diff --git a/com.htc.upm.vive.openxr/MockRuntime~/Win64/ViveMockRuntime.dll b/com.htc.upm.vive.openxr/MockRuntime~/Win64/ViveMockRuntime.dll new file mode 100644 index 0000000..82c85ce --- /dev/null +++ b/com.htc.upm.vive.openxr/MockRuntime~/Win64/ViveMockRuntime.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f717cf3d3557f7ff8e617804558b27aa828dc2180f57a7311fd19a3a0a66c536 +size 182784 diff --git a/com.htc.upm.vive.openxr/Runtime/Android/arm64/libopenxr_loader.so b/com.htc.upm.vive.openxr/Runtime/Android/arm64/libopenxr_loader.so index 8b817cf..2d0b951 100644 --- a/com.htc.upm.vive.openxr/Runtime/Android/arm64/libopenxr_loader.so +++ b/com.htc.upm.vive.openxr/Runtime/Android/arm64/libopenxr_loader.so @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8b83f1eac500f8c012a25f6bb8bb9009922ad0609c1c5f35ee747f54c25646b1 -size 14528336 +oid sha256:b5f805512706a3e01ae523d7216f676854d3f1e1a26ff55268fcb451e6ff0a80 +size 1137008 diff --git a/com.htc.upm.vive.openxr/Runtime/Android/arm64/libviveopenxr.so b/com.htc.upm.vive.openxr/Runtime/Android/arm64/libviveopenxr.so index c0df009..9256aa2 100644 --- a/com.htc.upm.vive.openxr/Runtime/Android/arm64/libviveopenxr.so +++ b/com.htc.upm.vive.openxr/Runtime/Android/arm64/libviveopenxr.so @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c5bcb67b079fa79a7d0e26e07c7d8a5ebdf4620e26c02707297a9922fccef546 -size 349840 +oid sha256:03112f1238f564e25967d7421da91a81e842bd69dec6f5d5b3aadc73a1c2468b +size 513424 diff --git a/com.htc.upm.vive.openxr/Runtime/Android/openxr_loader.aar b/com.htc.upm.vive.openxr/Runtime/Android/openxr_loader.aar index 4652c69..f1c2a01 100644 --- a/com.htc.upm.vive.openxr/Runtime/Android/openxr_loader.aar +++ b/com.htc.upm.vive.openxr/Runtime/Android/openxr_loader.aar @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:658d03cfd36e12406d704e8ca5ceb3399932dca855767d068672a2d07f6a1370 -size 13024021 +oid sha256:c8b50603ad3b81756c6bd203ab9c9d19341326e14f6cbae87ee894137ee5e256 +size 1599568 diff --git a/com.htc.upm.vive.openxr/Runtime/Common/IViveFeatureWrapper.cs b/com.htc.upm.vive.openxr/Runtime/Common/IViveFeatureWrapper.cs new file mode 100644 index 0000000..3b3e93d --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Common/IViveFeatureWrapper.cs @@ -0,0 +1,38 @@ +// Copyright HTC Corporation All Rights Reserved. + +using System; +using System.Runtime.InteropServices; + +namespace VIVE.OpenXR.Feature +{ + public interface IViveFeatureWrapper + { + public bool OnInstanceCreate(XrInstance xrInstance, IntPtr xrGetInstanceProcAddr); + + public void OnInstanceDestroy(); + } + + public class ViveFeatureWrapperBase where T : ViveFeatureWrapperBase, new() + { + private static readonly Lazy lazyInstance = new Lazy(() => new T()); + + public static T Instance => lazyInstance.Value; + + // Set true in yourfeature's OnInstanceCreate + public bool IsInited { get; protected set; } = false; + + public OpenXRHelper.xrGetInstanceProcAddrDelegate xrGetInstanceProcAddr; + + /// + /// Complete the xrGetInstanceProcAddr by set the pointer received in OnInstanceCreate + /// + /// + public void SetGetInstanceProcAddrPtr(IntPtr intPtr) + { + if (intPtr == null || intPtr == IntPtr.Zero) + throw new Exception("xrGetInstanceProcAddr is null"); + + xrGetInstanceProcAddr = Marshal.GetDelegateForFunctionPointer(intPtr); + } + } +} diff --git a/com.htc.upm.vive.openxr/Runtime/Common/IViveFeatureWrapper.cs.meta b/com.htc.upm.vive.openxr/Runtime/Common/IViveFeatureWrapper.cs.meta new file mode 100644 index 0000000..645822e --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Common/IViveFeatureWrapper.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a27dc5505cdb29347aeda46676cedaa8 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Common/MemoryTools.cs b/com.htc.upm.vive.openxr/Runtime/Common/MemoryTools.cs new file mode 100644 index 0000000..64ebe5e --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Common/MemoryTools.cs @@ -0,0 +1,80 @@ +using System; +using System.Runtime.InteropServices; + +namespace VIVE.OpenXR +{ + public static class MemoryTools + { + /// + /// Convert the enum array to IntPtr. Should call after use. + /// + /// + /// + /// + public static IntPtr ToIntPtr(T[] array) where T : Enum + { + int size = Marshal.SizeOf(typeof(T)) * array.Length; + IntPtr ptr = Marshal.AllocHGlobal(size); + int[] intArray = new int[array.Length]; + for (int i = 0; i < array.Length; i++) + intArray[i] = (int)(object)array[i]; + Marshal.Copy(intArray, 0, ptr, array.Length); + return ptr; + } + + /// + /// Make the same size raw buffer from input array. + /// + /// Data type could be primitive type or struct. Should call after use. + /// The data array + /// The memory handle. Should release by + public static IntPtr MakeRawMemory(T[] refArray) + { + int size = Marshal.SizeOf(typeof(T)) * refArray.Length; + return Marshal.AllocHGlobal(size); + } + + /// + /// Copy the raw memory to the array. You should make sure the array has the same size as the raw memory. + /// + /// Convert the memory to this type array. + /// The output array. + /// The data source in raw memory form. + /// Specify the copy count. Count should be less than array length. + public static void CopyFromRawMemory(T[] array, IntPtr raw, int count = 0) + { + int N = array.Length; + if (count > 0 && count < array.Length) + N = count; + int step = Marshal.SizeOf(typeof(T)); + for (int i = 0; i < N; i++) + { + array[i] = Marshal.PtrToStructure(IntPtr.Add(raw, i * step)); + } + } + + /// + /// Make the same size raw buffer from input array. Make sure the raw has enough size. + /// + /// Convert this type array to raw memory. + /// The output data in raw memory form + /// The data source + public static void CopyToRawMemory(IntPtr raw, T[] array) + { + int step = Marshal.SizeOf(typeof(T)); + for (int i = 0; i < array.Length; i++) + { + Marshal.StructureToPtr(array[i], IntPtr.Add(raw, i * step), false); + } + } + + /// + /// Release the raw memory handle which is created by + /// + /// + public static void ReleaseRawMemory(IntPtr ptr) + { + Marshal.FreeHGlobal(ptr); + } + } +} \ No newline at end of file diff --git a/com.htc.upm.vive.openxr/Runtime/Toolkits/PlaneDetection/Scripts/MemoryTools.cs.meta b/com.htc.upm.vive.openxr/Runtime/Common/MemoryTools.cs.meta similarity index 100% rename from com.htc.upm.vive.openxr/Runtime/Toolkits/PlaneDetection/Scripts/MemoryTools.cs.meta rename to com.htc.upm.vive.openxr/Runtime/Common/MemoryTools.cs.meta diff --git a/com.htc.upm.vive.openxr/Runtime/Common/ViveFeatureCommonWrapper.cs b/com.htc.upm.vive.openxr/Runtime/Common/ViveFeatureCommonWrapper.cs index 6b027b9..d1b61ed 100644 --- a/com.htc.upm.vive.openxr/Runtime/Common/ViveFeatureCommonWrapper.cs +++ b/com.htc.upm.vive.openxr/Runtime/Common/ViveFeatureCommonWrapper.cs @@ -3,6 +3,7 @@ using System; using System.Runtime.InteropServices; using UnityEngine; +using UnityEngine.Profiling; namespace VIVE.OpenXR.Feature { @@ -10,23 +11,16 @@ namespace VIVE.OpenXR.Feature /// To use this wrapper, you need to call CommonWrapper.Instance.OnInstanceCreate() in your feature's OnInstanceCreate(), /// and call CommonWrapper.Instance.OnInstanceDestroy() in your feature's OnInstanceDestroy(). /// - public class CommonWrapper + public class CommonWrapper : ViveFeatureWrapperBase, IViveFeatureWrapper { - static CommonWrapper instance = null; - public static CommonWrapper Instance - { - get - { - if (instance == null) - instance = new CommonWrapper(); - return instance; - } - } - - bool isInited = false; - - OpenXRHelper.xrGetInstanceProcAddrDelegate XrGetInstanceProcAddr; OpenXRHelper.xrGetSystemPropertiesDelegate XrGetSystemProperties; + OpenXRHelper.xrCreateSwapchainDelegate XrCreateSwapchain; + OpenXRHelper.xrDestroySwapchainDelegate XrDestroySwapchain; + OpenXRHelper.xrEnumerateSwapchainFormatsDelegate XrEnumerateSwapchainFormats; + OpenXRHelper.xrEnumerateSwapchainImagesDelegate XrEnumerateSwapchainImages; + OpenXRHelper.xrWaitSwapchainImageDelegate XrWaitSwapchainImage; + OpenXRHelper.xrAcquireSwapchainImageDelegate XrAcquireSwapchainImage; + OpenXRHelper.xrReleaseSwapchainImageDelegate XrReleaseSwapchainImage; /// /// In feature's OnInstanceCreate(), call CommonWrapper.Instance.OnInstanceCreate() for init common APIs. @@ -35,32 +29,32 @@ namespace VIVE.OpenXR.Feature /// Pass OpenXRFeature.xrGetInstanceProcAddr in. /// /// If input data not valid. - public bool OnInstanceCreate(XrInstance xrInstance, IntPtr xrGetInstanceProcAddr) + public bool OnInstanceCreate(XrInstance xrInstance, IntPtr xrGetInstanceProcAddrPtr) { - if (isInited) return true; + if (IsInited) return true; if (xrInstance == 0) throw new Exception("CommonWrapper: xrInstance is null"); Debug.Log("CommonWrapper: OnInstanceCreate()"); - /// OpenXRFeature.xrGetInstanceProcAddr - if (xrGetInstanceProcAddr == null || xrGetInstanceProcAddr == IntPtr.Zero) - throw new Exception("CommonWrapper: xrGetInstanceProcAddr is null"); - - Debug.Log("CommonWrapper: Get function pointer of xrGetInstanceProcAddr."); - XrGetInstanceProcAddr = Marshal.GetDelegateForFunctionPointer( - xrGetInstanceProcAddr, - typeof(OpenXRHelper.xrGetInstanceProcAddrDelegate)) as OpenXRHelper.xrGetInstanceProcAddrDelegate; + SetGetInstanceProcAddrPtr(xrGetInstanceProcAddrPtr); bool ret = true; IntPtr funcPtr = IntPtr.Zero; - ret &= OpenXRHelper.GetXrFunctionDelegate(XrGetInstanceProcAddr, xrInstance, "xrGetSystemProperties", out XrGetSystemProperties); + ret &= OpenXRHelper.GetXrFunctionDelegate(xrGetInstanceProcAddr, xrInstance, "xrGetSystemProperties", out XrGetSystemProperties); + ret &= OpenXRHelper.GetXrFunctionDelegate(xrGetInstanceProcAddr, xrInstance, "xrCreateSwapchain", out XrCreateSwapchain); + ret &= OpenXRHelper.GetXrFunctionDelegate(xrGetInstanceProcAddr, xrInstance, "xrDestroySwapchain", out XrDestroySwapchain); + ret &= OpenXRHelper.GetXrFunctionDelegate(xrGetInstanceProcAddr, xrInstance, "xrEnumerateSwapchainFormats", out XrEnumerateSwapchainFormats); + ret &= OpenXRHelper.GetXrFunctionDelegate(xrGetInstanceProcAddr, xrInstance, "xrEnumerateSwapchainImages", out XrEnumerateSwapchainImages); + ret &= OpenXRHelper.GetXrFunctionDelegate(xrGetInstanceProcAddr, xrInstance, "xrWaitSwapchainImage", out XrWaitSwapchainImage); + ret &= OpenXRHelper.GetXrFunctionDelegate(xrGetInstanceProcAddr, xrInstance, "xrAcquireSwapchainImage", out XrAcquireSwapchainImage); + ret &= OpenXRHelper.GetXrFunctionDelegate(xrGetInstanceProcAddr, xrInstance, "xrReleaseSwapchainImage", out XrReleaseSwapchainImage); if (!ret) throw new Exception("CommonWrapper: Get function pointers failed."); - isInited = ret; + IsInited = ret; return ret; } @@ -70,21 +64,20 @@ namespace VIVE.OpenXR.Feature /// public void OnInstanceDestroy() { - isInited = false; - XrGetInstanceProcAddr = null; + IsInited = false; XrGetSystemProperties = null; Debug.Log("CommonWrapper: OnInstanceDestroy()"); } public XrResult GetInstanceProcAddr(XrInstance instance, string name, out IntPtr function) { - if (isInited == false || XrGetInstanceProcAddr == null) + if (IsInited == false || xrGetInstanceProcAddr == null) { function = IntPtr.Zero; return XrResult.XR_ERROR_HANDLE_INVALID; } - return XrGetInstanceProcAddr(instance, name, out function); + return xrGetInstanceProcAddr(instance, name, out function); } /// @@ -97,7 +90,7 @@ namespace VIVE.OpenXR.Feature /// public XrResult GetSystemProperties(XrInstance instance, XrSystemId systemId, ref XrSystemProperties properties) { - if (isInited == false || XrGetSystemProperties == null) + if (IsInited == false || XrGetSystemProperties == null) { return XrResult.XR_ERROR_HANDLE_INVALID; } @@ -136,5 +129,115 @@ namespace VIVE.OpenXR.Feature Marshal.FreeHGlobal(systemProperties.next); return ret; } + + public XrResult CreateSwapchain(XrSession session, ref XrSwapchainCreateInfo createInfo, out XrSwapchain swapchain) + { + if (IsInited == false || XrCreateSwapchain == null) + { + swapchain = default; + return XrResult.XR_ERROR_HANDLE_INVALID; + } + + return XrCreateSwapchain(session, ref createInfo, out swapchain); + } + + public XrResult DestroySwapchain(XrSwapchain swapchain) + { + if (IsInited == false || XrDestroySwapchain == null) + { + return XrResult.XR_ERROR_HANDLE_INVALID; + } + + return XrDestroySwapchain(swapchain); + } + + public XrResult EnumerateSwapchainFormats(XrSession session, uint formatCapacityInput, ref uint formatCountOutput, ref long[] formats) + { + if (IsInited == false || XrEnumerateSwapchainFormats == null) + { + formatCountOutput = 0; + return XrResult.XR_ERROR_HANDLE_INVALID; + } + + if (formatCapacityInput != 0 && (formats == null || formats.Length < formatCapacityInput)) + return XrResult.XR_ERROR_SIZE_INSUFFICIENT; + + if (formatCapacityInput == 0) + { + Debug.Log("CommonWrapper: EnumerateSwapchainFormats(ci=" + formatCapacityInput + ")"); + return XrEnumerateSwapchainFormats(session, 0, ref formatCountOutput, IntPtr.Zero); + } + else + { + Debug.Log("CommonWrapper: EnumerateSwapchainFormats(ci=" + formatCapacityInput + ", formats=long[" + formats.Length + "])"); + IntPtr formatsPtr = MemoryTools.MakeRawMemory(formats); + var ret = XrEnumerateSwapchainFormats(session, formatCapacityInput, ref formatCountOutput, formatsPtr); + if (ret == XrResult.XR_SUCCESS) + MemoryTools.CopyFromRawMemory(formats, formatsPtr, (int)formatCountOutput); + MemoryTools.ReleaseRawMemory(formatsPtr); + return ret; + } + } + + public XrResult EnumerateSwapchainImages(XrSwapchain swapchain, uint imageCapacityInput, ref uint imageCountOutput, IntPtr imagesPtr) + { + if (IsInited == false || XrEnumerateSwapchainImages == null) + { + imageCountOutput = 0; + return XrResult.XR_ERROR_HANDLE_INVALID; + } + + return XrEnumerateSwapchainImages(swapchain, imageCapacityInput, ref imageCountOutput, imagesPtr); + } + + [DllImport("viveopenxr", EntryPoint = "CwAcquireSwapchainImage")] + public static extern XrResult CwAcquireSwapchainImage(XrSwapchain swapchain, ref XrSwapchainImageAcquireInfo acquireInfo, out uint index); + + public XrResult AcquireSwapchainImage(XrSwapchain swapchain, ref XrSwapchainImageAcquireInfo acquireInfo, out uint index) + { + if (IsInited == false || XrAcquireSwapchainImage == null) + { + index = 0; + return XrResult.XR_ERROR_HANDLE_INVALID; + } + + Profiler.BeginSample("ASW: xrAcqScImg"); + var res = XrAcquireSwapchainImage(swapchain, ref acquireInfo, out index); + Profiler.EndSample(); + return res; + } + + [DllImport("viveopenxr", EntryPoint = "CwWaitSwapchainImage")] + public static extern XrResult CwWaitSwapchainImage(XrSwapchain swapchain, ref XrSwapchainImageWaitInfo waitInfo); + + public XrResult WaitSwapchainImage(XrSwapchain swapchain, ref XrSwapchainImageWaitInfo waitInfo) + { + if (IsInited == false || XrWaitSwapchainImage == null) + { + return XrResult.XR_ERROR_HANDLE_INVALID; + } + + Profiler.BeginSample("ASW: xrWaitScImg"); + var res = XrWaitSwapchainImage(swapchain, ref waitInfo); + Profiler.EndSample(); + return res; + } + + [DllImport("viveopenxr", EntryPoint = "CwReleaseSwapchainImage")] + public static extern XrResult CwReleaseSwapchainImage(XrSwapchain swapchain, ref XrSwapchainImageReleaseInfo releaseInfo); + + public XrResult ReleaseSwapchainImage(XrSwapchain swapchain, ref XrSwapchainImageReleaseInfo releaseInfo) + { + if (IsInited == false || XrReleaseSwapchainImage == null) + { + return XrResult.XR_ERROR_HANDLE_INVALID; + } + + // Add Profiler + Profiler.BeginSample("ASW: xrRelScImg"); + var res = XrReleaseSwapchainImage(swapchain, ref releaseInfo); + Profiler.EndSample(); + return res; + } } } diff --git a/com.htc.upm.vive.openxr/Runtime/Common/ViveFeatureFutureWrapper.cs b/com.htc.upm.vive.openxr/Runtime/Common/ViveFeatureFutureWrapper.cs new file mode 100644 index 0000000..c433453 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Common/ViveFeatureFutureWrapper.cs @@ -0,0 +1,207 @@ +// Copyright HTC Corporation All Rights Reserved. +using System; +using UnityEngine; +using UnityEngine.XR.OpenXR; + +namespace VIVE.OpenXR.Feature +{ + using XrFutureEXT = System.IntPtr; + + /// + /// To use this wrapper, + /// 1. Add the "XR_EXT_Future" extension to the instance's enabled extensions list. + /// 2. Call FutureWrapper.Instance.OnInstanceCreate() in your feature's OnInstanceCreate(). + /// 3. Call FutureWrapper.Instance.OnInstanceDestroy() in your feature's OnInstanceDestroy(). + /// + /// function helps make async Task. + /// + public class FutureWrapper : ViveFeatureWrapperBase, IViveFeatureWrapper + { + public enum XrFutureStateEXT + { + None = 0, // Not defined in extension. A default value. + Pending = 1, + Ready = 2, + MAX = 0x7FFFFFFF + } + + public struct XrFuturePollInfoEXT { + public XrStructureType type; // XR_TYPE_FUTURE_POLL_INFO_EXT + public IntPtr next; + public XrFutureEXT future; + } + + public struct XrFuturePollResultEXT { + public XrStructureType type; // XR_TYPE_FUTURE_POLL_RESULT_EXT + public IntPtr next; + public XrFutureStateEXT state; + } + + public struct XrFutureCancelInfoEXT + { + public XrStructureType type; // XR_TYPE_FUTURE_CANCEL_INFO_EXT + public IntPtr next; + public XrFutureEXT future; + } + + public struct XrFutureCompletionBaseHeaderEXT + { + public XrStructureType type; // XR_TYPE_FUTURE_COMPLETION_EXT + public IntPtr next; + public XrResult futureResult; + } + + public struct XrFutureCompletionEXT + { + public XrStructureType type; // XR_TYPE_FUTURE_COMPLETION_EXT + public IntPtr next; + public XrResult futureResult; + } + + public delegate XrResult XrPollFutureEXTDelegate(XrInstance instance, ref XrFuturePollInfoEXT pollInfo, out XrFuturePollResultEXT pollResult); + public delegate XrResult XrCancelFutureEXTDelegate(XrInstance instance, ref XrFutureCancelInfoEXT cancelInfo); + + XrPollFutureEXTDelegate XrPollFutureEXT; + XrCancelFutureEXTDelegate XrCancelFutureEXT; + + XrInstance xrInstance; + + /// + /// Features should call FutureWrapper.Instance.OnInstanceCreate() in their OnInstanceCreate(). + /// + /// + /// + /// + /// + public bool OnInstanceCreate(XrInstance xrInstance, IntPtr xrGetInstanceProcAddrPtr) + { + if (IsInited) return true; + + if (xrInstance == null) + throw new Exception("FutureWrapper: xrInstance is null"); + this.xrInstance = xrInstance; + + if (xrGetInstanceProcAddrPtr == null) + throw new Exception("FutureWrapper: xrGetInstanceProcAddr is null"); + SetGetInstanceProcAddrPtr(xrGetInstanceProcAddrPtr); + + Debug.Log("FutureWrapper: OnInstanceCreate()"); + + bool hasFuture = OpenXRRuntime.IsExtensionEnabled("XR_EXT_future"); + if (!hasFuture) + { + Debug.LogError("FutureWrapper: XR_EXT_future is not enabled. Check your feature's kOpenxrExtensionString."); + return false; + } + + bool ret = true; + IntPtr funcPtr = IntPtr.Zero; + + ret &= OpenXRHelper.GetXrFunctionDelegate(xrGetInstanceProcAddr, xrInstance, "xrPollFutureEXT", out XrPollFutureEXT); + ret &= OpenXRHelper.GetXrFunctionDelegate(xrGetInstanceProcAddr, xrInstance, "xrCancelFutureEXT", out XrCancelFutureEXT); + + if (!ret) + { + Debug.LogError("FutureWrapper: Failed to get function pointer."); + return false; + } + + IsInited = ret; + return ret; + } + + public void OnInstanceDestroy() + { + Debug.Log("FutureWrapper: OnInstanceDestroy()"); + IsInited = false; + XrPollFutureEXT = null; + XrCancelFutureEXT = null; + xrInstance = 0; + } + + /// + /// Used to get the state of a future. If Ready, Call complete functions to get the result. + /// + /// + /// + /// + /// + public XrResult PollFuture(ref XrFuturePollInfoEXT pollInfo, out XrFuturePollResultEXT pollResult) + { + pollResult= new XrFuturePollResultEXT() + { + type = XrStructureType.XR_TYPE_FUTURE_POLL_RESULT_EXT, + next = IntPtr.Zero, + state = XrFutureStateEXT.None + }; + if (!IsInited) + return XrResult.XR_ERROR_HANDLE_INVALID; + + return XrPollFutureEXT(xrInstance, ref pollInfo, out pollResult); + } + + /// + /// Used to get the state of a future. If Ready, Call complete functions to get the result. + /// + /// + /// + /// + /// + public XrResult PollFuture(XrFutureEXT future, out XrFuturePollResultEXT pollResult) + { + pollResult = new XrFuturePollResultEXT() + { + type = XrStructureType.XR_TYPE_FUTURE_POLL_RESULT_EXT, + next = IntPtr.Zero, + state = XrFutureStateEXT.None + }; + if (!IsInited) + return XrResult.XR_ERROR_HANDLE_INVALID; + + XrFuturePollInfoEXT pollInfo = new XrFuturePollInfoEXT() + { + type = XrStructureType.XR_TYPE_FUTURE_POLL_INFO_EXT, + next = IntPtr.Zero, + future = future + }; + + return XrPollFutureEXT(xrInstance, ref pollInfo, out pollResult); + } + + /// + /// This function cancels the future and signals that the async operation is not required. + /// After a future has been cancelled any functions using this future must return XR_ERROR_FUTURE_INVALID_EXT. + /// + /// + /// + /// + public XrResult CancelFuture(ref XrFutureCancelInfoEXT cancelInfo) + { + if (!IsInited) + return XrResult.XR_ERROR_HANDLE_INVALID; + + return XrCancelFutureEXT(xrInstance, ref cancelInfo); + } + + /// + /// + /// + /// + /// + /// + public XrResult CancelFuture(XrFutureEXT future) + { + if (!IsInited) + return XrResult.XR_ERROR_HANDLE_INVALID; + + XrFutureCancelInfoEXT cancelInfo = new XrFutureCancelInfoEXT() + { + type = XrStructureType.XR_TYPE_FUTURE_CANCEL_INFO_EXT, + next = IntPtr.Zero, + future = future + }; + + return XrCancelFutureEXT(xrInstance, ref cancelInfo); + } + } +} diff --git a/com.htc.upm.vive.openxr/Runtime/Common/ViveFeatureFutureWrapper.cs.meta b/com.htc.upm.vive.openxr/Runtime/Common/ViveFeatureFutureWrapper.cs.meta new file mode 100644 index 0000000..619837b --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Common/ViveFeatureFutureWrapper.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e8522c7af0a4127409a8800e1ddd5985 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Common/ViveFeatureSpaceWrapper.cs b/com.htc.upm.vive.openxr/Runtime/Common/ViveFeatureSpaceWrapper.cs index 6a61028..845325e 100644 --- a/com.htc.upm.vive.openxr/Runtime/Common/ViveFeatureSpaceWrapper.cs +++ b/com.htc.upm.vive.openxr/Runtime/Common/ViveFeatureSpaceWrapper.cs @@ -1,10 +1,5 @@ // Copyright HTC Corporation All Rights Reserved. -// Remove FAKE_DATA if editor or windows is supported. -#if UNITY_EDITOR -#define FAKE_DATA -#endif - using System; using UnityEngine; @@ -15,21 +10,8 @@ namespace VIVE.OpenXR.Feature /// To use this wrapper, you need to call CommonWrapper.Instance.OnInstanceCreate() in your feature's OnInstanceCreate(), /// and call CommonWrapper.Instance.OnInstanceDestroy() in your feature's OnInstanceDestroy(). /// - public class SpaceWrapper + public class SpaceWrapper : ViveFeatureWrapperBase, IViveFeatureWrapper { - static SpaceWrapper instance = null; - public static SpaceWrapper Instance - { - get - { - if (instance == null) - instance = new SpaceWrapper(); - return instance; - } - } - - bool isInited = false; - delegate XrResult DelegateXrLocateSpace(XrSpace space, XrSpace baseSpace, XrTime time, ref XrSpaceLocation location); delegate XrResult DelegateXrDestroySpace(XrSpace space); @@ -44,31 +26,30 @@ namespace VIVE.OpenXR.Feature /// /// /// - public bool OnInstanceCreate(XrInstance xrInstance, OpenXRHelper.xrGetInstanceProcAddrDelegate GetAddr) + public bool OnInstanceCreate(XrInstance xrInstance, IntPtr GetAddr) { - if (isInited) return true; + if (IsInited) return true; if (xrInstance == null) throw new Exception("ViveSpace: xrInstance is null"); - if (GetAddr == null) - throw new Exception("ViveSpace: xrGetInstanceProcAddr is null"); + SetGetInstanceProcAddrPtr(GetAddr); Debug.Log("ViveSpace: OnInstanceCreate()"); bool ret = true; IntPtr funcPtr = IntPtr.Zero; - ret &= OpenXRHelper.GetXrFunctionDelegate(GetAddr, xrInstance, "xrCreateReferenceSpace", out XrCreateReferenceSpace); - ret &= OpenXRHelper.GetXrFunctionDelegate(GetAddr, xrInstance, "xrLocateSpace", out XrLocateSpace); - ret &= OpenXRHelper.GetXrFunctionDelegate(GetAddr, xrInstance, "xrDestroySpace", out XrDestroySpace); - isInited = ret; + ret &= OpenXRHelper.GetXrFunctionDelegate(xrGetInstanceProcAddr, xrInstance, "xrCreateReferenceSpace", out XrCreateReferenceSpace); + ret &= OpenXRHelper.GetXrFunctionDelegate(xrGetInstanceProcAddr, xrInstance, "xrLocateSpace", out XrLocateSpace); + ret &= OpenXRHelper.GetXrFunctionDelegate(xrGetInstanceProcAddr, xrInstance, "xrDestroySpace", out XrDestroySpace); + IsInited = ret; return ret; } public void OnInstanceDestroy() { - isInited = false; + IsInited = false; XrCreateReferenceSpace = null; XrLocateSpace = null; XrDestroySpace = null; @@ -77,8 +58,8 @@ namespace VIVE.OpenXR.Feature /// /// Create a reference space without create info. /// Example: - /// CreateReferenceSpace(session, XrReferenceSpaceType.XR_REFERENCE_SPACE_TYPE_LOCAL, XrPosef.identity, out space); - /// CreateReferenceSpace(session, XrReferenceSpaceType.XR_REFERENCE_SPACE_TYPE_STAGE, XrPosef.identity, out space); + /// CreateReferenceSpace(session, XrReferenceSpaceType.XR_REFERENCE_SPACE_TYPE_LOCAL, XrPosef.Identity, out space); + /// CreateReferenceSpace(session, XrReferenceSpaceType.XR_REFERENCE_SPACE_TYPE_STAGE, XrPosef.Identity, out space); /// /// /// @@ -87,8 +68,9 @@ namespace VIVE.OpenXR.Feature /// public XrResult CreateReferenceSpace(XrSession session, XrReferenceSpaceType referenceSpaceType, XrPosef pose, out XrSpace space) { - if (!isInited) - throw new Exception("ViveSpace: not initialized"); + space = 0; + if (!IsInited) + return XrResult.XR_ERROR_HANDLE_INVALID; var createInfo = new XrReferenceSpaceCreateInfo(); createInfo.type = XrStructureType.XR_TYPE_REFERENCE_SPACE_CREATE_INFO; @@ -107,24 +89,25 @@ namespace VIVE.OpenXR.Feature /// public XrResult CreateReferenceSpace(XrSession session, XrReferenceSpaceCreateInfo createInfo, out XrSpace space) { - if (!isInited) - throw new Exception("ViveSpace: not initialized"); + space = 0; + if (!IsInited) + return XrResult.XR_ERROR_HANDLE_INVALID; return XrCreateReferenceSpace(session, ref createInfo, out space); } public XrResult LocateSpace(XrSpace space, XrSpace baseSpace, XrTime time, ref XrSpaceLocation location) { - if (!isInited) - throw new Exception("ViveSpace: not initialized"); - Debug.Log($"LocateSpace(s={space}, bs={baseSpace}, t={time}"); + if (!IsInited) + return XrResult.XR_ERROR_HANDLE_INVALID; + //Debug.Log($"LocateSpace(s={space}, bs={baseSpace}, t={time}"); return XrLocateSpace(space, baseSpace, time, ref location); } public XrResult DestroySpace(XrSpace space) { - if (!isInited) - throw new Exception("ViveSpace: not initialized"); + if (!IsInited) + return XrResult.XR_ERROR_HANDLE_INVALID; Debug.Log($"DestroySpace({space})"); return XrDestroySpace(space); } @@ -157,19 +140,6 @@ namespace VIVE.OpenXR.Feature public bool GetRelatedPose(XrSpace baseSpace, XrTime time, out UnityEngine.Pose pose) { -#if FAKE_DATA - if (Application.isEditor) - { - // make a random Pose - //var pos = new Vector3(UnityEngine.Random.Range(-1f, 1f), UnityEngine.Random.Range(-1f, 1f), UnityEngine.Random.Range(-1f, 1f)); - //var rot = new Quaternion(UnityEngine.Random.Range(-1f, 1f), UnityEngine.Random.Range(-1f, 1f), UnityEngine.Random.Range(-1f, 1f), UnityEngine.Random.Range(-1f, 1f)); - var pos = Vector3.up; - var rot = Quaternion.identity; - rot.Normalize(); - pose = new Pose(pos, rot); - return true; - } -#endif // If the xrBaseSpace is changed, the pose will be updated. pose = default; XrSpaceLocation location = new XrSpaceLocation(); @@ -179,14 +149,14 @@ namespace VIVE.OpenXR.Feature if (ret != XrResult.XR_SUCCESS) { - Debug.Log("Space: LocateSpace ret=" + ret); + //Debug.Log("Space: LocateSpace ret=" + ret); return false; } - Debug.Log("Space: baseSpace=" + baseSpace + ", space=" + space + ", time=" + time + ", ret=" + ret); - Debug.Log("Space: location.locationFlags=" + location.locationFlags); - Debug.Log("Space: location.pose.position=" + location.pose.position.x + "," + location.pose.position.y + "," + location.pose.position.z); - Debug.Log("Space: location.pose.orientation=" + location.pose.orientation.x + "," + location.pose.orientation.y + "," + location.pose.orientation.z + "," + location.pose.orientation.w); + //Debug.Log("Space: baseSpace=" + baseSpace + ", space=" + space + ", time=" + time + ", ret=" + ret); + //Debug.Log("Space: location.locationFlags=" + location.locationFlags); + //Debug.Log("Space: location.pose.position=" + location.pose.position.x + "," + location.pose.position.y + "," + location.pose.position.z); + //Debug.Log("Space: location.pose.orientation=" + location.pose.orientation.x + "," + location.pose.orientation.y + "," + location.pose.orientation.z + "," + location.pose.orientation.w); if ((location.locationFlags & XrSpaceLocationFlags.XR_SPACE_LOCATION_POSITION_VALID_BIT) > 0 && (location.locationFlags & XrSpaceLocationFlags.XR_SPACE_LOCATION_ORIENTATION_VALID_BIT) > 0) { @@ -211,7 +181,7 @@ namespace VIVE.OpenXR.Feature // Managered resource } // Non managered resource - Debug.Log($"Space: DestroySpace({space})"); + //Debug.Log($"Space: DestroySpace({space})"); SpaceWrapper.Instance.DestroySpace(space); space = 0; disposed = true; diff --git a/com.htc.upm.vive.openxr/Runtime/Common/ViveInterceptors.cs b/com.htc.upm.vive.openxr/Runtime/Common/ViveInterceptors.cs index 1d165bb..cab9508 100644 --- a/com.htc.upm.vive.openxr/Runtime/Common/ViveInterceptors.cs +++ b/com.htc.upm.vive.openxr/Runtime/Common/ViveInterceptors.cs @@ -3,81 +3,180 @@ using System.Runtime.InteropServices; using System; using UnityEngine; using AOT; +using System.Collections.Generic; +using System.Text; namespace VIVE.OpenXR { - /// - /// This class is made for all features that need to intercept OpenXR API calls. - /// Some APIs will be called by Unity internally, and we need to intercept them in c# to get some information. - /// Append more interceptable functions for this class by adding a new partial class. - /// The partial class can help the delegate name be nice to read and search. - /// Please create per function in one partial class. - /// - /// For all features want to use this class, please call in your feature class. - /// For example: - /// protected override IntPtr HookGetInstanceProcAddr(IntPtr func) - /// { - /// return HtcInterceptors.Instance.HookGetInstanceProcAddr(func); - /// } - /// + /// + /// This class is made for all features that need to intercept OpenXR API calls. + /// Some APIs will be called by Unity internally, and we need to intercept them in c# to get some information. + /// Append more interceptable functions for this class by adding a new partial class. + /// The partial class can help the delegate name be nice to read and search. + /// Please create per function in one partial class. + /// + /// For all features want to use this class, please call in your feature class. + /// For example: + /// protected override IntPtr HookGetInstanceProcAddr(IntPtr func) + /// { + /// return ViveInterceptors.Instance.HookGetInstanceProcAddr(func); + /// } + /// partial class ViveInterceptors { - public const string TAG = "Interceptors"; - - public static ViveInterceptors instance = null; - public static ViveInterceptors Instance - { - get - { - if (instance == null) - instance = new ViveInterceptors(); - return instance; + public const string TAG = "VIVE.OpenXR.ViveInterceptors"; + static StringBuilder m_sb = null; + static StringBuilder sb { + get { + if (m_sb == null) { m_sb = new StringBuilder(); } + return m_sb; } } + static void DEBUG(StringBuilder msg) { Debug.LogFormat("{0} {1}", TAG, msg); } + static void ERROR(StringBuilder msg) { Debug.LogErrorFormat("{0} {1}", TAG, msg); } - public ViveInterceptors() - { - Debug.Log("HtcInterceptors"); - } + public static ViveInterceptors instance = null; + public static ViveInterceptors Instance + { + get + { + if (instance == null) + instance = new ViveInterceptors(); + return instance; + } + } - bool isInited = false; + public ViveInterceptors() + { + Debug.Log("ViveInterceptors"); + } - public delegate XrResult DelegateXrGetInstanceProcAddr(XrInstance instance, string name, out IntPtr function); - private static readonly DelegateXrGetInstanceProcAddr hookXrGetInstanceProcAddrHandle = new DelegateXrGetInstanceProcAddr(XrGetInstanceProcAddrInterceptor); - private static readonly IntPtr hookGetInstanceProcAddrHandlePtr = Marshal.GetFunctionPointerForDelegate(hookXrGetInstanceProcAddrHandle); - static DelegateXrGetInstanceProcAddr XrGetInstanceProcAddrOriginal = null; + public delegate XrResult DelegateXrGetInstanceProcAddr(XrInstance instance, string name, out IntPtr function); + private static readonly DelegateXrGetInstanceProcAddr hookXrGetInstanceProcAddrHandle = new DelegateXrGetInstanceProcAddr(XrGetInstanceProcAddrInterceptor); + private static readonly IntPtr hookGetInstanceProcAddrHandlePtr = Marshal.GetFunctionPointerForDelegate(hookXrGetInstanceProcAddrHandle); + static DelegateXrGetInstanceProcAddr XrGetInstanceProcAddrOriginal = null; - [MonoPInvokeCallback(typeof(DelegateXrGetInstanceProcAddr))] - private static XrResult XrGetInstanceProcAddrInterceptor(XrInstance instance, string name, out IntPtr function) - { - // Custom interceptors - if (name == "xrWaitFrame") - { - Debug.Log($"{TAG}: XrGetInstanceProcAddrInterceptor() {name} is intercepted."); - var ret = XrGetInstanceProcAddrOriginal(instance, name, out function); - if (ret == XrResult.XR_SUCCESS) - { - XrWaitFrameOriginal = Marshal.GetDelegateForFunctionPointer(function); - function = xrWaitFrameInterceptorPtr; - } - return ret; - } - return XrGetInstanceProcAddrOriginal(instance, name, out function); - } + [MonoPInvokeCallback(typeof(DelegateXrGetInstanceProcAddr))] + private static XrResult XrGetInstanceProcAddrInterceptor(XrInstance instance, string name, out IntPtr function) + { + // Used to check if the original function is already hooked. + if (instance == 0 && name == "ViveInterceptorHooked") + { + function = IntPtr.Zero; + return XrResult.XR_SUCCESS; + } + + // Custom interceptors + if (name == "xrWaitFrame" && requiredFunctions.Contains(name)) + { + Debug.Log($"{TAG}: XrGetInstanceProcAddrInterceptor() {name} is intercepted."); + var ret = XrGetInstanceProcAddrOriginal(instance, name, out function); + if (ret == XrResult.XR_SUCCESS) + { + XrWaitFrameOriginal = Marshal.GetDelegateForFunctionPointer(function); + function = xrWaitFrameInterceptorPtr; + } + return ret; + } + + if (name == "xrEndFrame" && requiredFunctions.Contains(name)) + { + Debug.Log($"{TAG}: XrGetInstanceProcAddrInterceptor() {name} is intercepted."); + var ret = XrGetInstanceProcAddrOriginal(instance, name, out function); + if (ret == XrResult.XR_SUCCESS) + { + XrEndFrameOriginal = Marshal.GetDelegateForFunctionPointer(function); + function = xrEndFrameInterceptorPtr; + } + return ret; + } + +#if PERFORMANCE_TEST + if (name == "xrLocateSpace" && requiredFunctions.Contains(name)) + { + Debug.Log($"{TAG}: XrGetInstanceProcAddrInterceptor() {name} is intercepted."); + var ret = XrGetInstanceProcAddrOriginal(instance, name, out function); + if (ret == XrResult.XR_SUCCESS) + { + XrLocateSpaceOriginal = Marshal.GetDelegateForFunctionPointer(function); + function = xrLocateSpaceInterceptorPtr; + } + return ret; + } +#endif + if (name == "xrPollEvent" && requiredFunctions.Contains(name)) + { + Debug.Log($"{TAG}: XrGetInstanceProcAddrInterceptor() {name} is intercepted."); + var ret = XrGetInstanceProcAddrOriginal(instance, name, out function); + if (ret == XrResult.XR_SUCCESS) + { + xrPollEventOrigin = Marshal.GetDelegateForFunctionPointer < xrPollEventDelegate > (function); + function = xrPollEventPtr; + } + return ret; + } + if (name == "xrBeginSession" && requiredFunctions.Contains(name)) + { + Debug.Log($"{TAG}: XrGetInstanceProcAddrInterceptor() {name} is intercepted."); + var ret = XrGetInstanceProcAddrOriginal(instance, name, out function); + if (ret == XrResult.XR_SUCCESS) + { + xrBeginSessionOrigin = Marshal.GetDelegateForFunctionPointer(function); + function = xrBeginSessionPtr; + } + return ret; + } + + return XrGetInstanceProcAddrOriginal(instance, name, out function); + } + + public IntPtr HookGetInstanceProcAddr(IntPtr func) + { + Debug.Log($"{TAG}: HookGetInstanceProcAddr"); + if (XrGetInstanceProcAddrOriginal == null) + { + Debug.Log($"{TAG}: registering our own xrGetInstanceProcAddr"); + XrGetInstanceProcAddrOriginal = Marshal.GetDelegateForFunctionPointer(func); + +#if UNITY_EDITOR + if (Application.isEditor) { + // This is a trick to check if the original function is already hooked by this class. Sometimes, the static XrGetInstanceProcAddrOriginal didn't work as expected. + Debug.Log($"{TAG}: Check if duplicate hooked by this script with instance=0 and \"ViveInterceptorHooked\" name. If following a loader error, ignore it."); + // E OpenXR-Loader: Error [SPEC | xrGetInstanceProcAddr | VUID-xrGetInstanceProcAddr-instance-parameter] : XR_NULL_HANDLE for instance but query for ViveInterceptorHooked requires a valid instance + + // Call XrGetInstanceProcAddrOriginal to check if the original function is already hooked by this class + if (XrGetInstanceProcAddrOriginal(0, "ViveInterceptorHooked", out IntPtr function) == XrResult.XR_SUCCESS) + { + // If it is called successfully, it means the original function is already hooked. So we should return the original function. + Debug.Log($"{TAG}: Already hooked"); + return func; + } + } +#endif + + return hookGetInstanceProcAddrHandlePtr; + } + else + { + // Dont return hookGetInstanceProcAddrHandlePtr again. + // If this hook function is called by multiple features, it should only work at the first time. + // If called by other features, it should return the original function. + return func; + } + } + + static readonly List requiredFunctions = new List(); + + /// + /// Call before to add required functions."/> + /// + /// + public void AddRequiredFunction(string name) + { + if (requiredFunctions.Contains(name)) return; + Debug.Log($"{TAG}: AddRequiredFunction({name})"); + requiredFunctions.Add(name); + } + } +} - public IntPtr HookGetInstanceProcAddr(IntPtr func) - { - Debug.Log($"{TAG}: registering our own xrGetInstanceProcAddr"); - if (XrGetInstanceProcAddrOriginal == null) - { - XrGetInstanceProcAddrOriginal = Marshal.GetDelegateForFunctionPointer(func); - isInited = true; - return hookGetInstanceProcAddrHandlePtr; - } - else - { - return func; - } - } - } -} \ No newline at end of file diff --git a/com.htc.upm.vive.openxr/Runtime/Common/ViveInterceptorsBeginSession.cs b/com.htc.upm.vive.openxr/Runtime/Common/ViveInterceptorsBeginSession.cs new file mode 100644 index 0000000..a19cf48 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Common/ViveInterceptorsBeginSession.cs @@ -0,0 +1,85 @@ +// Copyright HTC Corporation All Rights Reserved. + +#define DEBUG + +using AOT; +using System; +using System.Runtime.InteropServices; +using UnityEngine.Profiling; +using VIVE.OpenXR.FrameSynchronization; + +namespace VIVE.OpenXR +{ + partial class ViveInterceptors + { + #region xrBeginSession + public delegate XrResult xrBeginSessionDelegate(XrSession session, ref XrSessionBeginInfo beginInfo); + private static xrBeginSessionDelegate xrBeginSessionOrigin = null; + + [MonoPInvokeCallback(typeof(xrBeginSessionDelegate))] + private static XrResult xrBeginSessionInterceptor(XrSession session, ref XrSessionBeginInfo beginInfo) + { + Profiler.BeginSample("ViveInterceptors:BeginSession"); + XrResult result = XrResult.XR_ERROR_FUNCTION_UNSUPPORTED; + + if (xrBeginSessionOrigin != null) + { + if (m_EnableFrameSynchronization) + { + frameSynchronizationSessionBeginInfo.mode = m_FrameSynchronizationMode; + frameSynchronizationSessionBeginInfo.next = beginInfo.next; + beginInfo.next = Marshal.AllocHGlobal(Marshal.SizeOf(frameSynchronizationSessionBeginInfo)); + + long offset = 0; + if (IntPtr.Size == 4) + offset = beginInfo.next.ToInt32(); + else + offset = beginInfo.next.ToInt64(); + + IntPtr frame_synchronization_session_begin_info_ptr = new IntPtr(offset); + Marshal.StructureToPtr(frameSynchronizationSessionBeginInfo, frame_synchronization_session_begin_info_ptr, false); + +#if DEBUG + if (IntPtr.Size == 4) + offset = beginInfo.next.ToInt32(); + else + offset = beginInfo.next.ToInt64(); + + IntPtr fs_begin_info_ptr = new IntPtr(offset); + XrFrameSynchronizationSessionBeginInfoHTC fsBeginInfo = (XrFrameSynchronizationSessionBeginInfoHTC)Marshal.PtrToStructure(fs_begin_info_ptr, typeof(XrFrameSynchronizationSessionBeginInfoHTC)); + + sb.Clear().Append("xrBeginSessionInterceptor() beginInfo.next = (").Append(fsBeginInfo.type).Append(", ").Append(fsBeginInfo.mode).Append(")"); DEBUG(sb); +#endif + } + + result = xrBeginSessionOrigin(session, ref beginInfo); + } + else + { + sb.Clear().Append("xrBeginSessionInterceptor() Not assign xrBeginSession!"); ERROR(sb); + } + Profiler.EndSample(); + + return result; + } + + private static readonly xrBeginSessionDelegate xrBeginSession = new xrBeginSessionDelegate(xrBeginSessionInterceptor); + private static readonly IntPtr xrBeginSessionPtr = Marshal.GetFunctionPointerForDelegate(xrBeginSession); + #endregion + + private static XrFrameSynchronizationSessionBeginInfoHTC frameSynchronizationSessionBeginInfo = XrFrameSynchronizationSessionBeginInfoHTC.identity; + private static bool m_EnableFrameSynchronization = false; + private static XrFrameSynchronizationModeHTC m_FrameSynchronizationMode = XrFrameSynchronizationModeHTC.XR_FRAME_SYNCHRONIZATION_MODE_STABILIZED_HTC; + /// + /// Activate or deactivate the Frame Synchronization feature. + /// + /// True for activate + /// The used for Frame Synchronization. + public void ActivateFrameSynchronization(bool active, XrFrameSynchronizationModeHTC mode) + { + m_EnableFrameSynchronization = active; + m_FrameSynchronizationMode = mode; + sb.Clear().Append("ActivateFrameSynchronization() ").Append(active ? "enable " : "disable ").Append(mode); DEBUG(sb); + } + } +} \ No newline at end of file diff --git a/com.htc.upm.vive.openxr/Runtime/Common/ViveInterceptorsBeginSession.cs.meta b/com.htc.upm.vive.openxr/Runtime/Common/ViveInterceptorsBeginSession.cs.meta new file mode 100644 index 0000000..247542a --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Common/ViveInterceptorsBeginSession.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8c222b96d7eb4ca4bb6390e07b1967bb +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Common/ViveInterceptorsPollEvent.cs b/com.htc.upm.vive.openxr/Runtime/Common/ViveInterceptorsPollEvent.cs new file mode 100644 index 0000000..0489911 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Common/ViveInterceptorsPollEvent.cs @@ -0,0 +1,129 @@ +// Copyright HTC Corporation All Rights Reserved. + +using AOT; +using System; +using System.Runtime.InteropServices; +using UnityEngine.Profiling; +using VIVE.OpenXR.DisplayRefreshRate; +using VIVE.OpenXR.Passthrough; +using VIVE.OpenXR.UserPresence; + +namespace VIVE.OpenXR +{ + partial class ViveInterceptors + { + #region xrPollEvent + public delegate XrResult xrPollEventDelegate(XrInstance instance, ref XrEventDataBuffer eventData); + private static xrPollEventDelegate xrPollEventOrigin = null; + + [MonoPInvokeCallback(typeof(xrPollEventDelegate))] + private static XrResult xrPollEventInterceptor(XrInstance instance, ref XrEventDataBuffer eventData) + { + Profiler.BeginSample("ViveInterceptors:WaitFrame"); + XrResult result = XrResult.XR_SUCCESS; + + if (xrPollEventOrigin != null) + { + result = xrPollEventOrigin(instance, ref eventData); + + if (result == XrResult.XR_SUCCESS) + { + sb.Clear().Append("xrPollEventInterceptor() xrPollEvent ").Append(eventData.type); DEBUG(sb); + switch(eventData.type) + { + case XrStructureType.XR_TYPE_EVENT_DATA_PASSTHROUGH_CONFIGURATION_IMAGE_RATE_CHANGED_HTC: + if (XrEventDataPassthroughConfigurationImageRateChangedHTC.Get(eventData, out XrEventDataPassthroughConfigurationImageRateChangedHTC eventDataPassthroughConfigurationImageRate)) + { + fromImageRate = eventDataPassthroughConfigurationImageRate.fromImageRate; + toImageRate = eventDataPassthroughConfigurationImageRate.toImageRate; + sb.Clear().Append("xrPollEventInterceptor() XR_TYPE_EVENT_DATA_PASSTHROUGH_CONFIGURATION_IMAGE_RATE_CHANGED_HTC") + .Append(", fromImageRate.srcImageRate: ").Append(fromImageRate.srcImageRate) + .Append(", fromImageRatesrc.dstImageRate: ").Append(fromImageRate.dstImageRate) + .Append(", toImageRate.srcImageRate: ").Append(toImageRate.srcImageRate) + .Append(", toImageRate.dstImageRate: ").Append(toImageRate.dstImageRate); + DEBUG(sb); + VivePassthroughImageRateChanged.Send(fromImageRate.srcImageRate, fromImageRate.dstImageRate, toImageRate.srcImageRate, toImageRate.dstImageRate); + } + break; + case XrStructureType.XR_TYPE_EVENT_DATA_PASSTHROUGH_CONFIGURATION_IMAGE_QUALITY_CHANGED_HTC: + if (XrEventDataPassthroughConfigurationImageQualityChangedHTC.Get(eventData, out XrEventDataPassthroughConfigurationImageQualityChangedHTC eventDataPassthroughConfigurationImageQuality)) + { + fromImageQuality = eventDataPassthroughConfigurationImageQuality.fromImageQuality; + toImageQuality = eventDataPassthroughConfigurationImageQuality.toImageQuality; + sb.Clear().Append("xrPollEventInterceptor() XR_TYPE_EVENT_DATA_PASSTHROUGH_CONFIGURATION_IMAGE_QUALITY_CHANGED_HTC") + .Append(", fromImageQuality: ").Append(fromImageQuality.scale) + .Append(", toImageQuality: ").Append(toImageQuality.scale); + DEBUG(sb); + VivePassthroughImageQualityChanged.Send(fromImageQuality.scale, toImageQuality.scale); + } + break; + case XrStructureType.XR_TYPE_EVENT_DATA_DISPLAY_REFRESH_RATE_CHANGED_FB: + if(XrEventDataDisplayRefreshRateChangedFB.Get(eventData, out XrEventDataDisplayRefreshRateChangedFB eventDataDisplayRefreshRate)) + { + fromDisplayRefreshRate = eventDataDisplayRefreshRate.fromDisplayRefreshRate; + toDisplayRefreshRate = eventDataDisplayRefreshRate.toDisplayRefreshRate; + sb.Clear().Append("xrPollEventInterceptor() XR_TYPE_EVENT_DATA_DISPLAY_REFRESH_RATE_CHANGED_FB") + .Append(", fromDisplayRefreshRate: ").Append(fromDisplayRefreshRate) + .Append(", toDisplayRefreshRate: ").Append(toDisplayRefreshRate); + DEBUG(sb); + ViveDisplayRefreshRateChanged.Send(fromDisplayRefreshRate, toDisplayRefreshRate); + } + break; + case XrStructureType.XR_TYPE_EVENT_DATA_SESSION_STATE_CHANGED: + if (XrEventDataSessionStateChanged.Get(eventData, out XrEventDataSessionStateChanged eventDataSession)) + { + switch(eventDataSession.state) + { + case XrSessionState.XR_SESSION_STATE_READY: + isUserPresent = true; + break; + case XrSessionState.XR_SESSION_STATE_STOPPING: + isUserPresent = false; + break; + default: + break; + } + sb.Clear().Append("xrPollEventInterceptor() XR_TYPE_EVENT_DATA_SESSION_STATE_CHANGED") + .Append(", session: ").Append(eventDataSession.session) + .Append(", state: ").Append(eventDataSession.state) + .Append(", isUserPresent: ").Append(isUserPresent); + DEBUG(sb); + } + break; + case XrStructureType.XR_TYPE_EVENT_DATA_USER_PRESENCE_CHANGED_EXT: + if (XrEventDataUserPresenceChangedEXT.Get(eventData, out XrEventDataUserPresenceChangedEXT eventDataUserPresence)) + { + isUserPresent = eventDataUserPresence.isUserPresent; + sb.Clear().Append("xrPollEventInterceptor() XR_TYPE_EVENT_DATA_USER_PRESENCE_CHANGED_EXT") + .Append(", session: ").Append(eventDataUserPresence.session) + .Append(", isUserPresent: ").Append(isUserPresent); + DEBUG(sb); + } + break; + default: + break; + } + } + + //sb.Clear().Append("xrPollEventInterceptor() xrPollEvent result: ").Append(result).Append(", isUserPresent: ").Append(isUserPresent); DEBUG(sb); + } + Profiler.EndSample(); + + return result; + } + + private static readonly xrPollEventDelegate xrPollEvent = new xrPollEventDelegate(xrPollEventInterceptor); + private static readonly IntPtr xrPollEventPtr = Marshal.GetFunctionPointerForDelegate(xrPollEvent); + #endregion + + private static bool isUserPresent = true; + public bool IsUserPresent() { return isUserPresent; } + + private static float fromDisplayRefreshRate, toDisplayRefreshRate; + public float FromDisplayRefreshRate() { return fromDisplayRefreshRate; } + public float ToDisplayRefreshRate() { return toDisplayRefreshRate; } + + private static XrPassthroughConfigurationImageRateHTC fromImageRate, toImageRate; + private static XrPassthroughConfigurationImageQualityHTC fromImageQuality, toImageQuality; + } +} diff --git a/com.htc.upm.vive.openxr/Runtime/Common/ViveInterceptorsPollEvent.cs.meta b/com.htc.upm.vive.openxr/Runtime/Common/ViveInterceptorsPollEvent.cs.meta new file mode 100644 index 0000000..681f51a --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Common/ViveInterceptorsPollEvent.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c2cc5716d3f563f49a47da6c1bd8ccbe +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Common/ViveInterceptorsSubmit.cs b/com.htc.upm.vive.openxr/Runtime/Common/ViveInterceptorsSubmit.cs new file mode 100644 index 0000000..b72353d --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Common/ViveInterceptorsSubmit.cs @@ -0,0 +1,89 @@ +// Copyright HTC Corporation All Rights Reserved. +using System.Runtime.InteropServices; +using System; +using AOT; +using UnityEngine.Profiling; + +namespace VIVE.OpenXR +{ + partial class ViveInterceptors + { + public struct XrCompositionLayerBaseHeader + { + public XrStructureType type; // This base structure itself has no associated XrStructureType value. + public System.IntPtr next; + public XrCompositionLayerFlags layerFlags; + public XrSpace space; + } + + public struct XrFrameEndInfo + { + public XrStructureType type; + public System.IntPtr next; + public XrTime displayTime; + public XrEnvironmentBlendMode environmentBlendMode; + public uint layerCount; + public IntPtr layers; // XrCompositionLayerBaseHeader IntPtr array + } + + public delegate XrResult DelegateXrEndFrame(XrSession session, ref XrFrameEndInfo frameEndInfo); + private static readonly DelegateXrEndFrame xrEndFrameInterceptorHandle = new DelegateXrEndFrame(XrEndFrameInterceptor); + private static readonly IntPtr xrEndFrameInterceptorPtr = Marshal.GetFunctionPointerForDelegate(xrEndFrameInterceptorHandle); + static DelegateXrEndFrame XrEndFrameOriginal = null; + + [MonoPInvokeCallback(typeof(DelegateXrEndFrame))] + private static XrResult XrEndFrameInterceptor(XrSession session, ref XrFrameEndInfo frameEndInfo) + { + // instance must not null + //if (instance == null) + // return XrEndFrameOriginal(session, ref frameEndInfo); + Profiler.BeginSample("VI:EndFrame"); + XrResult result = XrResult.XR_SUCCESS; + if (instance.BeforeOriginalEndFrame != null && + !instance.BeforeOriginalEndFrame(session, ref frameEndInfo, ref result)) + { + Profiler.EndSample(); + return result; + } + result = XrEndFrameOriginal(session, ref frameEndInfo); + instance.AfterOriginalEndFrame?.Invoke(session, ref frameEndInfo, ref result); + Profiler.EndSample(); + return result; + } + + /// + /// If you return false, the original function will not be called. + /// + /// + /// + /// + /// + public delegate bool DelegateXrEndFrameInterceptor(XrSession session, ref XrFrameEndInfo frameEndInfo, ref XrResult result); + + /// + /// Use this to intercept the original function. This will be called before the original function. + /// + public DelegateXrEndFrameInterceptor BeforeOriginalEndFrame; + + /// + /// Use this to intercept the original function. This will be called after the original function. + /// + public DelegateXrEndFrameInterceptor AfterOriginalEndFrame; + +#if PERFORMANCE_TEST + public delegate XrResult DelegateXrLocateSpace(XrSpace space, XrSpace baseSpace, XrTime time, ref XrSpaceLocation location); + private static readonly DelegateXrLocateSpace xrLocateSpaceInterceptorHandle = new DelegateXrLocateSpace(XrLocateSpaceInterceptor); + private static readonly IntPtr xrLocateSpaceInterceptorPtr = Marshal.GetFunctionPointerForDelegate(xrLocateSpaceInterceptorHandle); + static DelegateXrLocateSpace XrLocateSpaceOriginal = null; + + [MonoPInvokeCallback(typeof(DelegateXrLocateSpace))] + public static XrResult XrLocateSpaceInterceptor(XrSpace space, XrSpace baseSpace, XrTime time, ref XrSpaceLocation location) + { + Profiler.BeginSample("VI:LocateSpace"); + var ret = XrLocateSpaceOriginal(space, baseSpace, time, ref location); + Profiler.EndSample(); + return ret; + } +#endif + } +} \ No newline at end of file diff --git a/com.htc.upm.vive.openxr/Runtime/Common/ViveInterceptorsSubmit.cs.meta b/com.htc.upm.vive.openxr/Runtime/Common/ViveInterceptorsSubmit.cs.meta new file mode 100644 index 0000000..0bf5129 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Common/ViveInterceptorsSubmit.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6bf7cf55d82ac6343b4eda92d1197a66 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Common/ViveInterceptorsWaitFrame.cs b/com.htc.upm.vive.openxr/Runtime/Common/ViveInterceptorsWaitFrame.cs index 94d5cd2..2d49ea2 100644 --- a/com.htc.upm.vive.openxr/Runtime/Common/ViveInterceptorsWaitFrame.cs +++ b/com.htc.upm.vive.openxr/Runtime/Common/ViveInterceptorsWaitFrame.cs @@ -3,59 +3,106 @@ using System.Runtime.InteropServices; using System; using UnityEngine; using AOT; +using UnityEngine.Profiling; namespace VIVE.OpenXR { - partial class ViveInterceptors - { - #region XRWaitFrame - public struct XrFrameWaitInfo - { - public XrStructureType type; - public IntPtr next; - } + partial class ViveInterceptors + { + #region XRWaitFrame + public struct XrFrameWaitInfo + { + public XrStructureType type; + public IntPtr next; + } - public struct XrFrameState - { - public XrStructureType type; - public IntPtr next; - public XrTime predictedDisplayTime; - public XrDuration predictedDisplayPeriod; - public XrBool32 shouldRender; - } + public struct XrFrameState + { + public XrStructureType type; + public IntPtr next; + public XrTime predictedDisplayTime; + public XrDuration predictedDisplayPeriod; + public XrBool32 shouldRender; + } - public delegate XrResult DelegateXrWaitFrame(XrSession session, ref XrFrameWaitInfo frameWaitInfo, ref XrFrameState frameState); - private static readonly DelegateXrWaitFrame xrWaitFrameInterceptorHandle = new DelegateXrWaitFrame(XrWaitFrameInterceptor); - private static readonly IntPtr xrWaitFrameInterceptorPtr = Marshal.GetFunctionPointerForDelegate(xrWaitFrameInterceptorHandle); - static DelegateXrWaitFrame XrWaitFrameOriginal = null; + bool isWaitFrameIntercepted = false; - [MonoPInvokeCallback(typeof(DelegateXrWaitFrame))] - private static XrResult XrWaitFrameInterceptor(XrSession session, ref XrFrameWaitInfo frameWaitInfo, ref XrFrameState frameState) - { - var ret = XrWaitFrameOriginal(session, ref frameWaitInfo, ref frameState); - currentFrameState = frameState; - return ret; - } + public delegate XrResult DelegateXrWaitFrame(XrSession session, ref XrFrameWaitInfo frameWaitInfo, ref XrFrameState frameState); + private static readonly DelegateXrWaitFrame xrWaitFrameInterceptorHandle = new DelegateXrWaitFrame(XrWaitFrameInterceptor); + private static readonly IntPtr xrWaitFrameInterceptorPtr = Marshal.GetFunctionPointerForDelegate(xrWaitFrameInterceptorHandle); + static DelegateXrWaitFrame XrWaitFrameOriginal = null; - static XrFrameState currentFrameState = new XrFrameState() { predictedDisplayTime = 0 }; + [MonoPInvokeCallback(typeof(DelegateXrWaitFrame))] + private static XrResult XrWaitFrameInterceptor(XrSession session, ref XrFrameWaitInfo frameWaitInfo, ref XrFrameState frameState) + { + // instance must not null + //if (instance == null) + // return XrWaitFrameOriginal(session, ref frameWaitInfo, ref frameState); + Profiler.BeginSample("VI:WaitFrame"); + instance.isWaitFrameIntercepted = true; + XrResult result = XrResult.XR_SUCCESS; + if (instance.BeforeOriginalWaitFrame != null && + !instance.BeforeOriginalWaitFrame(session, ref frameWaitInfo, ref frameState, ref result)) + { + Profiler.EndSample(); + return result; + } + var ret = XrWaitFrameOriginal(session, ref frameWaitInfo, ref frameState); + instance.AfterOriginalWaitFrame?.Invoke(session, ref frameWaitInfo, ref frameState, ref result); + currentFrameState = frameState; + Profiler.EndSample(); + return result; + } - public XrFrameState GetCurrentFrameState() - { - if (!isInited) throw new Exception("ViveInterceptors is not inited"); + static XrFrameState currentFrameState = new XrFrameState() { predictedDisplayTime = 0 }; - return currentFrameState; - } + /// + /// Get the waitframe's result: XrFrameState. This result used in update is not matching the current frame. Use it after onBeforeRender. + /// + /// + /// + public XrFrameState GetCurrentFrameState() + { + if (!isWaitFrameIntercepted) throw new Exception("ViveInterceptors is not intercepted"); - public XrTime GetPredictTime() - { - if (!isInited) throw new Exception("ViveInterceptors is not inited"); + return currentFrameState; + } - Debug.Log($"{TAG}: XrWaitFrameInterceptor(predictedDisplayTime={currentFrameState.predictedDisplayTime}"); - if (currentFrameState.predictedDisplayTime == 0) - return new XrTime((long)(1000000L * (Time.unscaledTimeAsDouble + 0.011f))); - else - return currentFrameState.predictedDisplayTime; - } - #endregion XRWaitFrame - } -} \ No newline at end of file + /// + /// Must request xrWaitFrame before calling this function. This result used in update is not matching the current frame. Use it after onBeforeRender. + /// + /// + /// + public XrTime GetPredictTime() + { + if (!isWaitFrameIntercepted) throw new Exception("ViveInterceptors is not intercepted"); + + //Debug.Log($"{TAG}: XrWaitFrameInterceptor(predictedDisplayTime={currentFrameState.predictedDisplayTime}"); + if (currentFrameState.predictedDisplayTime == 0) + return new XrTime((long)(1000000L * (Time.unscaledTimeAsDouble + 0.011f))); + else + return currentFrameState.predictedDisplayTime; + } + + /// + /// Register WaitFrame event + /// + /// + /// + /// + /// + /// + public delegate bool DelegateXrWaitFrameInterceptor(XrSession session, ref XrFrameWaitInfo frameWaitInfo, ref XrFrameState frameState, ref XrResult result); + + /// + /// Use this to intercept the original function. This will be called before the original function. + /// + public DelegateXrWaitFrameInterceptor BeforeOriginalWaitFrame; + + /// + /// Use this to intercept the original function. This will be called after the original function. + /// + public DelegateXrWaitFrameInterceptor AfterOriginalWaitFrame; + #endregion XRWaitFrame + } +} diff --git a/com.htc.upm.vive.openxr/Runtime/Common/ViveRenderThreadTask.cs b/com.htc.upm.vive.openxr/Runtime/Common/ViveRenderThreadTask.cs new file mode 100644 index 0000000..4c85f8c --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Common/ViveRenderThreadTask.cs @@ -0,0 +1,329 @@ +using AOT; +using System; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.Rendering; + + +namespace VIVE.OpenXR.Common.RenderThread +{ + #region syncObject + public class Message + { + public bool isFree = true; + } + + /// + /// MessagePool class manages a pool of message objects for reuse. You can enter any kind of message object. + /// However when obtain, the message object will not able to cast to the type you want. + /// You should only use one kind of message. Not mix different kind of message. + /// + public class MessagePool + { + // pool member is used to store message objects in a list. + // Note that the size of this list will dynamically adjust as needed but will not automatically shrink. + private readonly List pool = new List(2) { }; + private int index = 0; + + public MessagePool() { } + + // Next method calculates the next index value for cycling through message objects in the pool. + private int Next(int value) + { + if (++value >= pool.Count) + value = 0; + return value; + } + + // Obtain method retrieves a message object from the pool. + // Ensure proper state setup for the message after retrieval and call Release() to the message after use. + public T Obtain() where T : Message, new() + { + int c = pool.Count; + int i = index; + for (int j = 0; j < c; i++, j++) + { + if (i >= c) + i = 0; + if (pool[i].isFree) + { + //Debug.LogError("Obtain idx=" + i); + index = i; + return (T)pool[i]; + } + } + index = Next(i); + var newItem = new T() + { + isFree = true + }; + pool.Insert(index, newItem); + Debug.Log("RT.MessagePool.Obtain() pool count=" + pool.Count); + return newItem; + } + + // Lock method marks a message as "in use" to prevent other code from reusing it. + // This is already called to the message obtained from the pool. + public static void Lock(Message msg) + { + msg.isFree = false; + } + + /// + /// Release method marks a message as "free" so that other code can reuse it. + /// You can use it in RenderThread. It will not trigger the GC event. + /// + /// + public static void Release(Message msg) + { + msg.isFree = true; + } + } + + /// + /// PreAllocatedQueue class is a message queue based on MessagePool for preallocating message objects. + /// Its main functionality is to add message objects to the queue and retrieve them from the queue. + /// Messages should be enqueued in GameThread and dequeued in RenderThread. + /// In render thread, dequeue will not trigger the GC event. Because the queue is preallocated. + /// The 'lock' expression is not used for list's size change. Because lock should be avoid used in RenderThread. + /// Set the queueSize as the double count of message you want to pass to render thread in one frame, and the + /// list will never change size during runtime. Therefore we don't need to use 'lock' to protect the list. + /// + public class PreAllocatedQueue : MessagePool + { + // list member is used to store preallocated message objects in a list. + // Note that the size of this list is set during initialization and does not dynamically adjust. + private List list = new List(); + private int queueBegin = 0; + private int queueEnd = 0; + + /// + /// The queueSize should be the double count of message you want to pass to render thread in one frame. + /// + /// + public PreAllocatedQueue(int queueSize = 2) : base() { + for (int i = 0; i < queueSize; i++) + { + list.Add(null); + } + } + + private int Next(int value) + { + if (++value >= list.Count) + value = 0; + return value; + } + + /// + /// Enqueue method adds a message object to the queue. + /// If the queue is full, the new message is added to the end of the list. + /// + /// This function is designed to use the message object obtained from the MessagePool. + /// Ensure only one type of message object is used in the queue. + /// + /// Enqueue will increase the queue size if the queue is full. This may trigger GC.Alloc. + /// This function should be used in GameThread. + /// + /// + public void Enqueue(Message msg) + { + Lock(msg); + queueEnd = Next(queueEnd); + + // If the queue is full, add the message to the end of the list. Should not let it happen. + // Use larger queue size to avoid this issue. + // If you see the error log here, you should increase the queue size in your design. + if (queueEnd == queueBegin) + { + // Should let Insert and queueBegin be atomic. No lock protection here. + list.Insert(queueEnd, msg); + queueBegin++; + Debug.LogError("RT.MessagePool.Enqueue() list count=" + list.Count); + } + else + { + list[queueEnd] = msg; + } + } + + /// + /// Dequeue method retrieves a message object from the queue. + /// This method returns the first message object in the queue and removes it from the queue. + /// This function will not trigger the GC event. Free to use in RenderThread. + /// After use the Message, call Release() to the message. + /// + /// + public Message Dequeue() + { + // No lock protection here. If list is not change size, it is safe. + // However if list changed size, it is safe in most case. + queueBegin = Next(queueBegin); + return list[queueBegin]; + } + } + + /// + /// RenderThreadTask class is used to execute specified tasks on the rendering thread. + /// You don't need to develop a native function to run your task on the rendering thread. + /// And you don't need to design how to pass data to render thread. + /// This class can be run in Unity Editor since Unity 2021. Test your code in Unity Editor can save your time. + /// + /// You should only create RenderThreadTask as static readonly. Do not create RenderThreadTask in dynamic. + /// + /// You should not run Unity.Engine code in RenderThread. It will cause the Unity.Engine to hang. + /// Any exception will not be caught and shown in RenderThread. + /// You should print your error message out to clearify your issue. + /// + /// The 'lock' expression is not used here. Because I believe the lock is not necessary in this case. + /// And the lock will cause the performance issue. All the design here help you not to use 'lock'. + /// + public class RenderThreadTask + { + private static IntPtr GetFunctionPointerForDelegate(Delegate del) + { + return System.Runtime.InteropServices.Marshal.GetFunctionPointerForDelegate(del); + } + + public delegate void RenderEventDelegate(int e); + private static readonly RenderEventDelegate handle = new RenderEventDelegate(RunSyncObjectInRenderThread); + private static readonly IntPtr handlePtr = GetFunctionPointerForDelegate(handle); + + public delegate void Receiver(PreAllocatedQueue dataQueue); + + // CommandList is used to store all RenderThreadTask objects. + // Do not create RenderThreadTask object in dynamic. It will cause the CommandList to increase infinitly. + private static List CommandList = new List(); + + private PreAllocatedQueue queue; + public PreAllocatedQueue Queue { get { return queue; } } + + private readonly Receiver receiver; + private readonly int id; + + /// + /// Input the receiver as render thread callback. The receiver will be executed in render thread. + /// queueSize should be the double count of message you want to pass to render thread in one frame. + /// + /// The callback in render thread. + /// If issue this event once in a frame, set queueSize as 2. + /// + public RenderThreadTask(Receiver render, int queueSize = 2) + { + queue = new PreAllocatedQueue(queueSize); + receiver = render; + if (receiver == null) + throw new ArgumentNullException("receiver should not be null"); + + CommandList.Add(this); + id = CommandList.IndexOf(this); + } + + ~RenderThreadTask() + { + try { CommandList.RemoveAt(id); } finally { } + } + + void IssuePluginEvent(IntPtr callback, int eventID) + { + // Older version will hang after run script in render thread. + GL.IssuePluginEvent(callback, eventID); + return; + } + + void IssuePluginEvent(CommandBuffer cmdBuf, IntPtr callback, int eventID) + { + cmdBuf.IssuePluginEvent(callback, eventID); + return; + } + + /// + /// IssueEvent method submits this task's receiver, which is set in constructor, to be executed on the rendering thread. + /// + public void IssueEvent() + { + // Let the render thread run the RunSyncObjectInRenderThread(id) + IssuePluginEvent(handlePtr, id); + } + + public void IssueInCommandBuffer(CommandBuffer cmdBuf) + { + // Let the render thread run the RunSyncObjectInRenderThread(id) + IssuePluginEvent(cmdBuf, handlePtr, id); + } + + // Called by RunSyncObjectInRenderThread() + private void Receive() + { + receiver(queue); + } + + // RunSyncObjectInRenderThread method is a static method used to execute a specified task on the rendering thread. + // This method is invoked by Unity's rendering event mechanism and does not need to be called directly by developers. + [MonoPInvokeCallback(typeof(RenderEventDelegate))] + private static void RunSyncObjectInRenderThread(int id) + { + CommandList[id].Receive(); + } + } + #endregion + + #region sample + // Not to compile this sample into your application. Just for reference. You can run this sample in Unity Editor and it will work. +#if UNITY_EDITOR + public class ViveRenderThreadTaskSample : MonoBehaviour + { + // Create your own message class. + internal class SampleMessage : Message + { + public int dataPassedToRenderThread; + } + + // Use static readonly to create RenderThreadTask. Keep internal to avoid miss use by other developers. + internal static readonly RenderThreadTask sampleRenderThreadTask1 = new RenderThreadTask(SampleReceiver1); + // Different task use different RenderThreadTask and different recevier. + internal static readonly RenderThreadTask sampleRenderThreadTask2 = new RenderThreadTask(SampleReceiver2); + + private static void SampleReceiver1(PreAllocatedQueue dataQueue) + { + var msg = dataQueue.Dequeue() as SampleMessage; + // no need to check msg if it is null because your design should avoid it. + // Keep data before release. Use local variable to keep data and release msg early. Should not keep the msg instance itself. + var data = msg.dataPassedToRenderThread; + // Make sure release the msg if finished. Other wise the memory will keep increasing when Obtain. + MessagePool.Release(msg); + + Debug.Log("Task1, the data passed to render thread: " + data); + } + + private static void SampleReceiver2(PreAllocatedQueue dataQueue) + { + var msg = dataQueue.Dequeue() as SampleMessage; + var data = msg.dataPassedToRenderThread; + MessagePool.Release(msg); + Debug.Log("Task2, the data passed to render thread: " + data); + } + + // Send a message to the render thread every frame. + private void Update() + { + // Make sure only one kind of message object is used in the queue. + var msg = sampleRenderThreadTask1.Queue.Obtain(); + msg.dataPassedToRenderThread = 123; + sampleRenderThreadTask1.Queue.Enqueue(msg); + sampleRenderThreadTask1.IssueEvent(); + } + + // Send a message to render thread when something clicked. Make sure only one click in one frame because the queue size is only two. + public void OnClicked() + { + // Reuse the same message type is ok. + var msg = sampleRenderThreadTask2.Queue.Obtain(); + msg.dataPassedToRenderThread = 234; + sampleRenderThreadTask2.Queue.Enqueue(msg); + sampleRenderThreadTask2.IssueEvent(); + } + } +#endif + #endregion +} diff --git a/com.htc.upm.vive.openxr/Runtime/Common/ViveRenderThreadTask.cs.meta b/com.htc.upm.vive.openxr/Runtime/Common/ViveRenderThreadTask.cs.meta new file mode 100644 index 0000000..78d0267 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Common/ViveRenderThreadTask.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 251b4bedf6420fc4e84be778e501343f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/CompositionLayer/Scripts/CompositionLayer.cs b/com.htc.upm.vive.openxr/Runtime/CompositionLayer/Scripts/CompositionLayer.cs index bdfdf84..ce8dda3 100644 --- a/com.htc.upm.vive.openxr/Runtime/CompositionLayer/Scripts/CompositionLayer.cs +++ b/com.htc.upm.vive.openxr/Runtime/CompositionLayer/Scripts/CompositionLayer.cs @@ -99,6 +99,12 @@ namespace VIVE.OpenXR.CompositionLayer [SerializeField] public bool isExternalSurface = false; + [SerializeField] + public bool isCustomRects = false; + + [SerializeField] + public CustomRectsType customRects = CustomRectsType.TopDown; + [Tooltip("Width of external surface in pixels.")] [SerializeField] public uint externalSurfaceWidth = 1280; @@ -122,8 +128,12 @@ namespace VIVE.OpenXR.CompositionLayer [SerializeField] public bool isProtectedSurface = false; - [SerializeField] public Texture texture = null; + + private Texture m_TextureLeft => texture; + public Texture textureLeft { get { return m_TextureLeft; } } + + public Texture textureRight = null; [SerializeField] private uint renderPriority = 0; @@ -150,7 +160,7 @@ namespace VIVE.OpenXR.CompositionLayer private MeshRenderer generatedFallbackMeshRenderer = null; private MeshFilter generatedFallbackMeshFilter = null; - private LayerTextures layerTextures; + private LayerTextures[] layerTextures = new LayerTextures[] {null, null}; private Material texture2DBlitMaterial; private GameObject compositionLayerPlaceholderPrefabGO = null; @@ -165,10 +175,12 @@ namespace VIVE.OpenXR.CompositionLayer private float previousCylinderArcLength = 1f; private float previousCylinderRadius = 1f; private float previousAngleOfArc = 180f; - private Texture previousTexture = null; + private Texture previousTextureLeft = null; + private Texture previousTextureRight = null; private bool previousIsDynamicLayer = false; private int layerID; //For native + private int layerIDRight; //For native private bool isHeadLock = false; private bool InitStatus = false; private bool isInitializationComplete = false; @@ -232,10 +244,27 @@ namespace VIVE.OpenXR.CompositionLayer if (layerID != 0) { DEBUG("Init completed, ID: " + layerID); - layerTextures = new LayerTextures(imageCount); + layerTextures[0] = new LayerTextures(imageCount); InitStatus = true; } + if (textureRight != null && textureLeft != textureRight) { + layerIDRight = compositionLayerFeature.CompositionLayer_Init(externalSurfaceWidth, externalSurfaceHeight, graphicsAPI, isDynamicLayer, isProtectedSurface, out imageCount, true); + if (layerIDRight != 0) + { + DEBUG("Init completed, ID right: " + layerIDRight); + layerTextures[1] = new LayerTextures(imageCount); + } + } + else if (isCustomRects) { + layerIDRight = compositionLayerFeature.CompositionLayer_Init(externalSurfaceWidth, externalSurfaceHeight, graphicsAPI, isDynamicLayer, isProtectedSurface, out imageCount, true); + if (layerIDRight != 0) + { + DEBUG("Init completed, ID right: " + layerIDRight); + layerTextures[1] = new LayerTextures(imageCount); + } + } + taskQueue.Release(task); } }); @@ -243,6 +272,7 @@ namespace VIVE.OpenXR.CompositionLayer CompositionLayerRenderThreadTask.IssueObtainSwapchainEvent(SetupExternalAndroidSurfaceSyncObjects); texture = new Texture2D((int)externalSurfaceWidth, (int)externalSurfaceHeight, TextureFormat.RGBA32, false, isLinear); + textureRight = new Texture2D((int)externalSurfaceWidth, (int)externalSurfaceHeight, TextureFormat.RGBA32, false, isLinear); DEBUG("CompositionLayerInit Ext Surf"); @@ -250,16 +280,23 @@ namespace VIVE.OpenXR.CompositionLayer return true; } - if (texture == null) + if (textureLeft == null) { ERROR("CompositionLayerInit: Source Texture not found, abort init."); return false; } + if (textureLeft != null && textureRight == null) + { + DEBUG("CompositionLayerInit: Using Left Texture as Right Texture."); + textureRight = textureLeft; + } DEBUG("CompositionLayerInit"); - uint textureWidth = (uint)texture.width; - uint textureHeight = (uint)texture.height; + uint textureWidth = (uint)textureLeft.width; + uint textureHeight = (uint)textureLeft.height; + + DEBUG("Init : textureWidth = " + textureWidth + " textureHeight = " + textureHeight); CompositionLayerRenderThreadSyncObject ObtainLayerSwapchainSyncObject = new CompositionLayerRenderThreadSyncObject( (taskQueue) => @@ -293,9 +330,28 @@ namespace VIVE.OpenXR.CompositionLayer if (layerID != 0) { DEBUG("Init completed, ID: " + layerID + ", Image Count: " + imageCount); - layerTextures = new LayerTextures(imageCount); + layerTextures[0] = new LayerTextures(imageCount); InitStatus = true; } + if (textureRight != null && textureLeft != textureRight) { + layerIDRight = compositionLayerFeature.CompositionLayer_Init(textureWidth, textureHeight, graphicsAPI, isDynamicLayer, isProtectedSurface, out imageCount); + + if (layerIDRight != 0) + { + DEBUG("Init completed, ID Right: " + layerIDRight + ", Image Count: " + imageCount); + layerTextures[1] = new LayerTextures(imageCount); + } + } + else if (isCustomRects) + { + layerIDRight = compositionLayerFeature.CompositionLayer_Init(textureWidth, textureHeight, graphicsAPI, isDynamicLayer, isProtectedSurface, out imageCount); + + if (layerIDRight != 0) + { + DEBUG("Init completed, ID Right: " + layerIDRight + ", Image Count: " + imageCount); + layerTextures[1] = new LayerTextures(imageCount); + } + } taskQueue.Release(task); } @@ -310,18 +366,20 @@ namespace VIVE.OpenXR.CompositionLayer previousCylinderArcLength = m_CylinderArcLength; previousCylinderRadius = m_CylinderRadius; previousAngleOfArc = m_CylinderAngleOfArc; - previousTexture = texture; + previousTextureLeft = textureLeft; + previousTextureRight = textureRight; previousIsDynamicLayer = isDynamicLayer; return true; } - private bool textureAcquired = false; - private bool textureAcquiredOnce = false; + private bool[] textureAcquired = new bool[] {false, false}; + private bool[] textureAcquiredOnce = new bool[] {false, false}; XrOffset2Di offset = new XrOffset2Di(); XrExtent2Di extent = new XrExtent2Di(); XrRect2Di rect = new XrRect2Di(); - private bool SetLayerTexture() + + private bool SetLayerTexture(int eyeid) { if (!isInitializationComplete || !isSynchronized) return false; @@ -332,10 +390,24 @@ namespace VIVE.OpenXR.CompositionLayer offset.y = (int)externalSurfaceHeight; extent.width = (int)externalSurfaceWidth; extent.height = (int)-externalSurfaceHeight; + + if (isCustomRects && customRects == CustomRectsType.TopDown) + { + extent.height = (int)-externalSurfaceHeight/2; + if (eyeid == 0) + offset.y = (int)(externalSurfaceHeight-externalSurfaceHeight/2); + } + else if (isCustomRects && customRects == CustomRectsType.LeftRight) + { + extent.width = (int)externalSurfaceWidth/2; + if (eyeid != 0) + offset.x = extent.width; + } + rect.offset = offset; rect.extent = extent; - layerTextures.textureLayout = rect; + layerTextures[eyeid].textureLayout = rect; return true; //No need to process texture queues } @@ -346,63 +418,73 @@ namespace VIVE.OpenXR.CompositionLayer if (TextureParamsChanged()) { //Destroy queues - DEBUG("SetLayerTexture: Texture params changed, need to re-init queues. layerID: " + layerID); - DestroyCompositionLayer(); + DEBUG("SetLayerTexture: Texture params changed, need to re-init queues. layerID: " + ((eyeid ==0) ? layerID : layerIDRight)); + if (layerID != 0) + { + DestroyCompositionLayer(0); + layerID = 0; + } + + if (layerIDRight != 0) + { + DestroyCompositionLayer(1); + layerIDRight = 0; + } reinitializationNeeded = true; return false; } } else { - ERROR("SetLayerTexture: No texture found. layerID: " + layerID); + ERROR("SetLayerTexture: No texture found. layerID: " + ((eyeid ==0) ? layerID : layerIDRight)); return false; } - if (isDynamicLayer || (!isDynamicLayer && !textureAcquiredOnce)) + if (isDynamicLayer || (!isDynamicLayer && !textureAcquiredOnce[eyeid])) { //Get available texture id compositionLayerFeature = OpenXRSettings.Instance.GetFeature(); uint currentImageIndex; - IntPtr newTextureID = compositionLayerFeature.CompositionLayer_GetTexture(layerID, out currentImageIndex); + IntPtr newTextureID = compositionLayerFeature.CompositionLayer_GetTexture((eyeid ==0) ? layerID : layerIDRight, out currentImageIndex); - textureAcquired = true; - textureAcquiredOnce = true; + textureAcquired[eyeid] = true; + textureAcquiredOnce[eyeid] = true; if (newTextureID == IntPtr.Zero) { ERROR("SetLayerTexture: Invalid Texture ID"); - if (compositionLayerFeature.CompositionLayer_ReleaseTexture(layerID)) + if (compositionLayerFeature.CompositionLayer_ReleaseTexture((eyeid ==0) ? layerID : layerIDRight)) { - textureAcquired = false; + textureAcquired[eyeid] = false; } return false; } bool textureIDUpdated = false; - layerTextures.currentAvailableTextureIndex = currentImageIndex; - IntPtr currentTextureID = layerTextures.GetCurrentAvailableTextureID(); + layerTextures[eyeid].currentAvailableTextureIndex = currentImageIndex; + IntPtr currentTextureID = layerTextures[eyeid].GetCurrentAvailableTextureID(); if (currentTextureID == IntPtr.Zero || currentTextureID != newTextureID) { - DEBUG("SetLayerTexture: Update Texture ID. layerID: " + layerID); - layerTextures.SetCurrentAvailableTextureID(newTextureID); + DEBUG("SetLayerTexture: Update Texture ID. layerID: " + ((eyeid ==0) ? layerID : layerIDRight)); + layerTextures[eyeid].SetCurrentAvailableTextureID(newTextureID); textureIDUpdated = true; } - if (layerTextures.GetCurrentAvailableTextureID() == IntPtr.Zero) + if (layerTextures[eyeid].GetCurrentAvailableTextureID() == IntPtr.Zero) { ERROR("SetLayerTexture: Failed to get texture."); return false; } // Create external texture - if (layerTextures.GetCurrentAvailableExternalTexture() == null || textureIDUpdated) + if (layerTextures[eyeid].GetCurrentAvailableExternalTexture() == null || textureIDUpdated) { DEBUG("SetLayerTexture: Create External Texture."); - layerTextures.SetCurrentAvailableExternalTexture(Texture2D.CreateExternalTexture(texture.width, texture.height, TextureFormat.RGBA32, false, isLinear, layerTextures.GetCurrentAvailableTextureID())); + layerTextures[eyeid].SetCurrentAvailableExternalTexture(Texture2D.CreateExternalTexture(texture.width, texture.height, TextureFormat.RGBA32, false, isLinear, layerTextures[eyeid].GetCurrentAvailableTextureID())); } - if (layerTextures.externalTextures[layerTextures.currentAvailableTextureIndex] == null) + if (layerTextures[eyeid].externalTextures[layerTextures[eyeid].currentAvailableTextureIndex] == null) { ERROR("SetLayerTexture: Create External Texture Failed."); return false; @@ -411,28 +493,40 @@ namespace VIVE.OpenXR.CompositionLayer //Set Texture Content - bool isContentSet = layerTextures.textureContentSet[layerTextures.currentAvailableTextureIndex]; + bool isContentSet = layerTextures[eyeid].textureContentSet[layerTextures[eyeid].currentAvailableTextureIndex]; if (!isDynamicLayer && isContentSet) { return true; } - - int currentTextureWidth = layerTextures.GetCurrentAvailableExternalTexture().width; - int currentTextureHeight = layerTextures.GetCurrentAvailableExternalTexture().height; + int currentTextureWidth = layerTextures[eyeid].GetCurrentAvailableExternalTexture().width; + int currentTextureHeight = layerTextures[eyeid].GetCurrentAvailableExternalTexture().height; //Set Texture Layout offset.x = 0; offset.y = 0; extent.width = (int)currentTextureWidth; extent.height = (int)currentTextureHeight; + + + if (isCustomRects && customRects == CustomRectsType.TopDown) + { + extent.height = (int)currentTextureHeight/2; + if (eyeid == 0) + offset.y = extent.height; + } + else if (isCustomRects && customRects == CustomRectsType.LeftRight) + { + extent.width = (int)currentTextureWidth/2; + if (eyeid != 0) + offset.x = extent.width; + } + rect.offset = offset; rect.extent = extent; + layerTextures[eyeid].textureLayout = rect; - layerTextures.textureLayout = rect; - - //Blit and copy texture - RenderTexture srcTexture = texture as RenderTexture; + RenderTexture srcTexture = ((eyeid == 0 || isCustomRects) ? textureLeft : textureRight) as RenderTexture; int msaaSamples = 1; if (srcTexture != null) { @@ -441,6 +535,8 @@ namespace VIVE.OpenXR.CompositionLayer Material currentBlitMat = texture2DBlitMaterial; + DEBUG("RenderTextureDescriptor currentTextureWidth = " + currentTextureWidth + " currentTextureHeight = " + currentTextureHeight); + RenderTextureDescriptor rtDescriptor = new RenderTextureDescriptor(currentTextureWidth, currentTextureHeight, RenderTextureFormat.ARGB32, 0); rtDescriptor.msaaSamples = msaaSamples; rtDescriptor.autoGenerateMips = false; @@ -454,8 +550,10 @@ namespace VIVE.OpenXR.CompositionLayer } blitTempRT.DiscardContents(); - Texture dstTexture = layerTextures.GetCurrentAvailableExternalTexture(); - Graphics.Blit(texture, blitTempRT, currentBlitMat); + Texture dstTexture = layerTextures[eyeid].GetCurrentAvailableExternalTexture(); + + Graphics.Blit((eyeid == 0) ? textureLeft : textureRight, blitTempRT, currentBlitMat); + Graphics.CopyTexture(blitTempRT, 0, 0, dstTexture, 0, 0); //DEBUG("Blit and CopyTexture complete."); @@ -470,12 +568,12 @@ namespace VIVE.OpenXR.CompositionLayer return false; } - layerTextures.textureContentSet[layerTextures.currentAvailableTextureIndex] = true; + layerTextures[eyeid].textureContentSet[layerTextures[eyeid].currentAvailableTextureIndex] = true; - bool releaseTextureResult = compositionLayerFeature.CompositionLayer_ReleaseTexture(layerID); + bool releaseTextureResult = compositionLayerFeature.CompositionLayer_ReleaseTexture((eyeid == 0) ? layerID : layerIDRight); if (releaseTextureResult) { - textureAcquired = false; + textureAcquired[eyeid] = false; } return releaseTextureResult; @@ -527,7 +625,7 @@ namespace VIVE.OpenXR.CompositionLayer bool enabledColorScaleBiasInShader = false; XrCompositionLayerColorScaleBiasKHR CompositionLayerParamsColorScaleBias = new XrCompositionLayerColorScaleBiasKHR(); - private void SubmitCompositionLayer() //Call at onBeforeRender + private void SubmitCompositionLayer(int eyeid, bool botheye) //Call at onBeforeRender { if (!isInitializationComplete && !isLayerReadyForSubmit) return; compositionLayerFeature = OpenXRSettings.Instance.GetFeature(); @@ -570,7 +668,7 @@ namespace VIVE.OpenXR.CompositionLayer CompositionLayerParamsColorScaleBias.colorBias.a = 0.0f; } - compositionLayerColorScaleBias.Submit_CompositionLayerColorBias(CompositionLayerParamsColorScaleBias, layerID); + compositionLayerColorScaleBias.Submit_CompositionLayerColorBias(CompositionLayerParamsColorScaleBias, (eyeid == 0) ? layerID : layerIDRight); } else if (enabledColorScaleBiasInShader) //Disable if color scale bias is no longer active { @@ -583,13 +681,13 @@ namespace VIVE.OpenXR.CompositionLayer { default: case LayerShape.Quad: - compositionLayerFeature.Submit_CompositionLayerQuad(AssignCompositionLayerParamsQuad(), (OpenXR.CompositionLayer.LayerType)layerType, compositionDepth, layerID); + compositionLayerFeature.Submit_CompositionLayerQuad(AssignCompositionLayerParamsQuad(eyeid, botheye), (OpenXR.CompositionLayer.LayerType)layerType, compositionDepth, (eyeid == 0) ? layerID : layerIDRight); break; case LayerShape.Cylinder: ViveCompositionLayerCylinder compositionLayerCylinderFeature = OpenXRSettings.Instance.GetFeature(); if (compositionLayerCylinderFeature != null && compositionLayerCylinderFeature.CylinderExtensionEnabled) { - compositionLayerCylinderFeature.Submit_CompositionLayerCylinder(AssignCompositionLayerParamsCylinder(), (OpenXR.CompositionLayer.LayerType)layerType, compositionDepth, layerID); + compositionLayerCylinderFeature.Submit_CompositionLayerCylinder(AssignCompositionLayerParamsCylinder(eyeid, botheye), (OpenXR.CompositionLayer.LayerType)layerType, compositionDepth, (eyeid == 0) ? layerID : layerIDRight); } break; } @@ -601,22 +699,22 @@ namespace VIVE.OpenXR.CompositionLayer public delegate void OnDestroyCompositionLayer(); public event OnDestroyCompositionLayer OnDestroyCompositionLayerDelegate = null; - private void DestroyCompositionLayer() + private void DestroyCompositionLayer(int eyeid) { - if (!isInitializationComplete || layerTextures == null) + if (layerTextures[eyeid] == null) { DEBUG("DestroyCompositionLayer: Layer already destroyed/not initialized."); return; } - DEBUG("DestroyCompositionLayer"); + compositionLayerFeature = OpenXRSettings.Instance.GetFeature(); - if (textureAcquired) + if (textureAcquired[eyeid]) { DEBUG("DestroyCompositionLayer: textureAcquired, releasing."); - textureAcquired = !compositionLayerFeature.CompositionLayer_ReleaseTexture(layerID); + textureAcquired[eyeid] = !compositionLayerFeature.CompositionLayer_ReleaseTexture((eyeid == 0) ? layerID : layerIDRight); } CompositionLayerRenderThreadSyncObject DestroyLayerSwapchainSyncObject = new CompositionLayerRenderThreadSyncObject( @@ -631,26 +729,26 @@ namespace VIVE.OpenXR.CompositionLayer if (!compositionLayerFeature.CompositionLayer_Destroy(task.layerID)) { - ERROR("estroyCompositionLayer: CompositionLayer_Destroy failed."); + ERROR("DestroyCompositionLayer: CompositionLayer_Destroy failed : " + task.layerID); } taskQueue.Release(task); } }); - CompositionLayerRenderThreadTask.IssueDestroySwapchainEvent(DestroyLayerSwapchainSyncObject, layerID); + CompositionLayerRenderThreadTask.IssueDestroySwapchainEvent(DestroyLayerSwapchainSyncObject, (eyeid == 0) ? layerID : layerIDRight); InitStatus = false; isLayerReadyForSubmit = false; isInitializationComplete = false; - textureAcquiredOnce = false; + textureAcquiredOnce[eyeid] = false; - foreach (Texture externalTexture in layerTextures.externalTextures) + foreach (Texture externalTexture in layerTextures[eyeid].externalTextures) { DEBUG("DestroyCompositionLayer: External textures"); if (externalTexture != null) Destroy(externalTexture); } - layerTextures = null; + layerTextures[eyeid] = null; if (generatedFallbackMeshFilter != null && generatedFallbackMeshFilter.mesh != null) { @@ -696,7 +794,7 @@ namespace VIVE.OpenXR.CompositionLayer private List inputSubsystems = new List(); XrCompositionLayerQuad CompositionLayerParamsQuad = new XrCompositionLayerQuad(); XrExtent2Df quadSize = new XrExtent2Df(); - private XrCompositionLayerQuad AssignCompositionLayerParamsQuad() + private XrCompositionLayerQuad AssignCompositionLayerParamsQuad(int eyeid, bool botheye) { compositionLayerFeature = OpenXRSettings.Instance.GetFeature(); @@ -722,7 +820,14 @@ namespace VIVE.OpenXR.CompositionLayer break; } - CompositionLayerParamsQuad.subImage.imageRect = layerTextures.textureLayout; + if (!botheye) { + if (eyeid == 0) + CompositionLayerParamsQuad.eyeVisibility = XrEyeVisibility.XR_EYE_VISIBILITY_LEFT; + else + CompositionLayerParamsQuad.eyeVisibility = XrEyeVisibility.XR_EYE_VISIBILITY_RIGHT; + } + + CompositionLayerParamsQuad.subImage.imageRect = layerTextures[eyeid].textureLayout; CompositionLayerParamsQuad.subImage.imageArrayIndex = 0; GetCompositionLayerPose(ref CompositionLayerParamsQuad.pose); //Update isHeadLock @@ -762,13 +867,14 @@ namespace VIVE.OpenXR.CompositionLayer quadSize.width = m_QuadWidth; quadSize.height = m_QuadHeight; + CompositionLayerParamsQuad.size = quadSize; return CompositionLayerParamsQuad; } XrCompositionLayerCylinderKHR CompositionLayerParamsCylinder = new XrCompositionLayerCylinderKHR(); - private XrCompositionLayerCylinderKHR AssignCompositionLayerParamsCylinder() + private XrCompositionLayerCylinderKHR AssignCompositionLayerParamsCylinder(int eyeid, bool botheye) { compositionLayerFeature = OpenXRSettings.Instance.GetFeature(); @@ -830,7 +936,14 @@ namespace VIVE.OpenXR.CompositionLayer break; } - CompositionLayerParamsCylinder.subImage.imageRect = layerTextures.textureLayout; + if (!botheye) { + if (eyeid == 0) + CompositionLayerParamsQuad.eyeVisibility = XrEyeVisibility.XR_EYE_VISIBILITY_LEFT; + else + CompositionLayerParamsQuad.eyeVisibility = XrEyeVisibility.XR_EYE_VISIBILITY_RIGHT; + } + + CompositionLayerParamsCylinder.subImage.imageRect = layerTextures[eyeid].textureLayout; CompositionLayerParamsCylinder.subImage.imageArrayIndex = 0; GetCompositionLayerPose(ref CompositionLayerParamsCylinder.pose); CompositionLayerParamsCylinder.radius = m_CylinderRadius; @@ -960,8 +1073,20 @@ namespace VIVE.OpenXR.CompositionLayer public void TerminateLayer() { - DEBUG("TerminateLayer: layerID: " + layerID); - DestroyCompositionLayer(); + if (layerID != 0) + { + DEBUG("TerminateLayer: layerID: " + layerID); + DestroyCompositionLayer(0); + layerID = 0; + } + + if (layerIDRight != 0) + { + DEBUG("TerminateLayer: layerIDRight: " + layerIDRight); + DestroyCompositionLayer(1); + layerIDRight = 0; + } + if (placeholderGenerated && compositionLayerPlaceholderPrefabGO != null) { @@ -977,9 +1102,10 @@ namespace VIVE.OpenXR.CompositionLayer public bool TextureParamsChanged() { - if (previousTexture != texture) + if (previousTextureLeft != textureLeft || previousTextureRight != textureRight) { - previousTexture = texture; + previousTextureLeft = textureLeft; + previousTextureRight = textureRight; return true; } @@ -1395,7 +1521,14 @@ namespace VIVE.OpenXR.CompositionLayer return; } - if (SetLayerTexture()) + bool isBotheye = (textureRight == null || textureLeft == textureRight); + + if (isCustomRects) + { + isBotheye = false; + } + + if (SetLayerTexture(0)) { isLayerReadyForSubmit = true; } @@ -1405,7 +1538,22 @@ namespace VIVE.OpenXR.CompositionLayer DEBUG("Composition Layer Lifecycle OnBeforeRender: Layer not ready for submit."); return; } - SubmitCompositionLayer(); + + if (!isBotheye) { + if (SetLayerTexture(1)) + { + isLayerReadyForSubmit = true; + } + if (!isLayerReadyForSubmit) + { + DEBUG("Composition Layer Lifecycle OnBeforeRender: Layer not ready for submit."); + return; + } + } + + SubmitCompositionLayer(0, isBotheye); + if (!isBotheye) + SubmitCompositionLayer(1, isBotheye); isLayerReadyForSubmit = false; //reset flag after submit } @@ -1635,6 +1783,12 @@ namespace VIVE.OpenXR.CompositionLayer Right = 2, } + public enum CustomRectsType + { + LeftRight = 1, + TopDown = 2, + } + #if UNITY_EDITOR public enum CylinderLayerParamAdjustmentMode { @@ -1950,6 +2104,7 @@ namespace VIVE.OpenXR.CompositionLayer return radius; } } + #endregion } } diff --git a/com.htc.upm.vive.openxr/Runtime/CompositionLayer/Scripts/CompositionLayerPassthroughAPI.cs b/com.htc.upm.vive.openxr/Runtime/CompositionLayer/Scripts/CompositionLayerPassthroughAPI.cs index 64868ba..91ba06a 100644 --- a/com.htc.upm.vive.openxr/Runtime/CompositionLayer/Scripts/CompositionLayerPassthroughAPI.cs +++ b/com.htc.upm.vive.openxr/Runtime/CompositionLayer/Scripts/CompositionLayerPassthroughAPI.cs @@ -11,6 +11,7 @@ using VIVE.OpenXR.CompositionLayer.Passthrough; namespace VIVE.OpenXR.CompositionLayer.Passthrough { + [Obsolete("This class is deprecated. Please use PassthroughAPI instead.")] public static class CompositionLayerPassthroughAPI { const string LOG_TAG = "CompositionLayerPassthroughAPI"; @@ -79,7 +80,7 @@ namespace VIVE.OpenXR.CompositionLayer.Passthrough new IntPtr(6), //Enter IntPtr(0) for backward compatibility (using createPassthrough to enable the passthrough feature), or enter IntPtr(6) to enable the passthrough feature based on the layer submitted to endframe. XrPassthroughFormHTC.XR_PASSTHROUGH_FORM_PLANAR_HTC ); - XrResult res = XR_HTC_passthrough.xrCreatePassthroughHTC(createInfo, out passthrough); + XrResult res = passthroughFeature.CreatePassthroughHTC(createInfo, out passthrough); if(res == XrResult.XR_SUCCESS) { ulong passthrough_ulong = passthrough; @@ -192,7 +193,7 @@ namespace VIVE.OpenXR.CompositionLayer.Passthrough new IntPtr(6), //Enter IntPtr(0) for backward compatibility (using createPassthrough to enable the passthrough feature), or enter IntPtr(6) to enable the passthrough feature based on the layer submitted to endframe. XrPassthroughFormHTC.XR_PASSTHROUGH_FORM_PROJECTED_HTC ); - XrResult res = XR_HTC_passthrough.xrCreatePassthroughHTC(createInfo, out passthrough); + XrResult res = passthroughFeature.CreatePassthroughHTC(createInfo, out passthrough); if (res == XrResult.XR_SUCCESS) { ulong passthrough_ulong = passthrough; @@ -301,7 +302,7 @@ namespace VIVE.OpenXR.CompositionLayer.Passthrough new IntPtr(6), //Enter IntPtr(0) for backward compatibility (using createPassthrough to enable the passthrough feature), or enter IntPtr(6) to enable the passthrough feature based on the layer submitted to endframe. XrPassthroughFormHTC.XR_PASSTHROUGH_FORM_PROJECTED_HTC ); - XrResult res = XR_HTC_passthrough.xrCreatePassthroughHTC(createInfo, out passthrough); + XrResult res = passthroughFeature.CreatePassthroughHTC(createInfo, out passthrough); if (res == XrResult.XR_SUCCESS) { ulong passthrough_ulong = passthrough; @@ -400,7 +401,7 @@ namespace VIVE.OpenXR.CompositionLayer.Passthrough } #if UNITY_STANDALONE XrPassthroughHTC passthrough = passthrough2Layer[passthroughID].passthrough; - XR_HTC_passthrough.xrDestroyPassthroughHTC(passthrough); + passthroughFeature.DestroyPassthroughHTC(passthrough); passthrough2IsUnderLay.Remove(passthroughID); SubmitLayer(); passthrough2Layer.Remove(passthroughID); diff --git a/com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Arts/VRMfile.meta b/com.htc.upm.vive.openxr/Runtime/Editor.meta similarity index 77% rename from com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Arts/VRMfile.meta rename to com.htc.upm.vive.openxr/Runtime/Editor.meta index 9bbf5b2..b2895d7 100644 --- a/com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Arts/VRMfile.meta +++ b/com.htc.upm.vive.openxr/Runtime/Editor.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 4e5bee8db40a5a941a38710195e3219e +guid: a6509bdf37b3b364eb80cb0df68435a3 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Arts/VRMfile/VRM1.meta b/com.htc.upm.vive.openxr/Runtime/Editor/CompositionLayer.meta similarity index 77% rename from com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Arts/VRMfile/VRM1.meta rename to com.htc.upm.vive.openxr/Runtime/Editor/CompositionLayer.meta index 6880f2b..bcbcbdb 100644 --- a/com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Arts/VRMfile/VRM1.meta +++ b/com.htc.upm.vive.openxr/Runtime/Editor/CompositionLayer.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: ca57a546da07d9146aa710d82ec06e64 +guid: 5e0cbfbe15682c542acc5675d4503f72 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/com.htc.upm.vive.openxr/Runtime/Editor/CompositionLayer/ViveCompositionLayerExtraSettingsEditor.cs b/com.htc.upm.vive.openxr/Runtime/Editor/CompositionLayer/ViveCompositionLayerExtraSettingsEditor.cs new file mode 100644 index 0000000..f991da3 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Editor/CompositionLayer/ViveCompositionLayerExtraSettingsEditor.cs @@ -0,0 +1,46 @@ +// Copyright HTC Corporation All Rights Reserved. + +#if UNITY_EDITOR +using UnityEditor; +using UnityEngine; +using VIVE.OpenXR.CompositionLayer; + +namespace VIVE.OpenXR.Editor.CompositionLayer +{ + [CustomEditor(typeof(ViveCompositionLayerExtraSettings))] + internal class ViveCompositionLayerEditorExtraSettings : UnityEditor.Editor + { + //private SerializedProperty SettingsEditorEnableSharpening; + + static string PropertyName_SharpeningEnable = "SettingsEditorEnableSharpening"; + static GUIContent Label_SharpeningEnable = new GUIContent("Enable Sharpening", "Enable Sharpening."); + SerializedProperty Property_SharpeningEnable; + + static string PropertyName_SharpeningLevel = "SettingsEditorSharpeningLevel"; + static GUIContent Label_SharpeningLevel = new GUIContent("Sharpening Level", "Select Sharpening Level."); + SerializedProperty Property_SharpeningLevel; + + static string PropertyName_SharpeningMode = "SettingsEditorSharpeningMode"; + static GUIContent Label_SharpeningMode = new GUIContent("Sharpening Mode", "Select Sharpening Mode."); + SerializedProperty Property_SharpeningMode; + + void OnEnable() + { + Property_SharpeningEnable = serializedObject.FindProperty(PropertyName_SharpeningEnable); + Property_SharpeningMode = serializedObject.FindProperty(PropertyName_SharpeningMode); + Property_SharpeningLevel = serializedObject.FindProperty(PropertyName_SharpeningLevel); + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + + EditorGUILayout.PropertyField(Property_SharpeningEnable, new GUIContent(Label_SharpeningEnable)); + EditorGUILayout.PropertyField(Property_SharpeningMode, new GUIContent(Label_SharpeningMode)); + EditorGUILayout.PropertyField(Property_SharpeningLevel, new GUIContent(Label_SharpeningLevel)); + + serializedObject.ApplyModifiedProperties(); + } + } +} +#endif diff --git a/com.htc.upm.vive.openxr/Runtime/Editor/CompositionLayer/ViveCompositionLayerExtraSettingsEditor.cs.meta b/com.htc.upm.vive.openxr/Runtime/Editor/CompositionLayer/ViveCompositionLayerExtraSettingsEditor.cs.meta new file mode 100644 index 0000000..bc5dd34 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Editor/CompositionLayer/ViveCompositionLayerExtraSettingsEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a3dfbc6bb6d75454db700d2326157424 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Editor/FrameSynchronization.meta b/com.htc.upm.vive.openxr/Runtime/Editor/FrameSynchronization.meta new file mode 100644 index 0000000..f41e76e --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Editor/FrameSynchronization.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 050772d662d04514ca3bb28fbe82ecd7 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Editor/FrameSynchronization/ViveFrameSynchronizationEditor.cs b/com.htc.upm.vive.openxr/Runtime/Editor/FrameSynchronization/ViveFrameSynchronizationEditor.cs new file mode 100644 index 0000000..44d7ef5 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Editor/FrameSynchronization/ViveFrameSynchronizationEditor.cs @@ -0,0 +1,30 @@ +// Copyright HTC Corporation All Rights Reserved. + +#if UNITY_EDITOR +using UnityEditor; + +using VIVE.OpenXR.FrameSynchronization; + +namespace VIVE.OpenXR.Editor.FrameSynchronization +{ + [CustomEditor(typeof(ViveFrameSynchronization))] + public class ViveFrameSynchronizationEditor : UnityEditor.Editor + { + SerializedProperty m_SynchronizationMode; + + private void OnEnable() + { + m_SynchronizationMode = serializedObject.FindProperty("m_SynchronizationMode"); + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + + EditorGUILayout.PropertyField(m_SynchronizationMode); + + serializedObject.ApplyModifiedProperties(); + } + } +} +#endif \ No newline at end of file diff --git a/com.htc.upm.vive.openxr/Runtime/Editor/FrameSynchronization/ViveFrameSynchronizationEditor.cs.meta b/com.htc.upm.vive.openxr/Runtime/Editor/FrameSynchronization/ViveFrameSynchronizationEditor.cs.meta new file mode 100644 index 0000000..0722a66 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Editor/FrameSynchronization/ViveFrameSynchronizationEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d25b2e9fff2d6724b865e0fbd609da9d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Editor/Interactions.meta b/com.htc.upm.vive.openxr/Runtime/Editor/Interactions.meta new file mode 100644 index 0000000..7a4110d --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Editor/Interactions.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a8bd17374612cce468393aa1acc9fa89 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Editor/Interactions/ViveInteractionsEditor.cs b/com.htc.upm.vive.openxr/Runtime/Editor/Interactions/ViveInteractionsEditor.cs new file mode 100644 index 0000000..9235803 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Editor/Interactions/ViveInteractionsEditor.cs @@ -0,0 +1,184 @@ +// Copyright HTC Corporation All Rights Reserved. + +using UnityEngine; + +using VIVE.OpenXR.Interaction; + +#if UNITY_EDITOR +using UnityEditor; +using UnityEngine.XR.OpenXR; +using UnityEngine.XR.OpenXR.Features; + +namespace VIVE.OpenXR.Editor.Interaction +{ + [CustomEditor(typeof(ViveInteractions))] + public class ViveInteractionsEditor : UnityEditor.Editor + { + SerializedProperty m_ViveHandInteraction, m_ViveWristTracker, m_ViveXRTracker; +#if UNITY_ANDROID + SerializedProperty m_KHRHandInteraction; +#endif + + private void OnEnable() + { + m_ViveHandInteraction = serializedObject.FindProperty("m_ViveHandInteraction"); + m_ViveWristTracker = serializedObject.FindProperty("m_ViveWristTracker"); + m_ViveXRTracker = serializedObject.FindProperty("m_ViveXRTracker"); +#if UNITY_ANDROID + m_KHRHandInteraction = serializedObject.FindProperty("m_KHRHandInteraction"); +#endif + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + + #region GUI + GUIStyle boxStyleInfo = new GUIStyle(EditorStyles.helpBox); + boxStyleInfo.fontSize = 12; + boxStyleInfo.wordWrap = true; + + GUIStyle boxStyleWarning = new GUIStyle(EditorStyles.helpBox); + boxStyleWarning.fontSize = 12; + boxStyleWarning.fontStyle = FontStyle.Bold; + boxStyleInfo.wordWrap = true; + + // ViveHandInteraction + GUILayout.BeginHorizontal(); + GUILayout.Space(20); + GUILayout.Label( + "The VIVE Hand Interaction feature enables hand selection and squeezing functions of XR_HTC_hand_interaction extension.\n" + + "Please note that enabling this feature impacts runtime performance.", + boxStyleInfo); + GUILayout.EndHorizontal(); + EditorGUILayout.PropertyField(m_ViveHandInteraction); + + // ViveWristTracker + GUILayout.Space(20); + GUILayout.BeginHorizontal(); + GUILayout.Space(20); + GUILayout.Label( + "The VIVE Wrist Tracker feature enables wrist tracker pose and button functions of XR_HTC_vive_wrist_tracker_interaction extension.\n" + + "Please note that enabling this feature impacts runtime performance.", + boxStyleInfo); + GUILayout.EndHorizontal(); + EditorGUILayout.PropertyField(m_ViveWristTracker); + + // ViveXrTracker + GUILayout.Space(20); + GUILayout.BeginHorizontal(); + GUILayout.Space(20); + GUILayout.Label( + "The VIVE XR Tracker feature enables ultimate tracker pose and button functions.\n" + + "WARNING:\n" + + "Please be aware that enabling this feature significantly affects runtime performance.", + boxStyleWarning); + GUILayout.EndHorizontal(); + EditorGUILayout.PropertyField(m_ViveXRTracker); + +#if UNITY_ANDROID + // ViveHandInteractionExt + GUILayout.Space(20); + GUILayout.BeginHorizontal(); + GUILayout.Space(20); + GUILayout.Label( + "The KHR Hand Interaction feature enables hand functions of XR_EXT_hand_interaction extension.\n" + + "Please note that enabling this feature impacts runtime performance.", + boxStyleInfo); + GUILayout.EndHorizontal(); + EditorGUILayout.PropertyField(m_KHRHandInteraction); +#endif + #endregion + + ViveInteractions myScript = target as ViveInteractions; + if (myScript.enabled) + { + bool viveHandInteraction = myScript.UseViveHandInteraction(); + bool viveWristTracker = myScript.UseViveWristTracker(); + bool viveXrTracker = myScript.UseViveXrTracker(); + bool khrHandInteraction = myScript.UseKhrHandInteraction(); + + OpenXRSettings settings = null; +#if UNITY_ANDROID + settings = OpenXRSettings.GetSettingsForBuildTargetGroup(BuildTargetGroup.Android); +#elif UNITY_STANDALONE + settings = OpenXRSettings.GetSettingsForBuildTargetGroup(BuildTargetGroup.Standalone); +#endif + if (settings != null) + { + bool addPathEnumeration = false; + foreach (var feature in settings.GetFeatures()) + { + if (feature is Hand.ViveHandInteraction) { feature.enabled = viveHandInteraction; } + if (feature is Tracker.ViveWristTracker) { feature.enabled = viveWristTracker; } + if (feature is Tracker.ViveXRTracker) + { + feature.enabled = viveXrTracker; + addPathEnumeration = viveXrTracker; + } + if (feature is Hand.ViveHandInteractionExt) { feature.enabled = khrHandInteraction; } + } + + foreach (var feature in settings.GetFeatures()) + { + if (addPathEnumeration && feature is VivePathEnumeration) { feature.enabled = true; } + } + } + } + + serializedObject.ApplyModifiedProperties(); + } + } + + /*public class ViveInteractionsBuildHook : OpenXRFeatureBuildHooks + { + public override int callbackOrder => 1; + public override Type featureType => typeof(VIVEFocus3Feature); + protected override void OnPostGenerateGradleAndroidProjectExt(string path) + { + } + protected override void OnPostprocessBuildExt(BuildReport report) + { + } + protected override void OnPreprocessBuildExt(BuildReport report) + { + var settings = OpenXRSettings.GetSettingsForBuildTargetGroup(BuildTargetGroup.Android); + if (settings != null) + { + foreach (var feature in settings.GetFeatures()) + { + if (feature is ViveInteractions && feature.enabled) + { + bool viveHandInteraction= ((ViveInteractions)feature).UseViveHandInteraction(); + bool viveWristTracker = ((ViveInteractions)feature).UseViveWristTracker(); + bool viveXrTracker = ((ViveInteractions)feature).UseViveXrTracker(); + bool khrHandInteraction = ((ViveInteractions)feature).UseKhrHandInteraction(); + Debug.LogFormat($"ViveInteractionsBuildHook() viveHandInteraction: {viveHandInteraction}, viveWristTracker: {viveWristTracker}, viveXrTracker: {viveXrTracker}, khrHandInteraction: {khrHandInteraction}"); + + EnableInteraction(viveHandInteraction, viveWristTracker, viveXrTracker, khrHandInteraction); + break; + } + } + } + } + + private static void EnableInteraction( + bool viveHandInteraction = false, + bool viveWristTracker = false, + bool viveXrTracker = false, + bool khrHandInteraction = false) + { + var settings = OpenXRSettings.GetSettingsForBuildTargetGroup(BuildTargetGroup.Android); + if (settings == null) { return; } + + foreach (var feature in settings.GetFeatures()) + { + if (feature is Hand.ViveHandInteraction) { feature.enabled = viveHandInteraction; Debug.LogFormat($"EnableInteraction() ViveHandInteraction: {feature.enabled}"); } + if (feature is Tracker.ViveWristTracker) { feature.enabled = viveWristTracker; Debug.LogFormat($"EnableInteraction() ViveWristTracker: {feature.enabled}"); } + if (feature is Tracker.ViveXRTracker) { feature.enabled = viveXrTracker; Debug.LogFormat($"EnableInteraction() ViveXRTracker: {feature.enabled}"); } + if (feature is Hand.ViveHandInteractionExt) { feature.enabled = khrHandInteraction; Debug.LogFormat($"EnableInteraction() ViveHandInteractionExt: {feature.enabled}"); } + } + } + }*/ +} +#endif \ No newline at end of file diff --git a/com.htc.upm.vive.openxr/Runtime/Editor/Interactions/ViveInteractionsEditor.cs.meta b/com.htc.upm.vive.openxr/Runtime/Editor/Interactions/ViveInteractionsEditor.cs.meta new file mode 100644 index 0000000..2dc08ae --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Editor/Interactions/ViveInteractionsEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c7e32703a3206194580e534565abcf91 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Editor/VIVERigEditor.cs b/com.htc.upm.vive.openxr/Runtime/Editor/VIVERigEditor.cs new file mode 100644 index 0000000..006e648 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Editor/VIVERigEditor.cs @@ -0,0 +1,44 @@ +// Copyright HTC Corporation All Rights Reserved. + +#if UNITY_EDITOR +using UnityEditor; + +namespace VIVE.OpenXR.Editor +{ + [CustomEditor(typeof(VIVERig))] + public class VIVERigEditor : UnityEditor.Editor + { + SerializedProperty m_TrackingOrigin, m_CameraOffset, m_CameraHeight, m_ActionAsset; + + private void OnEnable() + { + m_TrackingOrigin = serializedObject.FindProperty("m_TrackingOrigin"); + m_CameraOffset = serializedObject.FindProperty("m_CameraOffset"); + m_CameraHeight = serializedObject.FindProperty("m_CameraHeight"); + m_ActionAsset = serializedObject.FindProperty("m_ActionAsset"); + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + VIVERig myScript = target as VIVERig; + + EditorGUILayout.PropertyField(m_TrackingOrigin); + EditorGUILayout.PropertyField(m_CameraOffset); + + EditorGUILayout.HelpBox( + "Set the height of camera when the Tracking Origin is Device.", + MessageType.Info); + EditorGUILayout.PropertyField(m_CameraHeight); + +#if ENABLE_INPUT_SYSTEM + EditorGUILayout.PropertyField(m_ActionAsset); +#endif + + serializedObject.ApplyModifiedProperties(); + if (UnityEngine.GUI.changed) + EditorUtility.SetDirty((VIVERig)target); + } + } +} +#endif \ No newline at end of file diff --git a/com.htc.upm.vive.openxr/Runtime/Editor/VIVERigEditor.cs.meta b/com.htc.upm.vive.openxr/Runtime/Editor/VIVERigEditor.cs.meta new file mode 100644 index 0000000..e78b886 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Editor/VIVERigEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4766014dc7f94c8468710cc3fd265f90 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Features/Anchor/Documentation/OpenXRExtensions.md b/com.htc.upm.vive.openxr/Runtime/Features/Anchor/Documentation/OpenXRExtensions.md index e69de29..f70563a 100644 --- a/com.htc.upm.vive.openxr/Runtime/Features/Anchor/Documentation/OpenXRExtensions.md +++ b/com.htc.upm.vive.openxr/Runtime/Features/Anchor/Documentation/OpenXRExtensions.md @@ -0,0 +1,180 @@ +# XR_HTC_anchor XR_HTC_anchor_persistence +## Name String + XR_htc_anchor XR_HTC_anchor_persistence +## Revision + 1 +## Overview + +This document provides an overview of how to use the AnchorManager to manage anchors in an OpenXR application, specifically using the XR_HTC_anchor and XR_HTC_anchor_persistence extensions. +Introduction + +Anchors in OpenXR allow applications to track specific points in space over time. The XR_HTC_anchor extension provides the basic functionality for creating and managing anchors, while the XR_HTC_anchor_persistence extension allows anchors to be persisted across sessions. The AnchorManager class simplifies the use of these extensions by providing high-level methods for common operations. +Checking Extension Support + +Before using any anchor-related functions, it's important to check if the extensions are supported on the current system. + +```csharp + +bool isAnchorSupported = AnchorManager.IsSupported(); +bool isPersistedAnchorSupported = AnchorManager.IsPersistedAnchorSupported(); + +``` + +## Creating and Managing Anchors +### Creating an Anchor + +To create a new anchor, use the CreateAnchor method. This method requires a Pose representing the anchor's position and orientation relative to the tracking space, and a name for the anchor. + +```csharp + +Pose anchorPose = new Pose(new Vector3(0, 0, 0), Quaternion.identity); +AnchorManager.Anchor newAnchor = AnchorManager.CreateAnchor(anchorPose, "MyAnchor"); + +``` + +### Getting an Anchor's Name + +To retrieve the name of an existing anchor, use the GetSpatialAnchorName method. + +```csharp + +string anchorName; +bool success = AnchorManager.GetSpatialAnchorName(newAnchor, out anchorName); +if (success) { + Debug.Log("Anchor name: " + anchorName); +} + +``` + +### Tracking Space and Pose + +To get the current tracking space, use the GetTrackingSpace method. To retrieve the pose of an anchor relative to the current tracking space, use the GetTrackingSpacePose method. + +```csharp + +XrSpace trackingSpace = AnchorManager.GetTrackingSpace(); +Pose anchorPose; +bool poseValid = AnchorManager.GetTrackingSpacePose(newAnchor, out anchorPose); +if (poseValid) { + Debug.Log("Anchor pose: " + anchorPose.position + ", " + anchorPose.rotation); +} + +``` + +## Persisting Anchors +### Creating a Persisted Anchor Collection + +To enable anchor persistence, create a persisted anchor collection using the CreatePersistedAnchorCollection method. + +```csharp + +Task createCollectionTask = AnchorManager.CreatePersistedAnchorCollection(); +createCollectionTask.Wait(); + +``` + +### Persisting an Anchor + +To persist an anchor, use the PersistAnchor method with the anchor and a unique name for the persisted anchor. + +```csharp + +string persistedAnchorName = "MyPersistedAnchor"; +XrResult result = AnchorManager.PersistAnchor(newAnchor, persistedAnchorName); +if (result == XrResult.XR_SUCCESS) { + Debug.Log("Anchor persisted successfully."); +} + +``` + +### Unpersisting an Anchor + +To remove a persisted anchor, use the UnpersistAnchor method with the name of the persisted anchor. + +```csharp + +XrResult result = AnchorManager.UnpersistAnchor(persistedAnchorName); +if (result == XrResult.XR_SUCCESS) { + Debug.Log("Anchor unpersisted successfully."); +} + +``` + +### Enumerating Persisted Anchors + +To get a list of all persisted anchors, use the EnumeratePersistedAnchorNames method. + +```csharp + +string[] persistedAnchorNames; +XrResult result = AnchorManager.EnumeratePersistedAnchorNames(out persistedAnchorNames); +if (result == XrResult.XR_SUCCESS) { + foreach (var name in persistedAnchorNames) { + Debug.Log("Persisted anchor: " + name); + } +} + +``` + +### Creating an Anchor from a Persisted Anchor + +To create an anchor from a persisted anchor, use the CreateSpatialAnchorFromPersistedAnchor method. + +```csharp + +AnchorManager.Anchor trackableAnchor; +XrResult result = AnchorManager.CreateSpatialAnchorFromPersistedAnchor(persistedAnchorName, "NewAnchor", out trackableAnchor); +if (result == XrResult.XR_SUCCESS) { + Debug.Log("Anchor created from persisted anchor."); +} + +``` + +## Exporting and Importing Persisted Anchors +### Exporting a Persisted Anchor + +To export a persisted anchor to a buffer, use the ExportPersistedAnchor method. + +```csharp + +Task<(XrResult, string, byte[])> exportTask = AnchorManager.ExportPersistedAnchor(persistedAnchorName); +exportTask.Wait(); +var (exportResult, exportName, buffer) = exportTask.Result; +if (exportResult == XrResult.XR_SUCCESS) { + // Save buffer to a file or use as needed + File.WriteAllBytes("anchor.pa", buffer); +} + +``` + +### Importing a Persisted Anchor + +To import a persisted anchor from a buffer, use the ImportPersistedAnchor method. + +```csharp + +byte[] buffer = File.ReadAllBytes("anchor.pa"); +Task importTask = AnchorManager.ImportPersistedAnchor(buffer); +importTask.Wait(); +if (importTask.Result == XrResult.XR_SUCCESS) { + Debug.Log("Anchor imported successfully."); +} + +``` + +### Clearing Persisted Anchors + +To clear all persisted anchors, use the ClearPersistedAnchors method. + +```csharp + +XrResult result = AnchorManager.ClearPersistedAnchors(); +if (result == XrResult.XR_SUCCESS) { + Debug.Log("All persisted anchors cleared."); +} + +``` + +## Conclusion + +The AnchorManager class simplifies the management of anchors in OpenXR applications. By using the methods provided, you can easily create, persist, and manage anchors, ensuring that spatial data can be maintained across sessions. This document covers the basic operations; for more advanced usage, refer to the OpenXR specification and the implementation details of the AnchorManager class. \ No newline at end of file diff --git a/com.htc.upm.vive.openxr/Runtime/Features/Anchor/Scripts/ViveAnchor.cs b/com.htc.upm.vive.openxr/Runtime/Features/Anchor/Scripts/ViveAnchor.cs index d08f99a..f40bf44 100644 --- a/com.htc.upm.vive.openxr/Runtime/Features/Anchor/Scripts/ViveAnchor.cs +++ b/com.htc.upm.vive.openxr/Runtime/Features/Anchor/Scripts/ViveAnchor.cs @@ -1,4 +1,4 @@ -// Copyright HTC Corporation All Rights Reserved. +// Copyright HTC Corporation All Rights Reserved. // Remove FAKE_DATA if editor or windows is supported. #if UNITY_EDITOR @@ -10,222 +10,666 @@ using System.Runtime.InteropServices; using UnityEngine; using UnityEngine.XR.OpenXR; using UnityEngine.XR.OpenXR.Features; -using VIVE.OpenXR.Feature; #if UNITY_EDITOR using UnityEditor; using UnityEditor.XR.OpenXR.Features; #endif -namespace VIVE.OpenXR.Anchor +namespace VIVE.OpenXR.Feature { + using XrPersistedAnchorCollectionHTC = System.IntPtr; + #if UNITY_EDITOR - [OpenXRFeature(UiName = "VIVE XR Anchor", - Desc = "VIVE's implementaion of the XR_HTC_anchor.", - Company = "HTC", - DocumentationLink = "..\\Documentation", - OpenxrExtensionStrings = kOpenxrExtensionString, - Version = "1.0.0", - BuildTargetGroups = new[] { BuildTargetGroup.Android }, - FeatureId = featureId - )] + [OpenXRFeature(UiName = "VIVE XR Anchor (Beta)", + Desc = "VIVE's implementaion of the XR_HTC_anchor.", + Company = "HTC", + DocumentationLink = "..\\Documentation", + OpenxrExtensionStrings = kOpenxrExtensionString, + Version = "1.0.0", + BuildTargetGroups = new[] { BuildTargetGroup.Android, BuildTargetGroup.Standalone }, + FeatureId = featureId + )] #endif - public class ViveAnchor : OpenXRFeature - { - public const string kOpenxrExtensionString = "XR_HTC_anchor"; - /// - /// The feature id string. This is used to give the feature a well known id for reference. - /// - public const string featureId = "vive.wave.openxr.feature.htcanchor"; - private XrInstance m_XrInstance = 0; - private XrSession session = 0; - private XrSystemId m_XrSystemId = 0; + public class ViveAnchor : OpenXRFeature + { + public const string kOpenxrExtensionString = "XR_HTC_anchor XR_EXT_future XR_HTC_anchor_persistence"; - #region struct, enum, const of this extensions + /// + /// The feature id string. This is used to give the feature a well known id for reference. + /// + public const string featureId = "vive.openxr.feature.htcanchor"; - public struct XrSystemAnchorPropertiesHTC - { - public XrStructureType type; - public System.IntPtr next; - public XrBool32 supportsAnchor; - } + /// + /// Enable or disable the persisted anchor feature. Set it only valid in feature settings. + /// + public bool enablePersistedAnchor = true; + private XrInstance m_XrInstance = 0; + private XrSession session = 0; + private XrSystemId m_XrSystemId = 0; + private bool IsInited = false; + private bool IsPAInited = false; + private bool useFakeData = false; - [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] - public struct XrSpatialAnchorNameHTC - { - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)] - public string name; - } + #region struct, enum, const of this extensions - public struct XrSpatialAnchorCreateInfoHTC - { - public XrStructureType type; - public System.IntPtr next; - public XrSpace space; - public XrPosef poseInSpace; - public XrSpatialAnchorNameHTC name; - } + /// + /// An application can inspect whether the system is capable of anchor functionality by + /// chaining an XrSystemAnchorPropertiesHTC structure to the XrSystemProperties when calling + /// xrGetSystemProperties.The runtime must return XR_ERROR_FEATURE_UNSUPPORTED if + /// XrSystemAnchorPropertiesHTC::supportsAnchor was XR_FALSE. + /// supportsAnchor indicates if current system is capable of anchor functionality. + /// + public struct XrSystemAnchorPropertiesHTC + { + public XrStructureType type; + public System.IntPtr next; + public XrBool32 supportsAnchor; + } - #endregion + /// + /// name is a null-terminated UTF-8 string whose length is less than or equal to XR_MAX_SPATIAL_ANCHOR_NAME_SIZE_HTC. + /// + [StructLayout(LayoutKind.Sequential)] + public struct XrSpatialAnchorNameHTC + { + [MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)] + public byte[] name; - #region delegates and delegate instances - delegate XrResult DelegateXrCreateSpatialAnchorHTC(XrSession session, ref XrSpatialAnchorCreateInfoHTC createInfo, ref XrSpace anchor); - delegate XrResult DelegateXrGetSpatialAnchorNameHTC(XrSpace anchor, ref XrSpatialAnchorNameHTC name); + public XrSpatialAnchorNameHTC(string anchorName) + { + name = new byte[256]; + byte[] utf8Bytes = System.Text.Encoding.UTF8.GetBytes(anchorName); + Array.Copy(utf8Bytes, name, Math.Min(utf8Bytes.Length, 255)); + name[255] = 0; + } - DelegateXrCreateSpatialAnchorHTC XrCreateSpatialAnchorHTC; - DelegateXrGetSpatialAnchorNameHTC XrGetSpatialAnchorNameHTC; - #endregion delegates and delegate instances + public XrSpatialAnchorNameHTC(XrSpatialAnchorNameHTC anchorName) + { + name = new byte[256]; + Array.Copy(anchorName.name, name, 256); + name[255] = 0; + } - #region override functions - /// - protected override IntPtr HookGetInstanceProcAddr(IntPtr func) - { - Debug.Log("ViveAnchor HookGetInstanceProcAddr() "); - return ViveInterceptors.Instance.HookGetInstanceProcAddr(func); - } + public override readonly string ToString() { + if (name == null) + return string.Empty; + return System.Text.Encoding.UTF8.GetString(name).TrimEnd('\0'); + } + } - /// - protected override bool OnInstanceCreate(ulong xrInstance) - { - //Debug.Log("VIVEAnchor OnInstanceCreate() "); - if (!OpenXRRuntime.IsExtensionEnabled(kOpenxrExtensionString)) - { - Debug.LogWarning("ViveAnchor OnInstanceCreate() " + kOpenxrExtensionString + " is NOT enabled."); - return false; - } + public struct XrSpatialAnchorCreateInfoHTC + { + public XrStructureType type; + public System.IntPtr next; + public XrSpace space; + public XrPosef poseInSpace; + public XrSpatialAnchorNameHTC name; + } - m_XrInstance = xrInstance; - //Debug.Log("OnInstanceCreate() " + m_XrInstance); - CommonWrapper.Instance.OnInstanceCreate(xrInstance, xrGetInstanceProcAddr); - SpaceWrapper.Instance.OnInstanceCreate(xrInstance, CommonWrapper.Instance.GetInstanceProcAddr); + public struct XrPersistedAnchorCollectionAcquireInfoHTC + { + public XrStructureType type; + public System.IntPtr next; + } - return GetXrFunctionDelegates(m_XrInstance); - } + public struct XrPersistedAnchorCollectionAcquireCompletionHTC + { + public XrStructureType type; + public System.IntPtr next; + public XrResult futureResult; + public System.IntPtr persistedAnchorCollection; + } - protected override void OnInstanceDestroy(ulong xrInstance) - { - CommonWrapper.Instance.OnInstanceDestroy(); - SpaceWrapper.Instance.OnInstanceDestroy(); - } + public struct XrSpatialAnchorPersistInfoHTC + { + public XrStructureType type; + public System.IntPtr next; + public XrSpace anchor; + public XrSpatialAnchorNameHTC persistedAnchorName; + } - /// - protected override void OnSessionCreate(ulong xrSession) - { - Debug.Log("ViveAnchor OnSessionCreate() "); + public struct XrSpatialAnchorFromPersistedAnchorCreateInfoHTC + { + public XrStructureType type; + public System.IntPtr next; + public System.IntPtr persistedAnchorCollection; + public XrSpatialAnchorNameHTC persistedAnchorName; + public XrSpatialAnchorNameHTC spatialAnchorName; + } - // here's one way you can grab the session - Debug.Log($"EXT: Got xrSession: {xrSession}"); - session = xrSession; - } + public struct XrSpatialAnchorFromPersistedAnchorCreateCompletionHTC + { + public XrStructureType type; + public System.IntPtr next; + public XrResult futureResult; + public XrSpace anchor; + } - /// - protected override void OnSessionBegin(ulong xrSession) - { - Debug.Log("ViveAnchor OnSessionBegin() "); - Debug.Log($"EXT: xrBeginSession: {xrSession}"); - } + public struct XrPersistedAnchorPropertiesGetInfoHTC + { + public XrStructureType type; + public System.IntPtr next; + public uint maxPersistedAnchorCount; + } - /// - protected override void OnSessionEnd(ulong xrSession) - { - Debug.Log("ViveAnchor OnSessionEnd() "); - Debug.Log($"EXT: about to xrEndSession: {xrSession}"); - } + #endregion - // XXX Every millisecond the AppSpace switched from one space to another space. I don't know what is going on. - //private ulong appSpace; - //protected override void OnAppSpaceChange(ulong space) - //{ - // //Debug.Log($"VIVEAnchor OnAppSpaceChange({appSpace} -> {space})"); - // appSpace = space; - //} + #region delegates and delegate instances + public delegate XrResult DelegateXrCreateSpatialAnchorHTC(XrSession session, ref XrSpatialAnchorCreateInfoHTC createInfo, ref XrSpace anchor); + public delegate XrResult DelegateXrGetSpatialAnchorNameHTC(XrSpace anchor, ref XrSpatialAnchorNameHTC name); + public delegate XrResult DelegateXrAcquirePersistedAnchorCollectionAsyncHTC(XrSession session, ref XrPersistedAnchorCollectionAcquireInfoHTC acquireInfo, out IntPtr future); + public delegate XrResult DelegateXrAcquirePersistedAnchorCollectionCompleteHTC(IntPtr future, out XrPersistedAnchorCollectionAcquireCompletionHTC completion); + public delegate XrResult DelegateXrReleasePersistedAnchorCollectionHTC(IntPtr persistedAnchorCollection); + public delegate XrResult DelegateXrPersistSpatialAnchorAsyncHTC(XrPersistedAnchorCollectionHTC persistedAnchorCollection, ref XrSpatialAnchorPersistInfoHTC persistInfo, out IntPtr future); + public delegate XrResult DelegateXrPersistSpatialAnchorCompleteHTC(IntPtr future, out FutureWrapper.XrFutureCompletionEXT completion); + public delegate XrResult DelegateXrUnpersistSpatialAnchorHTC(IntPtr persistedAnchorCollection, ref XrSpatialAnchorNameHTC persistedAnchorName); + public delegate XrResult DelegateXrEnumeratePersistedAnchorNamesHTC( IntPtr persistedAnchorCollection, uint persistedAnchorNameCapacityInput, ref uint persistedAnchorNameCountOutput, [Out] XrSpatialAnchorNameHTC[] persistedAnchorNames); + public delegate XrResult DelegateXrCreateSpatialAnchorFromPersistedAnchorAsyncHTC(XrSession session, ref XrSpatialAnchorFromPersistedAnchorCreateInfoHTC spatialAnchorCreateInfo, out IntPtr future); + public delegate XrResult DelegateXrCreateSpatialAnchorFromPersistedAnchorCompleteHTC(IntPtr future, out XrSpatialAnchorFromPersistedAnchorCreateCompletionHTC completion); + public delegate XrResult DelegateXrClearPersistedAnchorsHTC(IntPtr persistedAnchorCollection); + public delegate XrResult DelegateXrGetPersistedAnchorPropertiesHTC(IntPtr persistedAnchorCollection, ref XrPersistedAnchorPropertiesGetInfoHTC getInfo); + public delegate XrResult DelegateXrExportPersistedAnchorHTC(IntPtr persistedAnchorCollection, ref XrSpatialAnchorNameHTC persistedAnchorName, uint dataCapacityInput, ref uint dataCountOutput, [Out] byte[] data); + public delegate XrResult DelegateXrImportPersistedAnchorHTC(IntPtr persistedAnchorCollection, uint dataCount, [In] byte[] data); + public delegate XrResult DelegateXrGetPersistedAnchorNameFromBufferHTC(IntPtr persistedAnchorCollection, uint bufferCount, byte[] buffer, ref XrSpatialAnchorNameHTC name); - /// - protected override void OnSystemChange(ulong xrSystem) - { - m_XrSystemId = xrSystem; - Debug.Log("ViveAnchor OnSystemChange() " + m_XrSystemId); - } + DelegateXrCreateSpatialAnchorHTC XrCreateSpatialAnchorHTC; + DelegateXrGetSpatialAnchorNameHTC XrGetSpatialAnchorNameHTC; + DelegateXrAcquirePersistedAnchorCollectionAsyncHTC XrAcquirePersistedAnchorCollectionAsyncHTC; + DelegateXrAcquirePersistedAnchorCollectionCompleteHTC XrAcquirePersistedAnchorCollectionCompleteHTC; + DelegateXrReleasePersistedAnchorCollectionHTC XrReleasePersistedAnchorCollectionHTC; + DelegateXrPersistSpatialAnchorAsyncHTC XrPersistSpatialAnchorAsyncHTC; + DelegateXrPersistSpatialAnchorCompleteHTC XrPersistSpatialAnchorCompleteHTC; + DelegateXrUnpersistSpatialAnchorHTC XrUnpersistSpatialAnchorHTC; + DelegateXrEnumeratePersistedAnchorNamesHTC XrEnumeratePersistedAnchorNamesHTC; + DelegateXrCreateSpatialAnchorFromPersistedAnchorAsyncHTC XrCreateSpatialAnchorFromPersistedAnchorAsyncHTC; + DelegateXrCreateSpatialAnchorFromPersistedAnchorCompleteHTC XrCreateSpatialAnchorFromPersistedAnchorCompleteHTC; + DelegateXrClearPersistedAnchorsHTC XrClearPersistedAnchorsHTC; + DelegateXrGetPersistedAnchorPropertiesHTC XrGetPersistedAnchorPropertiesHTC; + DelegateXrExportPersistedAnchorHTC XrExportPersistedAnchorHTC; + DelegateXrImportPersistedAnchorHTC XrImportPersistedAnchorHTC; + DelegateXrGetPersistedAnchorNameFromBufferHTC XrGetPersistedAnchorNameFromBufferHTC; + #endregion delegates and delegate instances - #endregion override functions + #region override functions - private bool GetXrFunctionDelegates(XrInstance xrInstance) - { - Debug.Log("ViveAnchor GetXrFunctionDelegates() "); + protected override IntPtr HookGetInstanceProcAddr(IntPtr func) + { + // For LocateSpace, need WaitFrame's predictedDisplayTime. + ViveInterceptors.Instance.AddRequiredFunction("xrWaitFrame"); + return ViveInterceptors.Instance.HookGetInstanceProcAddr(func); + } - bool ret = true; - IntPtr funcPtr = IntPtr.Zero; - OpenXRHelper.xrGetInstanceProcAddrDelegate GetAddr = CommonWrapper.Instance.GetInstanceProcAddr; // shorter name - ret &= OpenXRHelper.GetXrFunctionDelegate(GetAddr, xrInstance, "xrCreateSpatialAnchorHTC", out XrCreateSpatialAnchorHTC); - ret &= OpenXRHelper.GetXrFunctionDelegate(GetAddr, xrInstance, "xrGetSpatialAnchorNameHTC", out XrGetSpatialAnchorNameHTC); + /// + protected override bool OnInstanceCreate(ulong xrInstance) + { +#if FAKE_DATA + Debug.LogError("ViveAnchor OnInstanceCreate() Use FakeData"); + useFakeData = true; +#endif + IsInited = false; + bool ret = true; + ret &= CommonWrapper.Instance.OnInstanceCreate(xrInstance, xrGetInstanceProcAddr); + ret &= SpaceWrapper.Instance.OnInstanceCreate(xrInstance, xrGetInstanceProcAddr); - return ret; - } + if (!ret) + { + Debug.LogError("ViveAnchor OnInstanceCreate() failed."); + return false; + } - #region functions of extension - /// - /// Helper function to get this feature' properties. - /// See xrGetSystemProperties - /// - public XrResult GetProperties(out XrSystemAnchorPropertiesHTC anchorProperties) - { - anchorProperties = new XrSystemAnchorPropertiesHTC(); - anchorProperties.type = XrStructureType.XR_TYPE_SYSTEM_ANCHOR_PROPERTIES_HTC; + //Debug.Log("VIVEAnchor OnInstanceCreate() "); + if (!OpenXRRuntime.IsExtensionEnabled("XR_HTC_anchor") && !useFakeData) + { + Debug.LogWarning("ViveAnchor OnInstanceCreate() XR_HTC_anchor is NOT enabled."); + return false; + } + + IsInited = GetXrFunctionDelegates(xrInstance); + + if (!IsInited) + { + Debug.LogError("ViveAnchor OnInstanceCreate() failed to get function delegates."); + return false; + } + + m_XrInstance = xrInstance; + + bool hasFuture = FutureWrapper.Instance.OnInstanceCreate(xrInstance, xrGetInstanceProcAddr); + // No error log because future will print. +#if FAKE_DATA + hasFuture = true; +#endif + IsPAInited = false; + bool hasPersistedAnchor = false; + do + { + if (!hasFuture) + { + Debug.LogWarning("ViveAnchor OnInstanceCreate() XR_HTC_anchor_persistence is NOT enabled because no XR_EXT_future."); + hasPersistedAnchor = false; + break; + } + + hasPersistedAnchor = enablePersistedAnchor && OpenXRRuntime.IsExtensionEnabled("XR_HTC_anchor_persistence"); +#if FAKE_DATA + hasPersistedAnchor = enablePersistedAnchor; +#endif + } while(false); + + //Debug.Log("OnInstanceCreate() " + m_XrInstance); + if (hasPersistedAnchor) + IsPAInited = GetXrFunctionDelegatesPersistance(xrInstance); + if (!IsPAInited) + Debug.LogWarning("ViveAnchor OnInstanceCreate() XR_HTC_anchor_persistence is NOT enabled."); + + return IsInited; + } + + protected override void OnInstanceDestroy(ulong xrInstance) + { + m_XrInstance = 0; + + IsInited = false; + IsPAInited = false; + + CommonWrapper.Instance.OnInstanceDestroy(); + SpaceWrapper.Instance.OnInstanceDestroy(); + FutureWrapper.Instance.OnInstanceDestroy(); + Debug.Log("ViveAnchor: OnInstanceDestroy()"); + } + + /// + protected override void OnSessionCreate(ulong xrSession) + { + //Debug.Log("ViveAnchor OnSessionCreate() "); + session = xrSession; + } + + /// + protected override void OnSessionDestroy(ulong xrSession) + { + //Debug.Log("ViveAnchor OnSessionDestroy() "); + session = 0; + } + + // XXX Every millisecond the AppSpace switched from one space to another space. I don't know what is going on. + //private ulong appSpace; + //protected override void OnAppSpaceChange(ulong space) + //{ + // //Debug.Log($"VIVEAnchor OnAppSpaceChange({appSpace} -> {space})"); + // appSpace = space; + //} + + /// + protected override void OnSystemChange(ulong xrSystem) + { + m_XrSystemId = xrSystem; + //Debug.Log("ViveAnchor OnSystemChange() " + m_XrSystemId); + } + + #endregion override functions + + private bool GetXrFunctionDelegates(XrInstance inst) + { + Debug.Log("ViveAnchor GetXrFunctionDelegates() "); + + bool ret = true; + OpenXRHelper.xrGetInstanceProcAddrDelegate GetAddr = CommonWrapper.Instance.GetInstanceProcAddr; // shorter name + ret &= OpenXRHelper.GetXrFunctionDelegate(GetAddr, inst, "xrCreateSpatialAnchorHTC", out XrCreateSpatialAnchorHTC); + ret &= OpenXRHelper.GetXrFunctionDelegate(GetAddr, inst, "xrGetSpatialAnchorNameHTC", out XrGetSpatialAnchorNameHTC); + + return ret; + } + + private bool GetXrFunctionDelegatesPersistance(XrInstance inst) + { + Debug.Log("ViveAnchor GetXrFunctionDelegatesPersistance() "); + bool ret = true; + OpenXRHelper.xrGetInstanceProcAddrDelegate GetAddr = CommonWrapper.Instance.GetInstanceProcAddr; // shorter name + ret &= OpenXRHelper.GetXrFunctionDelegate(GetAddr, inst, "xrAcquirePersistedAnchorCollectionAsyncHTC", out XrAcquirePersistedAnchorCollectionAsyncHTC); + ret &= OpenXRHelper.GetXrFunctionDelegate(GetAddr, inst, "xrAcquirePersistedAnchorCollectionCompleteHTC", out XrAcquirePersistedAnchorCollectionCompleteHTC); + ret &= OpenXRHelper.GetXrFunctionDelegate(GetAddr, inst, "xrReleasePersistedAnchorCollectionHTC", out XrReleasePersistedAnchorCollectionHTC); + ret &= OpenXRHelper.GetXrFunctionDelegate(GetAddr, inst, "xrPersistSpatialAnchorAsyncHTC", out XrPersistSpatialAnchorAsyncHTC); + ret &= OpenXRHelper.GetXrFunctionDelegate(GetAddr, inst, "xrPersistSpatialAnchorCompleteHTC", out XrPersistSpatialAnchorCompleteHTC); + ret &= OpenXRHelper.GetXrFunctionDelegate(GetAddr, inst, "xrUnpersistSpatialAnchorHTC", out XrUnpersistSpatialAnchorHTC); + ret &= OpenXRHelper.GetXrFunctionDelegate(GetAddr, inst, "xrEnumeratePersistedAnchorNamesHTC", out XrEnumeratePersistedAnchorNamesHTC); + ret &= OpenXRHelper.GetXrFunctionDelegate(GetAddr, inst, "xrCreateSpatialAnchorFromPersistedAnchorAsyncHTC", out XrCreateSpatialAnchorFromPersistedAnchorAsyncHTC); + ret &= OpenXRHelper.GetXrFunctionDelegate(GetAddr, inst, "xrCreateSpatialAnchorFromPersistedAnchorCompleteHTC", out XrCreateSpatialAnchorFromPersistedAnchorCompleteHTC); + ret &= OpenXRHelper.GetXrFunctionDelegate(GetAddr, inst, "xrClearPersistedAnchorsHTC", out XrClearPersistedAnchorsHTC); + ret &= OpenXRHelper.GetXrFunctionDelegate(GetAddr, inst, "xrGetPersistedAnchorPropertiesHTC", out XrGetPersistedAnchorPropertiesHTC); + ret &= OpenXRHelper.GetXrFunctionDelegate(GetAddr, inst, "xrExportPersistedAnchorHTC", out XrExportPersistedAnchorHTC); + ret &= OpenXRHelper.GetXrFunctionDelegate(GetAddr, inst, "xrImportPersistedAnchorHTC", out XrImportPersistedAnchorHTC); + ret &= OpenXRHelper.GetXrFunctionDelegate(GetAddr, inst, "xrGetPersistedAnchorNameFromBufferHTC", out XrGetPersistedAnchorNameFromBufferHTC); + + return ret; + } + + #region functions of extension + /// + /// Helper function to get this feature's properties. + /// See xrGetSystemProperties + /// + /// Output parameter to hold anchor properties. + /// XrResult indicating success or failure. + public XrResult GetProperties(out XrSystemAnchorPropertiesHTC anchorProperties) + { + anchorProperties = new XrSystemAnchorPropertiesHTC(); + anchorProperties.type = XrStructureType.XR_TYPE_SYSTEM_ANCHOR_PROPERTIES_HTC; #if FAKE_DATA - if (Application.isEditor) - { - anchorProperties.type = XrStructureType.XR_TYPE_SYSTEM_ANCHOR_PROPERTIES_HTC; - anchorProperties.supportsAnchor = true; - return XrResult.XR_SUCCESS; - } + if (Application.isEditor) + { + anchorProperties.type = XrStructureType.XR_TYPE_SYSTEM_ANCHOR_PROPERTIES_HTC; + anchorProperties.supportsAnchor = true; + return XrResult.XR_SUCCESS; + } #endif - return CommonWrapper.Instance.GetProperties(m_XrInstance, m_XrSystemId, ref anchorProperties); - } + return CommonWrapper.Instance.GetProperties(m_XrInstance, m_XrSystemId, ref anchorProperties); + } - public XrResult CreateSpatialAnchor(XrSpatialAnchorCreateInfoHTC createInfo, out XrSpace anchor) - { - anchor = default; -#if FAKE_DATA - if (Application.isEditor) - return XrResult.XR_SUCCESS; -#endif - var ret = XrCreateSpatialAnchorHTC(session, ref createInfo, ref anchor); - Debug.Log("ViveAnchor CreateSpatialAnchor() r=" + ret + ", a=" + anchor + ", bs=" + createInfo.space + - ", pos=(" + createInfo.poseInSpace.position.x + "," + createInfo.poseInSpace.position.y + "," + createInfo.poseInSpace.position.z + - "), rot=(" + createInfo.poseInSpace.orientation.x + "," + createInfo.poseInSpace.orientation.y + "," + createInfo.poseInSpace.orientation.z + "," + createInfo.poseInSpace.orientation.w + - "), n=" + createInfo.name.name); - return ret; - } + /// + /// The CreateSpatialAnchor function creates a spatial anchor with specified base space and pose in the space. + /// The anchor is represented by an XrSpace and its pose can be tracked via xrLocateSpace. + /// Once the anchor is no longer needed, call xrDestroySpace to erase the anchor. + /// + /// Information required to create the spatial anchor. + /// Output parameter to hold the created anchor. + /// XrResult indicating success or failure. + public XrResult CreateSpatialAnchor(XrSpatialAnchorCreateInfoHTC createInfo, out XrSpace anchor) + { + anchor = default; + if (!IsInited) + return XrResult.XR_ERROR_EXTENSION_NOT_PRESENT; + if (session == 0) + return XrResult.XR_ERROR_SESSION_LOST; - public XrResult GetSpatialAnchorName(XrSpace anchor, out XrSpatialAnchorNameHTC name) - { - name = default; -#if FAKE_DATA - if (Application.isEditor) - { - name.name = "fake anchor"; - return XrResult.XR_SUCCESS; - } -#endif - return XrGetSpatialAnchorNameHTC(anchor, ref name); - } + var ret = XrCreateSpatialAnchorHTC(session, ref createInfo, ref anchor); + //Debug.Log("ViveAnchor CreateSpatialAnchor() r=" + ret + ", a=" + anchor + ", bs=" + createInfo.space + + // ", pos=(" + createInfo.poseInSpace.position.x + "," + createInfo.poseInSpace.position.y + "," + createInfo.poseInSpace.position.z + + // "), rot=(" + createInfo.poseInSpace.orientation.x + "," + createInfo.poseInSpace.orientation.y + "," + createInfo.poseInSpace.orientation.z + "," + createInfo.poseInSpace.orientation.w + + // "), n=" + createInfo.name.name); + return ret; + } - #endregion + /// + /// The GetSpatialAnchorName function retrieves the name of the spatial anchor. + /// + /// The XrSpace representing the anchor. + /// Output parameter to hold the name of the anchor. + /// XrResult indicating success or failure. + public XrResult GetSpatialAnchorName(XrSpace anchor, out XrSpatialAnchorNameHTC name) + { + name = new XrSpatialAnchorNameHTC(); + if (!IsInited) + return XrResult.XR_ERROR_EXTENSION_NOT_PRESENT; + return XrGetSpatialAnchorNameHTC(anchor, ref name); + } - #region tools for user + /// + /// If the extension is supported and enabled, return true. + /// + /// True if persisted anchor extension is supported, false otherwise. + public bool IsPersistedAnchorSupported() + { + return IsPAInited; + } - /// - /// According to XRInputSubsystem's tracking origin mode, return the corresponding XrSpace. - /// - /// - public XrSpace GetTrackingSpace() - { - var s = GetCurrentAppSpace(); - Debug.Log("ViveAnchor GetTrackingSpace() s=" + s); - return s; - } - #endregion - } -} \ No newline at end of file + /// + /// Creates a persisted anchor collection. This collection can be used to persist spatial anchors across sessions. + /// Many persisted anchor APIs need a persisted anchor collection to operate. + /// + /// Output the async future handle. Check the future to get the PersitedAnchorCollection handle. + /// XrResult indicating success or failure. + public XrResult AcquirePersistedAnchorCollectionAsync(out IntPtr future) + { + future = IntPtr.Zero; + if (!IsPAInited) + return XrResult.XR_ERROR_EXTENSION_NOT_PRESENT; + if (session == 0) + return XrResult.XR_ERROR_SESSION_LOST; + + XrPersistedAnchorCollectionAcquireInfoHTC acquireInfo = new XrPersistedAnchorCollectionAcquireInfoHTC + { + type = XrStructureType.XR_TYPE_PERSISTED_ANCHOR_COLLECTION_ACQUIRE_INFO_HTC, + next = IntPtr.Zero, + }; + + return XrAcquirePersistedAnchorCollectionAsyncHTC(session, ref acquireInfo, out future); + } + + public XrResult AcquirePersistedAnchorCollectionComplete(IntPtr future, out XrPersistedAnchorCollectionAcquireCompletionHTC completion) + { + completion = new XrPersistedAnchorCollectionAcquireCompletionHTC(); + if (!IsPAInited) + return XrResult.XR_ERROR_EXTENSION_NOT_PRESENT; + + return XrAcquirePersistedAnchorCollectionCompleteHTC(future, out completion); + } + + + + /// + /// Destroys the persisted anchor collection. + /// + /// The persisted anchor collection to be destroyed. + /// XrResult indicating success or failure. + public XrResult ReleasePersistedAnchorCollection(IntPtr persistedAnchorCollection) + { + if (!IsPAInited) + return XrResult.XR_ERROR_EXTENSION_NOT_PRESENT; + + return XrReleasePersistedAnchorCollectionHTC(persistedAnchorCollection); + } + + /// + /// Persists a spatial anchor with the given name. The name should be unique. + /// + /// The persisted anchor collection to operate. + /// The spatial anchor to be persisted. + /// The name of the persisted anchor. + /// XrResult indicating success or failure. + public XrResult PersistSpatialAnchorAsync(IntPtr persistedAnchorCollection, XrSpace anchor, XrSpatialAnchorNameHTC name, out IntPtr future) + { + future = IntPtr.Zero; + if (!IsPAInited) + return XrResult.XR_ERROR_EXTENSION_NOT_PRESENT; + + XrSpatialAnchorPersistInfoHTC persistInfo = new XrSpatialAnchorPersistInfoHTC + { + type = XrStructureType.XR_TYPE_SPATIAL_ANCHOR_PERSIST_INFO_HTC, + anchor = anchor, + persistedAnchorName = name + }; + return XrPersistSpatialAnchorAsyncHTC(persistedAnchorCollection, ref persistInfo, out future); + } + + public XrResult PersistSpatialAnchorComplete(IntPtr future, out FutureWrapper.XrFutureCompletionEXT completion) + { + completion = new FutureWrapper.XrFutureCompletionEXT() { + type = XrStructureType.XR_TYPE_FUTURE_COMPLETION_EXT, + next = IntPtr.Zero, + futureResult = XrResult.XR_SUCCESS + }; + if (!IsPAInited) + return XrResult.XR_ERROR_EXTENSION_NOT_PRESENT; + + return XrPersistSpatialAnchorCompleteHTC(future, out completion); + } + + /// + /// Unpersists the anchor with the given name. + /// + /// The persisted anchor collection to operate. + /// The name of the anchor to be unpersisted. + /// XrResult indicating success or failure. + public XrResult UnpersistSpatialAnchor(IntPtr persistedAnchorCollection, XrSpatialAnchorNameHTC name) + { + if (!IsPAInited) + return XrResult.XR_ERROR_EXTENSION_NOT_PRESENT; + + return XrUnpersistSpatialAnchorHTC(persistedAnchorCollection, ref name); + } + + /// + /// Enumerates all persisted anchor names. + /// + /// The persisted anchor collection to operate. + /// The capacity of the input buffer. + /// Output parameter to hold the count of persisted anchor names. + /// Output parameter to hold the names of persisted anchors. + /// XrResult indicating success or failure. + public XrResult EnumeratePersistedAnchorNames(IntPtr persistedAnchorCollection, uint persistedAnchorNameCapacityInput, + ref uint persistedAnchorNameCountOutput, ref XrSpatialAnchorNameHTC[] persistedAnchorNames) + { + if (!IsPAInited) + return XrResult.XR_ERROR_EXTENSION_NOT_PRESENT; + + return XrEnumeratePersistedAnchorNamesHTC(persistedAnchorCollection, persistedAnchorNameCapacityInput, ref persistedAnchorNameCountOutput, persistedAnchorNames); + } + + /// + /// Creates a spatial anchor from a persisted anchor. + /// + /// Information required to create the spatial anchor from persisted anchor. + /// Output parameter to hold the created spatial anchor. + /// XrResult indicating success or failure. + public XrResult CreateSpatialAnchorFromPersistedAnchorAsync(XrSpatialAnchorFromPersistedAnchorCreateInfoHTC spatialAnchorCreateInfo, out IntPtr future) + { + future = IntPtr.Zero; + if (!IsPAInited) + return XrResult.XR_ERROR_EXTENSION_NOT_PRESENT; + if (session == 0) + return XrResult.XR_ERROR_SESSION_LOST; + return XrCreateSpatialAnchorFromPersistedAnchorAsyncHTC(session, ref spatialAnchorCreateInfo, out future); + } + + /// + /// When the future is ready, call this function to get the result. + /// + /// + /// + /// + public XrResult CreateSpatialAnchorFromPersistedAnchorComplete(IntPtr future, out XrSpatialAnchorFromPersistedAnchorCreateCompletionHTC completion) + { + completion = new XrSpatialAnchorFromPersistedAnchorCreateCompletionHTC() + { + type = XrStructureType.XR_TYPE_SPATIAL_ANCHOR_FROM_PERSISTED_ANCHOR_CREATE_COMPLETION_HTC, + next = IntPtr.Zero, + futureResult = XrResult.XR_SUCCESS, + anchor = 0 + }; + + if (!IsPAInited) + return XrResult.XR_ERROR_EXTENSION_NOT_PRESENT; + return XrCreateSpatialAnchorFromPersistedAnchorCompleteHTC(future, out completion); + } + + /// + /// Clears all persisted anchors. + /// + /// The persisted anchor collection to operate. + /// XrResult indicating success or failure. + public XrResult ClearPersistedAnchors(IntPtr persistedAnchorCollection) + { + if (!IsPAInited) + return XrResult.XR_ERROR_EXTENSION_NOT_PRESENT; + return XrClearPersistedAnchorsHTC(persistedAnchorCollection); + } + + /// + /// Gets the properties of the persisted anchor. + /// + /// The persisted anchor collection to operate. + /// Output parameter to hold the properties of the persisted anchor. + /// XrResult indicating success or failure. + public XrResult GetPersistedAnchorProperties(IntPtr persistedAnchorCollection, out XrPersistedAnchorPropertiesGetInfoHTC getInfo) + { + getInfo = new XrPersistedAnchorPropertiesGetInfoHTC + { + type = XrStructureType.XR_TYPE_PERSISTED_ANCHOR_PROPERTIES_GET_INFO_HTC + }; + if (!IsPAInited) + return XrResult.XR_ERROR_EXTENSION_NOT_PRESENT; + return XrGetPersistedAnchorPropertiesHTC(persistedAnchorCollection, ref getInfo); + } + + /// + /// Exports the persisted anchor to a buffer. The buffer can be used to import the anchor later or save to a file. + /// + /// The persisted anchor collection to operate. + /// The name of the persisted anchor to be exported. + /// Output parameter to hold the buffer containing the exported anchor. + /// XrResult indicating success or failure. + public XrResult ExportPersistedAnchor(IntPtr persistedAnchorCollection, XrSpatialAnchorNameHTC persistedAnchorName, out byte[] data) + { + data = null; + if (!IsPAInited) + return XrResult.XR_ERROR_EXTENSION_NOT_PRESENT; + uint dataCountOutput = 0; + uint dataCapacityInput = 0; + XrResult ret = XrExportPersistedAnchorHTC(persistedAnchorCollection, ref persistedAnchorName, dataCapacityInput, ref dataCountOutput, null); + if (ret != XrResult.XR_SUCCESS) + { + Debug.LogError("ExportPersistedAnchor failed to get data size. ret=" + ret); + data = null; + return ret; + } + + dataCapacityInput = dataCountOutput; + data = new byte[dataCountOutput]; + ret = XrExportPersistedAnchorHTC(persistedAnchorCollection, ref persistedAnchorName, dataCapacityInput, ref dataCountOutput, data); + return ret; + } + + /// + /// Imports the persisted anchor from a buffer. The buffer should be created by ExportPersistedAnchor. + /// + /// The persisted anchor collection to operate. + /// The buffer containing the persisted anchor data. + /// XrResult indicating success or failure. + public XrResult ImportPersistedAnchor(IntPtr persistedAnchorCollection, byte[] data) + { + if (!IsPAInited) + return XrResult.XR_ERROR_EXTENSION_NOT_PRESENT; + + return XrImportPersistedAnchorHTC(persistedAnchorCollection, (uint)data.Length, data); + } + + /// + /// Gets the name of the persisted anchor from a buffer. The buffer should be created by ExportPersistedAnchor. + /// + /// + /// + /// + /// + public XrResult GetPersistedAnchorNameFromBuffer(IntPtr persistedAnchorCollection, byte[] buffer, out XrSpatialAnchorNameHTC name) + { + name = new XrSpatialAnchorNameHTC(); + if (!IsPAInited) + return XrResult.XR_ERROR_EXTENSION_NOT_PRESENT; + + if (buffer == null) + return XrResult.XR_ERROR_VALIDATION_FAILURE; + + return XrGetPersistedAnchorNameFromBufferHTC(persistedAnchorCollection, (uint)buffer.Length, buffer, ref name); + } + + #endregion + + #region tools for user + + /// + /// According to XRInputSubsystem's tracking origin mode, return the corresponding XrSpace. + /// + /// + public XrSpace GetTrackingSpace() + { + var s = GetCurrentAppSpace(); + //Debug.Log("ViveAnchor GetTrackingSpace() s=" + s); + return s; + } + #endregion + } +} diff --git a/com.htc.upm.vive.openxr/Runtime/Features/CompositionLayer/Scripts/ViveCompositionLayerExtraSettings.cs b/com.htc.upm.vive.openxr/Runtime/Features/CompositionLayer/Scripts/ViveCompositionLayerExtraSettings.cs new file mode 100644 index 0000000..48f81fa --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Features/CompositionLayer/Scripts/ViveCompositionLayerExtraSettings.cs @@ -0,0 +1,203 @@ +// Copyright HTC Corporation All Rights Reserved. + +using UnityEditor; +using UnityEngine.XR.OpenXR; +using UnityEngine.XR.OpenXR.Features; +using UnityEngine; +using System; +using System.Runtime.InteropServices; + +#if UNITY_EDITOR +using UnityEditor.XR.OpenXR.Features; +#endif + +namespace VIVE.OpenXR.CompositionLayer +{ +#if UNITY_EDITOR + [OpenXRFeature(UiName = "VIVE XR Composition Layer (Extra Settings) (Beta)", + Desc = "Enable this feature to use the Composition Layer Extra Settings.", + Company = "HTC", + DocumentationLink = "..\\Documentation", + OpenxrExtensionStrings = kOpenxrExtensionStrings, + Version = "1.0.0", + BuildTargetGroups = new[] { BuildTargetGroup.Android }, + FeatureId = featureId + )] +#endif + public class ViveCompositionLayerExtraSettings : OpenXRFeature + { + const string LOG_TAG = "VIVE.OpenXR.ViveCompositionLayer.ExtraSettings"; + static void DEBUG(string msg) { Debug.Log(LOG_TAG + " " + msg); } + static void WARNING(string msg) { Debug.LogWarning(LOG_TAG + " " + msg); } + static void ERROR(string msg) { Debug.LogError(LOG_TAG + " " + msg); } + + /// + /// Settings Editor Enable Sharpening or Not. + /// + public bool SettingsEditorEnableSharpening = false; + + /// + /// Support Sharpening or Not. + /// + public bool supportSharpening = false; + + /// + /// Settings Editor Sharpening Mode + /// + public XrSharpeningModeHTC SettingsEditorSharpeningMode = XrSharpeningModeHTC.FAST; + + /// + /// Settings Editor Sharpening Levell + /// + [Range(0.0f, 1.0f)] + public float SettingsEditorSharpeningLevel = 1.0f; + + /// + /// The feature id string. This is used to give the feature a well known id for reference. + /// + public const string featureId = "vive.openxr.feature.compositionlayer.extrasettings"; + + /// + /// OpenXR specification. + /// + public const string kOpenxrExtensionStrings = "XR_HTC_composition_layer_extra_settings"; + + #region OpenXR Life Cycle + private bool m_XrInstanceCreated = false; + /// + /// The XR instance is created or not. + /// + public bool XrInstanceCreated + { + get { return m_XrInstanceCreated; } + } + private XrInstance m_XrInstance = 0; + protected override bool OnInstanceCreate(ulong xrInstance) + { + foreach (string kOpenxrExtensionString in kOpenxrExtensionStrings.Split(' ')) + { + if (!OpenXRRuntime.IsExtensionEnabled(kOpenxrExtensionString)) + { + WARNING("OnInstanceCreate() " + kOpenxrExtensionString + " is NOT enabled."); + } + } + + m_XrInstanceCreated = true; + m_XrInstance = xrInstance; + DEBUG("OnInstanceCreate() " + m_XrInstance); + + return true; + } + + protected override void OnInstanceDestroy(ulong xrInstance) + { + m_XrInstanceCreated = false; + DEBUG("OnInstanceDestroy() " + m_XrInstance); + } + + private XrSystemId m_XrSystemId = 0; + protected override void OnSystemChange(ulong xrSystem) + { + m_XrSystemId = xrSystem; + DEBUG("OnSystemChange() " + m_XrSystemId); + } + + private bool m_XrSessionCreated = false; + /// + /// The XR session is created or not. + /// + public bool XrSessionCreated + { + get { return m_XrSessionCreated; } + } + private XrSession m_XrSession = 0; + protected override void OnSessionCreate(ulong xrSession) + { + m_XrSession = xrSession; + m_XrSessionCreated = true; + DEBUG("OnSessionCreate() " + m_XrSession); + } + + private bool m_XrSessionEnding = false; + /// + /// The XR session is ending or not. + /// + public bool XrSessionEnding + { + get { return m_XrSessionEnding; } + } + + protected override void OnSessionBegin(ulong xrSession) + { + m_XrSessionEnding = false; + DEBUG("OnSessionBegin() " + m_XrSession); + + //enable Sharpening + if (OpenXRRuntime.IsExtensionEnabled("XR_HTC_composition_layer_extra_settings")) + { + ViveCompositionLayer_UpdateSystemProperties(m_XrInstance, m_XrSystemId); + supportSharpening = ViveCompositionLayer_IsSupportSharpening(); + if (supportSharpening && SettingsEditorEnableSharpening) + { + EnableSharpening(SettingsEditorSharpeningMode, SettingsEditorSharpeningLevel); + } + } + } + + protected override void OnSessionEnd(ulong xrSession) + { + m_XrSessionEnding = true; + DEBUG("OnSessionEnd() " + m_XrSession); + } + + protected override void OnSessionDestroy(ulong xrSession) + { + m_XrSessionCreated = false; + DEBUG("OnSessionDestroy() " + xrSession); + } + + #endregion + + #region Wrapper Functions + private const string ExtLib = "viveopenxr"; + + [DllImportAttribute(ExtLib, EntryPoint = "viveCompositionLayer_UpdateSystemProperties")] + private static extern int VIVEOpenXR_ViveCompositionLayer_UpdateSystemProperties(XrInstance instance, XrSystemId system_id); + private int ViveCompositionLayer_UpdateSystemProperties(XrInstance instance, XrSystemId system_id) + { + return VIVEOpenXR_ViveCompositionLayer_UpdateSystemProperties(instance, system_id); + } + + [DllImportAttribute(ExtLib, EntryPoint = "viveCompositionLayer_IsSupportSharpening")] + private static extern bool VIVEOpenXR_ViveCompositionLayer_IsSupportSharpening(); + private bool ViveCompositionLayer_IsSupportSharpening() + { + return VIVEOpenXR_ViveCompositionLayer_IsSupportSharpening(); + } + + [DllImportAttribute(ExtLib, EntryPoint = "viveCompositionLayer_enableSharpening")] + private static extern int VIVEOpenXR_ViveCompositionLayer_enableSharpening(XrSharpeningModeHTC sharpeningMode, float sharpeningLevel); + /// + /// Enable the sharpening setting applying to the projection layer. + /// + /// The sharpening mode in . + /// The sharpening level in float [0, 1]. + /// True for success. + public bool EnableSharpening(XrSharpeningModeHTC sharpeningMode, float sharpeningLevel) + { + return (VIVEOpenXR_ViveCompositionLayer_enableSharpening(sharpeningMode, sharpeningLevel) == 0); + } + + [DllImportAttribute(ExtLib, EntryPoint = "viveCompositionLayer_disableSharpening")] + private static extern int VIVEOpenXR_ViveCompositionLayer_DisableSharpening(); + /// + /// Disable the sharpening setting on the projection layer. + /// + /// True for success + public bool DisableSharpening() + { + return (VIVEOpenXR_ViveCompositionLayer_DisableSharpening() == 0); + } + #endregion + } +} \ No newline at end of file diff --git a/com.htc.upm.vive.openxr/Runtime/Features/CompositionLayer/Scripts/ViveCompositionLayerExtraSettings.cs.meta b/com.htc.upm.vive.openxr/Runtime/Features/CompositionLayer/Scripts/ViveCompositionLayerExtraSettings.cs.meta new file mode 100644 index 0000000..087628a --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Features/CompositionLayer/Scripts/ViveCompositionLayerExtraSettings.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f26de592e4135874baf6e64cc94183be +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Features/CompositionLayer/Scripts/ViveCompositionLayerHelper.cs b/com.htc.upm.vive.openxr/Runtime/Features/CompositionLayer/Scripts/ViveCompositionLayerHelper.cs index 65bae53..d6efd44 100644 --- a/com.htc.upm.vive.openxr/Runtime/Features/CompositionLayer/Scripts/ViveCompositionLayerHelper.cs +++ b/com.htc.upm.vive.openxr/Runtime/Features/CompositionLayer/Scripts/ViveCompositionLayerHelper.cs @@ -1,4 +1,4 @@ -// Copyright HTC Corporation All Rights Reserved. +// Copyright HTC Corporation All Rights Reserved. using System; using System.Collections.Generic; @@ -67,65 +67,6 @@ namespace VIVE.OpenXR.CompositionLayer } } - public struct XrCompositionLayerFlags : IEquatable - { - private readonly UInt64 value; - - public XrCompositionLayerFlags(UInt64 u) - { - value = u; - } - - public static implicit operator UInt64(XrCompositionLayerFlags xrBool) - { - return xrBool.value; - } - public static implicit operator XrCompositionLayerFlags(UInt64 u) - { - return new XrCompositionLayerFlags(u); - } - - public bool Equals(XrCompositionLayerFlags other) - { - return value == other.value; - } - public bool Equals(UInt64 other) - { - return value == other; - } - public override bool Equals(object obj) - { - return obj is XrCompositionLayerFlags && Equals((XrCompositionLayerFlags)obj); - } - - public override int GetHashCode() - { - return value.GetHashCode(); - } - - public override string ToString() - { - return value.ToString(); - } - - public static bool operator ==(XrCompositionLayerFlags a, XrCompositionLayerFlags b) { return a.Equals(b); } - public static bool operator !=(XrCompositionLayerFlags a, XrCompositionLayerFlags b) { return !a.Equals(b); } - public static bool operator >=(XrCompositionLayerFlags a, XrCompositionLayerFlags b) { return a.value >= b.value; } - public static bool operator <=(XrCompositionLayerFlags a, XrCompositionLayerFlags b) { return a.value <= b.value; } - public static bool operator >(XrCompositionLayerFlags a, XrCompositionLayerFlags b) { return a.value > b.value; } - public static bool operator <(XrCompositionLayerFlags a, XrCompositionLayerFlags b) { return a.value < b.value; } - public static XrCompositionLayerFlags operator +(XrCompositionLayerFlags a, XrCompositionLayerFlags b) { return a.value + b.value; } - public static XrCompositionLayerFlags operator -(XrCompositionLayerFlags a, XrCompositionLayerFlags b) { return a.value - b.value; } - public static XrCompositionLayerFlags operator *(XrCompositionLayerFlags a, XrCompositionLayerFlags b) { return a.value * b.value; } - public static XrCompositionLayerFlags operator /(XrCompositionLayerFlags a, XrCompositionLayerFlags b) - { - if (b.value == 0) - { - throw new DivideByZeroException(); - } - return a.value / b.value; - } - } public struct XrSwapchainCreateFlags : IEquatable { @@ -288,6 +229,36 @@ namespace VIVE.OpenXR.CompositionLayer public XrColor4f colorScale; public XrColor4f colorBias; } + [StructLayout(LayoutKind.Sequential)] + public struct XrCompositionLayerSharpeningSettingHTC + { + public XrStructureType type; + public IntPtr next; + public XrSharpeningModeHTC mode; + public float sharpeningLevel; + } + [StructLayout(LayoutKind.Sequential)] + public struct XrCompositionLayerSuperSamplingSettingHTC + { + public XrStructureType type; + public IntPtr next; + public XrSuperSamplingModeHTC mode; + } + public enum XrSharpeningModeHTC + { + FAST = 0, + NORMAL = 1, + QUALITY = 2, + AUTOMATIC = 3, + } + public enum XrSuperSamplingModeHTC + { + FAST = 0, + NORMAL = 1, + QUALITY = 2, + AUTOMATIC = 3, + } + public enum GraphicsAPI { GLES3 = 1, @@ -410,29 +381,6 @@ namespace VIVE.OpenXR.CompositionLayer } }; /// - /// The XrCompositionLayerBaseHeader structure is not intended to be directly used, but forms a basis for defining current and future structures containing composition layer information. The XrFrameEndInfo structure contains an array of pointers to these polymorphic header structures. - /// - [StructLayout(LayoutKind.Sequential)] - public struct XrCompositionLayerBaseHeader - { - /// - /// The XrStructureType of this structure. - /// - public XrStructureType type; - /// - /// Next is NULL or a pointer to the next structure in a structure chain, such as XrPassthroughMeshTransformInfoHTC. - /// - public IntPtr next; - /// - /// A bitmask of XrCompositionLayerFlagBits describing flags to apply to the layer. - /// - public XrCompositionLayerFlags layerFlags; - /// - /// The XrSpace in which the layer will be kept stable over time. - /// - public XrSpace space; - }; - /// /// The application can specify the XrPassthroughColorHTC to adjust the alpha value of the passthrough. The range is between 0.0f and 1.0f, 1.0f means opaque. /// [StructLayout(LayoutKind.Sequential)] diff --git a/com.htc.upm.vive.openxr/Runtime/Features/CompositionLayer/Scripts/ViveCompositionLayerPassthrough.cs b/com.htc.upm.vive.openxr/Runtime/Features/CompositionLayer/Scripts/ViveCompositionLayerPassthrough.cs index 5da2140..4fafbfc 100644 --- a/com.htc.upm.vive.openxr/Runtime/Features/CompositionLayer/Scripts/ViveCompositionLayerPassthrough.cs +++ b/com.htc.upm.vive.openxr/Runtime/Features/CompositionLayer/Scripts/ViveCompositionLayerPassthrough.cs @@ -18,7 +18,7 @@ using UnityEditor.XR.OpenXR.Features; namespace VIVE.OpenXR.CompositionLayer.Passthrough { #if UNITY_EDITOR - [OpenXRFeature(UiName = "VIVE XR Composition Layer (Passthrough)", + [OpenXRFeature(UiName = "VIVE XR Composition Layer (Passthrough) (Deprecated)", Desc = "Enable this feature to use the HTC Passthrough feature.", Company = "HTC", DocumentationLink = "..\\Documentation", @@ -28,6 +28,7 @@ namespace VIVE.OpenXR.CompositionLayer.Passthrough FeatureId = featureId )] #endif + [Obsolete("This class is deprecated. Please use VivePassthrough instead.")] public class ViveCompositionLayerPassthrough : OpenXRFeature { const string LOG_TAG = "VIVE.OpenXR.ViveCompositionLayerPassthrough"; diff --git a/com.htc.upm.vive.openxr/Runtime/Features/CompositionLayer/Scripts/ViveCompositionLayerPassthroughHelper.cs b/com.htc.upm.vive.openxr/Runtime/Features/CompositionLayer/Scripts/ViveCompositionLayerPassthroughHelper.cs index 3732ead..369df72 100644 --- a/com.htc.upm.vive.openxr/Runtime/Features/CompositionLayer/Scripts/ViveCompositionLayerPassthroughHelper.cs +++ b/com.htc.upm.vive.openxr/Runtime/Features/CompositionLayer/Scripts/ViveCompositionLayerPassthroughHelper.cs @@ -7,6 +7,7 @@ using System.Runtime.InteropServices; namespace VIVE.OpenXR.CompositionLayer.Passthrough { + [Obsolete("This enumeration is deprecated. Please use XrStructureType instead.")] //[StructLayout(LayoutKind.Sequential)] public enum XrStructureTypeHTC { @@ -16,6 +17,7 @@ namespace VIVE.OpenXR.CompositionLayer.Passthrough XR_TYPE_COMPOSITION_LAYER_PASSTHROUGH_HTC = 1000317004, } + [Obsolete("This enumeration is deprecated. Please use VIVE.OpenXR.Passthrough.PassthroughLayerForm instead.")] public enum PassthroughLayerForm { /// Fullscreen Passthrough Form @@ -24,6 +26,7 @@ namespace VIVE.OpenXR.CompositionLayer.Passthrough Projected = 1 } + [Obsolete("This enumeration is deprecated. Please use VIVE.OpenXR.Passthrough.ProjectedPassthroughSpaceType instead.")] public enum ProjectedPassthroughSpaceType { /// diff --git a/com.htc.upm.vive.openxr/Runtime/Features/DisplayRefreshRate/Scripts/ViveDisplayRefreshRate.cs b/com.htc.upm.vive.openxr/Runtime/Features/DisplayRefreshRate/Scripts/ViveDisplayRefreshRate.cs index ef25771..267e46b 100644 --- a/com.htc.upm.vive.openxr/Runtime/Features/DisplayRefreshRate/Scripts/ViveDisplayRefreshRate.cs +++ b/com.htc.upm.vive.openxr/Runtime/Features/DisplayRefreshRate/Scripts/ViveDisplayRefreshRate.cs @@ -49,7 +49,14 @@ namespace VIVE.OpenXR.DisplayRefreshRate public const string featureId = "vive.openxr.feature.displayrefreshrate"; #region OpenXR Life Cycle - private XrInstance m_XrInstance = 0; + + protected override IntPtr HookGetInstanceProcAddr(IntPtr func) + { + ViveInterceptors.Instance.AddRequiredFunction("xrPollEvent"); + return ViveInterceptors.Instance.HookGetInstanceProcAddr(func); + } + + private XrInstance m_XrInstance = 0; /// /// Called when xrCreateInstance is done. /// diff --git a/com.htc.upm.vive.openxr/Runtime/Features/DisplayRefreshRate/Scripts/ViveDisplayRefreshRateHelper.cs b/com.htc.upm.vive.openxr/Runtime/Features/DisplayRefreshRate/Scripts/ViveDisplayRefreshRateHelper.cs new file mode 100644 index 0000000..efea128 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Features/DisplayRefreshRate/Scripts/ViveDisplayRefreshRateHelper.cs @@ -0,0 +1,111 @@ +// Copyright HTC Corporation All Rights Reserved. + +using System; +using System.Collections.Generic; +using System.Runtime.InteropServices; +using UnityEngine; + +namespace VIVE.OpenXR.DisplayRefreshRate +{ + // -------------------- 12.52. XR_FB_display_refresh_rate -------------------- + #region New Structures + /// + /// On platforms which support dynamically adjusting the display refresh rate, application developers may request a specific display refresh rate in order to improve the overall user experience. + /// + [StructLayout(LayoutKind.Sequential)] + public struct XrEventDataDisplayRefreshRateChangedFB + { + /// + /// The of this structure. + /// + public XrStructureType type; + /// + /// NULL or a pointer to the next structure in a structure chain. No such structures are defined in core OpenXR or this extension. + /// + public IntPtr next; + /// + /// fromDisplayRefreshRate is the previous display refresh rate. + /// + public float fromDisplayRefreshRate; + /// + /// toDisplayRefreshRate is the new display refresh rate. + /// + public float toDisplayRefreshRate; + + /// + /// The XR_FB_display_refresh_rate extension must be enabled prior to using XrEventDataDisplayRefreshRateChangedFB. + /// + public XrEventDataDisplayRefreshRateChangedFB(XrStructureType in_type, IntPtr in_next, float in_fromDisplayRefreshRate, float in_toDisplayRefreshRate) + { + type = in_type; + next = in_next; + fromDisplayRefreshRate = in_fromDisplayRefreshRate; + toDisplayRefreshRate = in_toDisplayRefreshRate; + } + /// + /// Retrieves the identity value of XrEventDataDisplayRefreshRateChangedFB. + /// + public static XrEventDataDisplayRefreshRateChangedFB identity + { + get + { + return new XrEventDataDisplayRefreshRateChangedFB(XrStructureType.XR_TYPE_EVENT_DATA_DISPLAY_REFRESH_RATE_CHANGED_FB, IntPtr.Zero, 0.0f, 0.0f); // user is default present + } + } + public static bool Get(XrEventDataBuffer eventDataBuffer, out XrEventDataDisplayRefreshRateChangedFB eventDataDisplayRefreshRateChangedFB) + { + eventDataDisplayRefreshRateChangedFB = identity; + + if (eventDataBuffer.type == XrStructureType.XR_TYPE_EVENT_DATA_DISPLAY_REFRESH_RATE_CHANGED_FB) + { + eventDataDisplayRefreshRateChangedFB.next = eventDataBuffer.next; + eventDataDisplayRefreshRateChangedFB.fromDisplayRefreshRate = BitConverter.ToSingle(eventDataBuffer.varying, 0); + eventDataDisplayRefreshRateChangedFB.toDisplayRefreshRate = BitConverter.ToSingle(eventDataBuffer.varying, 4); + return true; + } + + return false; + } + } + + public static class ViveDisplayRefreshRateChanged + { + public delegate void OnDisplayRefreshRateChanged(float fromDisplayRefreshRate, float toDisplayRefreshRate); + + public static void Listen(OnDisplayRefreshRateChanged callback) + { + if (!allEventListeners.Contains(callback)) + allEventListeners.Add(callback); + } + public static void Remove(OnDisplayRefreshRateChanged callback) + { + if (allEventListeners.Contains(callback)) + allEventListeners.Remove(callback); + } + public static void Send(float fromDisplayRefreshRate, float toDisplayRefreshRate) + { + int N = 0; + if (allEventListeners != null) + { + N = allEventListeners.Count; + for (int i = N - 1; i >= 0; i--) + { + OnDisplayRefreshRateChanged single = allEventListeners[i]; + try + { + single(fromDisplayRefreshRate, toDisplayRefreshRate); + } + catch (Exception e) + { + Debug.Log("Event : " + e.ToString()); + allEventListeners.Remove(single); + Debug.Log("Event : A listener is removed due to exception."); + } + } + } + } + + private static List allEventListeners = new List(); + } + #endregion +} \ No newline at end of file diff --git a/com.htc.upm.vive.openxr/Runtime/Features/DisplayRefreshRate/Scripts/ViveDisplayRefreshRateHelper.cs.meta b/com.htc.upm.vive.openxr/Runtime/Features/DisplayRefreshRate/Scripts/ViveDisplayRefreshRateHelper.cs.meta new file mode 100644 index 0000000..3684ec4 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Features/DisplayRefreshRate/Scripts/ViveDisplayRefreshRateHelper.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 146db425ea37c2746ad7c9ae08a5a480 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Features/EyeTracker/ViveEyeTracker.cs b/com.htc.upm.vive.openxr/Runtime/Features/EyeTracker/ViveEyeTracker.cs index 0e0e91d..7976915 100644 --- a/com.htc.upm.vive.openxr/Runtime/Features/EyeTracker/ViveEyeTracker.cs +++ b/com.htc.upm.vive.openxr/Runtime/Features/EyeTracker/ViveEyeTracker.cs @@ -15,8 +15,8 @@ using UnityEditor.XR.OpenXR.Features; namespace VIVE.OpenXR.EyeTracker { #if UNITY_EDITOR - [OpenXRFeature(UiName = "VIVE XR Eye Tracker", - BuildTargetGroups = new[] { BuildTargetGroup.Standalone }, + [OpenXRFeature(UiName = "VIVE XR Eye Tracker (Beta)", + BuildTargetGroups = new[] { BuildTargetGroup.Android, BuildTargetGroup.Standalone }, Company = "HTC", Desc = "Support the eye tracker extension.", DocumentationLink = "..\\Documentation", diff --git a/com.htc.upm.vive.openxr/Runtime/Features/FacialTracking/Documentation/OpenXRExtensions.md b/com.htc.upm.vive.openxr/Runtime/Features/FacialTracking/Documentation/OpenXRExtensions.md index 4b5ccca..2c6bfc8 100644 --- a/com.htc.upm.vive.openxr/Runtime/Features/FacialTracking/Documentation/OpenXRExtensions.md +++ b/com.htc.upm.vive.openxr/Runtime/Features/FacialTracking/Documentation/OpenXRExtensions.md @@ -51,10 +51,10 @@ Through feeding the blend shape values of lip expression to an avatar, its facia XR_LIP_EXPRESSION_MOUTH_UPPER_OVERTURN_HTC = 9, XR_LIP_EXPRESSION_MOUTH_LOWER_OVERTURN_HTC = 10, XR_LIP_EXPRESSION_MOUTH_POUT_HTC = 11, - XR_LIP_EXPRESSION_MOUTH_SMILE_RIGHT_HTC = 12, - XR_LIP_EXPRESSION_MOUTH_SMILE_LEFT_HTC = 13, - XR_LIP_EXPRESSION_MOUTH_SAD_RIGHT_HTC = 14, - XR_LIP_EXPRESSION_MOUTH_SAD_LEFT_HTC = 15, + XR_LIP_EXPRESSION_MOUTH_RAISER_RIGHT_HTC = 12, + XR_LIP_EXPRESSION_MOUTH_RAISER_LEFT_HTC = 13, + XR_LIP_EXPRESSION_MOUTH_STRETCHER_RIGHT_HTC = 14, + XR_LIP_EXPRESSION_MOUTH_STRETCHER_LEFT_HTC = 15, XR_LIP_EXPRESSION_CHEEK_PUFF_RIGHT_HTC = 16, XR_LIP_EXPRESSION_CHEEK_PUFF_LEFT_HTC = 17, XR_LIP_EXPRESSION_CHEEK_SUCK_HTC = 18, diff --git a/com.htc.upm.vive.openxr/Runtime/Features/FacialTracking/Scripts/ViveFacialTracking.cs b/com.htc.upm.vive.openxr/Runtime/Features/FacialTracking/Scripts/ViveFacialTracking.cs index 08d3f82..33dee51 100644 --- a/com.htc.upm.vive.openxr/Runtime/Features/FacialTracking/Scripts/ViveFacialTracking.cs +++ b/com.htc.upm.vive.openxr/Runtime/Features/FacialTracking/Scripts/ViveFacialTracking.cs @@ -68,8 +68,11 @@ namespace VIVE.OpenXR.FacialTracking /// The instance to destroy. protected override void OnInstanceDestroy(ulong xrInstance) { - m_XrInstanceCreated = false; - m_XrInstance = 0; + if (m_XrInstance == xrInstance) + { + m_XrInstanceCreated = false; + m_XrInstance = 0; + } DEBUG("OnInstanceDestroy() " + xrInstance); } diff --git a/com.htc.upm.vive.openxr/Runtime/Features/FacialTracking/Scripts/ViveFacialTrackingHelper.cs b/com.htc.upm.vive.openxr/Runtime/Features/FacialTracking/Scripts/ViveFacialTrackingHelper.cs index 564be40..8b45155 100644 --- a/com.htc.upm.vive.openxr/Runtime/Features/FacialTracking/Scripts/ViveFacialTrackingHelper.cs +++ b/com.htc.upm.vive.openxr/Runtime/Features/FacialTracking/Scripts/ViveFacialTrackingHelper.cs @@ -201,19 +201,19 @@ namespace VIVE.OpenXR.FacialTracking /// /// This blend shape raises the right side of the mouth further with a higher value. /// - XR_LIP_EXPRESSION_MOUTH_SMILE_RIGHT_HTC = 12, + XR_LIP_EXPRESSION_MOUTH_RAISER_RIGHT_HTC = 12, /// /// This blend shape raises the left side of the mouth further with a higher value. /// - XR_LIP_EXPRESSION_MOUTH_SMILE_LEFT_HTC = 13, + XR_LIP_EXPRESSION_MOUTH_RAISER_LEFT_HTC = 13, /// /// This blend shape lowers the right side of the mouth further with a higher value. /// - XR_LIP_EXPRESSION_MOUTH_SAD_RIGHT_HTC = 14, + XR_LIP_EXPRESSION_MOUTH_STRETCHER_RIGHT_HTC = 14, /// /// This blend shape lowers the left side of the mouth further with a higher value. /// - XR_LIP_EXPRESSION_MOUTH_SAD_LEFT_HTC = 15, + XR_LIP_EXPRESSION_MOUTH_STRETCHER_LEFT_HTC = 15, /// /// This blend shape puffs up the right side of the cheek further with a higher value. /// @@ -433,7 +433,7 @@ namespace VIVE.OpenXR.FacialTracking /// /// An XrFacialTrackerHTC previously created by xrCreateFacialTrackerHTC. /// A pointer to XrFacialExpressionsHTC receiving the returned facial expressions. - /// + /// XR_SUCCESS for success. public delegate XrResult xrGetFacialExpressionsHTCDelegate( XrFacialTrackerHTC facialTracker, ref XrFacialExpressionsHTC facialExpressions); diff --git a/com.htc.upm.vive.openxr/Runtime/Features/FirstPersonObserver.meta b/com.htc.upm.vive.openxr/Runtime/Features/FirstPersonObserver.meta new file mode 100644 index 0000000..6758e6b --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Features/FirstPersonObserver.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6368702137725614d8d921ef6c1220f1 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Features/FirstPersonObserver/Scripts.meta b/com.htc.upm.vive.openxr/Runtime/Features/FirstPersonObserver/Scripts.meta new file mode 100644 index 0000000..ad57308 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Features/FirstPersonObserver/Scripts.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e80a989be51974a4e88bdc41872d53c9 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Features/FirstPersonObserver/Scripts/ViveFirstPersonObserver.cs b/com.htc.upm.vive.openxr/Runtime/Features/FirstPersonObserver/Scripts/ViveFirstPersonObserver.cs new file mode 100644 index 0000000..47511bd --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Features/FirstPersonObserver/Scripts/ViveFirstPersonObserver.cs @@ -0,0 +1,185 @@ +// Copyright HTC Corporation All Rights Reserved. + +using System; +using System.Runtime.InteropServices; +using UnityEngine.XR.OpenXR; +using UnityEngine.XR.OpenXR.Features; +#if UNITY_EDITOR +using UnityEditor; +using UnityEditor.XR.OpenXR.Features; +#endif +using VIVE.OpenXR.SecondaryViewConfiguration; + +namespace VIVE.OpenXR.FirstPersonObserver +{ + /// + /// Name: FirstPersonObserver.cs + /// Role: OpenXR FirstPersonObserver Extension Class + /// Responsibility: The OpenXR extension implementation and its lifecycles logic in OpenXR + /// +#if UNITY_EDITOR + [OpenXRFeature(UiName = "XR MSFT First Person Observer", + BuildTargetGroups = new[] { BuildTargetGroup.Android }, + Company = "HTC", + Desc = "Request the application to render an additional first-person view of the scene.", + DocumentationLink = "..\\Documentation", + OpenxrExtensionStrings = OPEN_XR_EXTENSION_STRING, + Version = "1.0.0", + FeatureId = FeatureId, + Hidden = true)] +#endif + public class ViveFirstPersonObserver : OpenXRFeature + { + private static ViveFirstPersonObserver _instance; + + /// + /// ViveFirstPersonObserver static instance (Singleton). + /// + public static ViveFirstPersonObserver Instance + { + get + { + if (_instance == null) + { + _instance = + OpenXRSettings.Instance.GetFeature(); + } + + return _instance; + } + } + + /// + /// The log identification. + /// + private const string LogTag = "VIVE.OpenXR.FirstPersonObserver"; + + /// + /// The feature id string. This is used to give the feature a well known id for reference. + /// + public const string FeatureId = "vive.openxr.feature.firstpersonobserver"; + + /// + /// OpenXR specification 12.114. XR_MSFT_first_person_observer. + /// + public const string OPEN_XR_EXTENSION_STRING = "XR_MSFT_first_person_observer"; + + /// + /// The flag represents whether the OpenXR loader created an instance or not. + /// + private bool XrInstanceCreated { get; set; } = false; + + /// + /// The instance created through xrCreateInstance. + /// + private XrInstance XrInstance { get; set; } = 0; + + /// + /// The function delegate declaration of xrGetInstanceProcAddr. + /// + private OpenXRHelper.xrGetInstanceProcAddrDelegate XrGetInstanceProcAddr { get; set; } + + #region OpenXR life-cycle events + + /// + /// Called after xrCreateInstance. + /// + /// Handle of the xrInstance. + /// Returns true if successful. Returns false otherwise. + protected override bool OnInstanceCreate(ulong xrInstance) + { + if (!IsExtensionEnabled()) + { + Warning($"OnInstanceCreate() {OPEN_XR_EXTENSION_STRING} or " + + $"{ViveSecondaryViewConfiguration.OPEN_XR_EXTENSION_STRING} is NOT enabled."); + return false; + } + + XrInstanceCreated = true; + XrInstance = xrInstance; + Debug("OnInstanceCreate() " + XrInstance); + + if (!GetXrFunctionDelegates(XrInstance)) + { + Error("Get function pointer of OpenXRFunctionPointerAccessor failed."); + return false; + } + + Debug("Get function pointer of OpenXRFunctionPointerAccessor succeed."); + return base.OnInstanceCreate(xrInstance); + } + + #endregion + + /// + /// Get the OpenXR function via XrInstance. + /// + /// The XrInstance is provided by the Unity OpenXR Plugin. + /// Return true if get successfully. False otherwise. + private bool GetXrFunctionDelegates(XrInstance xrInstance) + { + if (xrGetInstanceProcAddr != IntPtr.Zero) + { + Debug("Get function pointer of openXRFunctionPointerAccessor."); + XrGetInstanceProcAddr = Marshal.GetDelegateForFunctionPointer(xrGetInstanceProcAddr, + typeof(OpenXRHelper.xrGetInstanceProcAddrDelegate)) as OpenXRHelper.xrGetInstanceProcAddrDelegate; + + if (XrGetInstanceProcAddr == null) + { + Error( + "Get function pointer of openXRFunctionPointerAccessor failed due to the XrGetInstanceProcAddr is null."); + return false; + } + } + else + { + Error( + "Get function pointer of openXRFunctionPointerAccessor failed due to the xrGetInstanceProcAddr is null."); + return false; + } + + return true; + } + + #region Utilities functions + + /// + /// Check ViveFirstPersonObserver extension is enabled or not. + /// + /// Return true if enabled. False otherwise. + public static bool IsExtensionEnabled() + { + return OpenXRRuntime.IsExtensionEnabled(OPEN_XR_EXTENSION_STRING) && + ViveSecondaryViewConfiguration.IsExtensionEnabled(); + } + + /// + /// Print log with tag "VIVE.OpenXR.SecondaryViewConfiguration". + /// + /// The log you want to print. + private static void Debug(string msg) + { + UnityEngine.Debug.Log(LogTag + " " + msg); + } + + /// + /// Print warning message with tag "VIVE.OpenXR.SecondaryViewConfiguration". + /// + /// The warning message you want to print. + private static void Warning(string msg) + { + UnityEngine.Debug.LogWarning(LogTag + " " + msg); + } + + /// + /// Print an error message with the tag "VIVE.OpenXR.SecondaryViewConfiguration." + /// + /// The error message you want to print. + private static void Error(string msg) + { + UnityEngine.Debug.LogError(LogTag + " " + msg); + } + + #endregion + } +} \ No newline at end of file diff --git a/com.htc.upm.vive.openxr/Runtime/Features/FirstPersonObserver/Scripts/ViveFirstPersonObserver.cs.meta b/com.htc.upm.vive.openxr/Runtime/Features/FirstPersonObserver/Scripts/ViveFirstPersonObserver.cs.meta new file mode 100644 index 0000000..ed66d75 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Features/FirstPersonObserver/Scripts/ViveFirstPersonObserver.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 311462c0560d6ec4ea9ed080a6a77a3b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Features/Foveation/Scripts/ViveFoveation.cs b/com.htc.upm.vive.openxr/Runtime/Features/Foveation/Scripts/ViveFoveation.cs index 8eeb39e..470d239 100644 --- a/com.htc.upm.vive.openxr/Runtime/Features/Foveation/Scripts/ViveFoveation.cs +++ b/com.htc.upm.vive.openxr/Runtime/Features/Foveation/Scripts/ViveFoveation.cs @@ -85,12 +85,12 @@ namespace VIVE.OpenXR private static extern IntPtr intercept_xrGetInstanceProcAddr(IntPtr func); [DllImport(ExtLib, EntryPoint = "applyFoveationHTC")] - private static extern XrResult applyFoveationHTC(XrFoveationModeHTC mode, UInt32 configCount, XrFoveationConfigurationHTC[] configs, UInt64 flags); + private static extern XrResult applyFoveationHTC(Foveation.XrFoveationModeHTC mode, UInt32 configCount, Foveation.XrFoveationConfigurationHTC[] configs, UInt64 flags); /// /// function to apply HTC Foveation /// - public static XrResult ApplyFoveationHTC(XrFoveationModeHTC mode, UInt32 configCount, XrFoveationConfigurationHTC[] configs, UInt64 flags = 0) + public static XrResult ApplyFoveationHTC(Foveation.XrFoveationModeHTC mode, UInt32 configCount, Foveation.XrFoveationConfigurationHTC[] configs, UInt64 flags = 0) { //Debug.Log("Unity HTCFoveat:configCount " + configCount); //if (configCount >=2) { diff --git a/com.htc.upm.vive.openxr/Runtime/Features/Foveation/Scripts/ViveFoveationHelper.cs b/com.htc.upm.vive.openxr/Runtime/Features/Foveation/Scripts/ViveFoveationHelper.cs new file mode 100644 index 0000000..bc9364c --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Features/Foveation/Scripts/ViveFoveationHelper.cs @@ -0,0 +1,38 @@ +// Copyright HTC Corporation All Rights Reserved. + +namespace VIVE.OpenXR.Foveation +{ + #region 12.86. XR_HTC_foveation + /// + /// The XrFoveationModeHTC identifies the different foveation modes. + /// + public enum XrFoveationModeHTC + { + XR_FOVEATION_MODE_DISABLE_HTC = 0, + XR_FOVEATION_MODE_FIXED_HTC = 1, + XR_FOVEATION_MODE_DYNAMIC_HTC = 2, + XR_FOVEATION_MODE_CUSTOM_HTC = 3, + XR_FOVEATION_MODE_MAX_ENUM_HTC = 0x7FFFFFFF + } + /// + /// The XrFoveationLevelHTC identifies the pixel density drop level of periphery area. + /// + public enum XrFoveationLevelHTC + { + XR_FOVEATION_LEVEL_NONE_HTC = 0, + XR_FOVEATION_LEVEL_LOW_HTC = 1, + XR_FOVEATION_LEVEL_MEDIUM_HTC = 2, + XR_FOVEATION_LEVEL_HIGH_HTC = 3, + XR_FOVEATION_LEVEL_MAX_ENUM_HTC = 0x7FFFFFFF + } + /// + /// The XrFoveationConfigurationHTC structure contains the custom foveation settings for the corresponding views. + /// + public struct XrFoveationConfigurationHTC + { + public XrFoveationLevelHTC level; + public float clearFovDegree; + public XrVector2f focalCenterOffset; + } + #endregion +} \ No newline at end of file diff --git a/com.htc.upm.vive.openxr/Runtime/Features/Foveation/Scripts/ViveFoveationHelper.cs.meta b/com.htc.upm.vive.openxr/Runtime/Features/Foveation/Scripts/ViveFoveationHelper.cs.meta new file mode 100644 index 0000000..a6679ce --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Features/Foveation/Scripts/ViveFoveationHelper.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6b3c2ad651da4e5498f49d3a26038620 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Features/FrameSynchronization.meta b/com.htc.upm.vive.openxr/Runtime/Features/FrameSynchronization.meta new file mode 100644 index 0000000..131370c --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Features/FrameSynchronization.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 83e064b5ad501784c898651afc560f8e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Features/FrameSynchronization/Documentation.meta b/com.htc.upm.vive.openxr/Runtime/Features/FrameSynchronization/Documentation.meta new file mode 100644 index 0000000..99f6834 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Features/FrameSynchronization/Documentation.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 73f495f4b0dd14245b3997ffbe23713a +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Features/FrameSynchronization/Documentation/OpenXRExtensions.md b/com.htc.upm.vive.openxr/Runtime/Features/FrameSynchronization/Documentation/OpenXRExtensions.md new file mode 100644 index 0000000..fb84b6a --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Features/FrameSynchronization/Documentation/OpenXRExtensions.md @@ -0,0 +1,19 @@ +# 12.1. XR_HTC_frame_synchronization +## Overview +Traditional, runtime will use the latest frame which will cost jitter. With Frame Synchronization, the render frame will not be discarded for smooth gameplay experience. +However, if the GPU cannot consistently finish rendering on time (rendering more than one vsync at a time), jitter will still occur. Therefore, reducing GPU load is key to smooth gameplay. +## Name String + XR_HTC_frame_synchronization +## Revision + 1 +## New Enum Constants +[XrStructureType](https://registry.khronos.org/OpenXR/specs/1.1/html/xrspec.html#XrStructureType) enumeration is extended with: +- XR_TYPE_FRAME_SYNCHRONIZATION_SESSION_BEGIN_INFO_HTC +## New Enums +- XrFrameSynchronizationModeHTC +## New Structures +- XrFrameSynchronizationSessionBeginInfoHTC + +## VIVE Plugin + +Enable "VIVE XR Frame Synchronization" in "Project Settings > XR Plugin-in Management > OpenXR > Android Tab > OpenXR Feature Groups" to use the frame synchronization provided by VIVE OpenXR plugin. diff --git a/com.htc.upm.vive.openxr/Runtime/Features/FrameSynchronization/Documentation/OpenXRExtensions.md.meta b/com.htc.upm.vive.openxr/Runtime/Features/FrameSynchronization/Documentation/OpenXRExtensions.md.meta new file mode 100644 index 0000000..673be64 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Features/FrameSynchronization/Documentation/OpenXRExtensions.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 190a1897e332b7f45893a24c3f696567 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Features/FrameSynchronization/Scripts.meta b/com.htc.upm.vive.openxr/Runtime/Features/FrameSynchronization/Scripts.meta new file mode 100644 index 0000000..a290fd2 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Features/FrameSynchronization/Scripts.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a8078a459f75c5d419c46950680d6446 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Features/FrameSynchronization/Scripts/ViveFrameSynchronization.cs b/com.htc.upm.vive.openxr/Runtime/Features/FrameSynchronization/Scripts/ViveFrameSynchronization.cs new file mode 100644 index 0000000..ee48748 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Features/FrameSynchronization/Scripts/ViveFrameSynchronization.cs @@ -0,0 +1,165 @@ +// Copyright HTC Corporation All Rights Reserved. + +using System; +using System.Text; +using UnityEngine; +using UnityEngine.XR.OpenXR; +using UnityEngine.XR.OpenXR.Features; + +#if UNITY_EDITOR +using UnityEditor; +using UnityEditor.XR.OpenXR.Features; +#endif + +namespace VIVE.OpenXR.FrameSynchronization +{ +#if UNITY_EDITOR + [OpenXRFeature(UiName = "VIVE XR Frame Synchronization (Beta)", + BuildTargetGroups = new[] { BuildTargetGroup.Android }, + Company = "HTC", + Desc = "Support the Frame Synchronization extension.", + DocumentationLink = "..\\Documentation", + OpenxrExtensionStrings = kOpenxrExtensionString, + Version = "1.0.0", + FeatureId = featureId)] +#endif + public class ViveFrameSynchronization : OpenXRFeature + { + #region Log + const string LOG_TAG = "VIVE.OpenXR.FrameSynchronization.ViveFrameSynchronization"; + StringBuilder m_sb = null; + StringBuilder sb { + get { + if (m_sb == null) { m_sb = new StringBuilder(); } + return m_sb; + } + } + void DEBUG(StringBuilder msg) { Debug.LogFormat("{0} {1}", LOG_TAG, msg); } + void WARNING(StringBuilder msg) { Debug.LogWarningFormat("{0} {1}", LOG_TAG, msg); } + void ERROR(StringBuilder msg) { Debug.LogErrorFormat("{0} {1}", LOG_TAG, msg); } + #endregion + + /// + /// The extension name of 12.1. XR_HTC_frame_synchronization. + /// + public const string kOpenxrExtensionString = "XR_HTC_frame_synchronization"; + /// + /// The feature id string. This is used to give the feature a well known id for reference. + /// + public const string featureId = "vive.openxr.feature.framesynchronization"; + + #region OpenXR Life Cycle + /// + protected override IntPtr HookGetInstanceProcAddr(IntPtr func) + { + sb.Clear().Append("HookGetInstanceProcAddr() xrBeginSession"); DEBUG(sb); + + ViveInterceptors.Instance.AddRequiredFunction("xrBeginSession"); + return ViveInterceptors.Instance.HookGetInstanceProcAddr(func); + } + +#pragma warning disable + private bool m_XrInstanceCreated = false; +#pragma warning enable + private XrInstance m_XrInstance = 0; + /// + /// Called when xrCreateInstance is done. + /// + /// The created instance. + /// True for valid XrInstance + protected override bool OnInstanceCreate(ulong xrInstance) + { + if (!OpenXRRuntime.IsExtensionEnabled(kOpenxrExtensionString)) + { + sb.Clear().Append("OnInstanceCreate() ").Append(kOpenxrExtensionString).Append(" is NOT enabled."); WARNING(sb); + return false; + } + + m_XrInstance = xrInstance; + m_XrInstanceCreated = true; + sb.Clear().Append("OnInstanceCreate() ").Append(m_XrInstance); DEBUG(sb); + + ActivateFrameSynchronization(true); + + return true; + } + /// + /// Called when xrDestroyInstance is done. + /// + /// The instance to destroy. + protected override void OnInstanceDestroy(ulong xrInstance) + { + sb.Clear().Append("OnInstanceDestroy() ").Append(xrInstance).Append(", current: ").Append(m_XrInstance); DEBUG(sb); + if (m_XrInstance == xrInstance) + { + m_XrInstanceCreated = false; + m_XrInstance = 0; + } + } + +#pragma warning disable + private bool m_XrSessionCreated = false; +#pragma warning enable + private XrSession m_XrSession = 0; + /// + /// Called when xrCreateSession is done. + /// + /// The created session ID. + protected override void OnSessionCreate(ulong xrSession) + { + m_XrSession = xrSession; + m_XrSessionCreated = true; + sb.Clear().Append("OnSessionCreate() ").Append(m_XrSession); DEBUG(sb); + } + protected override void OnSessionEnd(ulong xrSession) + { + sb.Clear().Append("OnSessionEnd() ").Append(xrSession).Append(", current: ").Append(m_XrSession); DEBUG(sb); + } + /// + /// Called when xrDestroySession is done. + /// + /// The session ID to destroy. + protected override void OnSessionDestroy(ulong xrSession) + { + sb.Clear().Append("OnSessionDestroy() ").Append(xrSession).Append(", current: ").Append(m_XrSession); DEBUG(sb); + if (m_XrSession == xrSession) + { + m_XrSessionCreated = false; + m_XrSession = 0; + + ActivateFrameSynchronization(false); + } + } + + private XrSystemId m_XrSystemId = 0; + /// + /// Called when the XrSystemId retrieved by xrGetSystem is changed. + /// + /// The system id. + protected override void OnSystemChange(ulong xrSystem) + { + m_XrSystemId = xrSystem; + sb.Clear().Append("OnSystemChange() " + m_XrSystemId); DEBUG(sb); + } + #endregion + + [SerializeField] + internal SynchronizationModeHTC m_SynchronizationMode = SynchronizationModeHTC.Stablized; + /// + /// Activate or deactivate the Frame Synchronization feature. + /// + /// True for activate + /// The used for Frame Synchronization. + private void ActivateFrameSynchronization(bool active) + { + sb.Clear().Append("ActivateFrameSynchronization() ").Append(active ? "enable " : "disable ").Append(m_SynchronizationMode); DEBUG(sb); + ViveInterceptors.Instance.ActivateFrameSynchronization(active, (XrFrameSynchronizationModeHTC)m_SynchronizationMode); + } + + /// + /// Retrieves current frame synchronization mode. + /// + /// The mode of . + public SynchronizationModeHTC GetSynchronizationMode() { return m_SynchronizationMode; } + } +} \ No newline at end of file diff --git a/com.htc.upm.vive.openxr/Runtime/Features/FrameSynchronization/Scripts/ViveFrameSynchronization.cs.meta b/com.htc.upm.vive.openxr/Runtime/Features/FrameSynchronization/Scripts/ViveFrameSynchronization.cs.meta new file mode 100644 index 0000000..b104ab5 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Features/FrameSynchronization/Scripts/ViveFrameSynchronization.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: cb48e1e4de80ea8498ba4e9ff34adc32 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Features/FrameSynchronization/Scripts/ViveFrameSynchronizationHelper.cs b/com.htc.upm.vive.openxr/Runtime/Features/FrameSynchronization/Scripts/ViveFrameSynchronizationHelper.cs new file mode 100644 index 0000000..cd275ac --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Features/FrameSynchronization/Scripts/ViveFrameSynchronizationHelper.cs @@ -0,0 +1,67 @@ +// Copyright HTC Corporation All Rights Reserved. + +using System; +using System.Runtime.InteropServices; + +namespace VIVE.OpenXR.FrameSynchronization +{ + /// + /// The enum alias of . + /// + public enum SynchronizationModeHTC : UInt32 + { + Stablized = XrFrameSynchronizationModeHTC.XR_FRAME_SYNCHRONIZATION_MODE_STABILIZED_HTC, + Prompt = XrFrameSynchronizationModeHTC.XR_FRAME_SYNCHRONIZATION_MODE_PROMPT_HTC, + //Adaptive = XrFrameSynchronizationModeHTC.XR_FRAME_SYNCHRONIZATION_MODE_ADAPTIVE_HTC, + } + + // -------------------- 12.1. XR_HTC_frame_synchronization -------------------- + #region New Enums + public enum XrFrameSynchronizationModeHTC : UInt32 + { + XR_FRAME_SYNCHRONIZATION_MODE_STABILIZED_HTC = 1, + XR_FRAME_SYNCHRONIZATION_MODE_PROMPT_HTC = 2, + XR_FRAME_SYNCHRONIZATION_MODE_ADAPTIVE_HTC = 3, + XR_FRAME_SYNCHRONIZATION_MODE_MAX_ENUM_HTC = 0x7FFFFFFF + } + #endregion + + #region New Structures + /// + /// Traditional, runtime will use the latest frame which will cost jitter. With Frame Synchronization, the render frame will not be discarded for smooth gameplay experience. + /// However, if the GPU cannot consistently finish rendering on time(rendering more than one vsync at a time), jitter will still occur.Therefore, reducing GPU load is key to smooth gameplay. + /// The application can use Frame Synchronization by passing XrFrameSynchronizationSessionBeginInfoHTC at next of . + /// + [StructLayout(LayoutKind.Sequential)] + public struct XrFrameSynchronizationSessionBeginInfoHTC + { + /// + /// The XrStructureType of this structure. It must be XR_TYPE_FRAME_SYNCHRONIZATION_SESSION_BEGIN_INFO_HTC. + /// + public XrStructureType type; + /// + /// NULL or a pointer to the next structure in a structure chain. No such structures are defined in core OpenXR or this extension. + /// + public IntPtr next; + /// + /// The frame synchronization mode to be used in this session. + /// + public XrFrameSynchronizationModeHTC mode; + + public XrFrameSynchronizationSessionBeginInfoHTC(XrStructureType in_type, IntPtr in_next, XrFrameSynchronizationModeHTC in_mode) + { + type = in_type; + next = in_next; + mode = in_mode; + } + public static XrFrameSynchronizationSessionBeginInfoHTC identity { + get { + return new XrFrameSynchronizationSessionBeginInfoHTC( + XrStructureType.XR_TYPE_FRAME_SYNCHRONIZATION_SESSION_BEGIN_INFO_HTC, + IntPtr.Zero, + XrFrameSynchronizationModeHTC.XR_FRAME_SYNCHRONIZATION_MODE_STABILIZED_HTC); + } + } + } + #endregion +} \ No newline at end of file diff --git a/com.htc.upm.vive.openxr/Runtime/Features/FrameSynchronization/Scripts/ViveFrameSynchronizationHelper.cs.meta b/com.htc.upm.vive.openxr/Runtime/Features/FrameSynchronization/Scripts/ViveFrameSynchronizationHelper.cs.meta new file mode 100644 index 0000000..020693e --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Features/FrameSynchronization/Scripts/ViveFrameSynchronizationHelper.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a2877a2048174774b8e8698f159199e9 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Features/Hand/Interaction/Documentation/OpenXRExtensions.md b/com.htc.upm.vive.openxr/Runtime/Features/Hand/Interaction/Documentation/OpenXRExtensions.md index dd61a81..751f69d 100644 --- a/com.htc.upm.vive.openxr/Runtime/Features/Hand/Interaction/Documentation/OpenXRExtensions.md +++ b/com.htc.upm.vive.openxr/Runtime/Features/Hand/Interaction/Documentation/OpenXRExtensions.md @@ -19,7 +19,7 @@ The application should use ## VIVE Plugin -After adding the "VIVE Focus3 Hand Interaction" to "Project Settings > XR Plugin-in Management > OpenXR > Android Tab > Interaction Profiles", you can use the following Input Action Pathes. +After adding the "VIVE XR Hand Interaction" to "Project Settings > XR Plugin-in Management > OpenXR > Android Tab > Interaction Profiles", you can use the following Input Action Pathes. ### Left Hand - {LeftHand}/selectValue: Presents the left hand pinch strength. @@ -29,4 +29,69 @@ After adding the "VIVE Focus3 Hand Interaction" to "Project Settings > XR Plugin - {RightHand}/selectValue: Presents the right hand pinch strength. - {RightHand}/pointerPose: Presents the right hand pinch pose. -Refer to the /Plugin/Input/ActionMap/InputActions.inputActions about the "Input Action Path" usage and the sample /Plugin/Input/OpenXRInput.unity. +Refer to the /Samples/Commons/ActionMap/InputActions.inputActions about the "Input Action Path" usage in the sample /Samples/Input/OpenXRInput.unity. + +-------------------- + +# 12.31. XR_EXT_hand_interaction +## Name String + XR_EXT_hand_interaction +## Revision + 1 +## Hand Interaction Profile +### Interaction profile path: +- /interaction_profiles/ext/hand_interaction_ext + +### Valid for user paths: +- /user/hand/left +- /user/hand/right + +### Supported input source +- ¡K/input/aim/pose +- ¡K/input/aim_activate_ext/value: a 1D analog input component indicating that the user activated the action on the target that the user is pointing at with the aim pose. +- ¡K/input/aim_activate_ext/ready_ext: a boolean input, where the value XR_TRUE indicates that the fingers to perform the "aim_activate" gesture are properly tracked by the hand tracking device and the hand shape is observed to be ready to perform or is performing an "aim_activate" gesture. +- ¡K/input/grip/pose +- ¡K/input/grasp_ext/value: a 1D analog input component indicating that the user is making a fist. +- ¡K/input/grasp_ext/ready_ext: a boolean input, where the value XR_TRUE indicates that the hand performing the grasp action is properly tracked by the hand tracking device and it is observed to be ready to perform or is performing the grasp action. +- ¡K/input/pinch_ext/pose +- ¡K/input/pinch_ext/value: a 1D analog input component indicating the extent which the user is bringing their finger and thumb together to perform a "pinch" gesture. +- ¡K/input/pinch_ext/ready_ext: a boolean input, where the value XR_TRUE indicates that the fingers used to perform the "pinch" gesture are properly tracked by the hand tracking device and the hand shape is observed to be ready to perform or is performing a "pinch" gesture. +- ¡K/input/poke_ext/pose + +The ¡K/input/aim/pose is typically used for aiming at objects out of arm¡¦s reach. When using a hand interaction profile, it is typically paired with ¡K/input/aim_activate_ext/value to optimize aiming ray stability while performing the gesture. When using a controller interaction profile, the "aim" pose is typically paired with a trigger or a button for aim and fire operations. + +The ¡K/input/grip/pose is typically used for holding a large object in the user¡¦s hand. When using a hand interaction profile, it is typically paired with ¡K/input/grasp_ext/value for the user to directly manipulate an object held in a hand. When using a controller interaction profile, the "grip" pose is typically paired with a "squeeze" button or trigger that gives the user the sense of tightly holding an object. + +The ¡K/input/pinch_ext/pose is typically used for directly manipulating a small object using the pinch gesture. When using a hand interaction profile, it is typically paired with the ¡K/input/pinch_ext/value gesture. When using a controller interaction profile, it is typically paired with a trigger manipulated with the index finger, which typically requires curling the index finger and applying pressure with the fingertip. + +The ¡K/input/poke_ext/pose is typically used for contact-based interactions using the motion of the hand or fingertip. It typically does not pair with other hand gestures or buttons on the controller. The application typically uses a sphere collider with the "poke" pose to visualize the pose and detect touch with a virtual object. + +## VIVE Plugin + +After adding the "VIVE XR Hand Interaction Ext" to "Project Settings > XR Plugin-in Management > OpenXR > Android Tab > Interaction Profiles", you can use the following Input Action Pathes. + +### Left Hand +- {LeftHand}/pointerPose: Presents the left hand aim pose used for aiming at objects out of arm¡¦s reach. +- {LeftHand}/pointerValue: Can be used as either a boolean or float action type, where the value XR_TRUE or 1.0f represents that the aimed-at target is being fully interacted with left hand. +- {LeftHand}/pointerReady: XR_TRUE indicates that the left fingers to perform the "aim_activate" gesture are properly tracked by the hand tracking device and the hand shape is observed to be ready to perform or is performing an "aim_activate" gesture. +- {LeftHand}/gripPose: Presents the left hand grip pose used for holding a large object in the user¡¦s hand. +- {LeftHand}/gripValue: Can be used as either a boolean or float action type, where the value XR_TRUE or 1.0f represents that the left fist is tightly closed. +- {LeftHand}/gripReady: XR_TRUE indicates that the left hand performing the grasp action is properly tracked by the hand tracking device and it is observed to be ready to perform or is performing the grasp action. +- {LeftHand}/pinchPose: Presents the left hand pinch pose used for directly manipulating a small object using the pinch gesture. +- {LeftHand}/pinchValue: Can be used as either a boolean or float action type, where the value XR_TRUE or 1.0f represents that the left finger and thumb are touching each other. +- {LeftHand}/pinchReady: XR_TRUE indicates that the left fingers used to perform the "pinch" gesture are properly tracked by the hand tracking device and the hand shape is observed to be ready to perform or is performing a "pinch" gesture. +- {LeftHand}/pokePose: Presents the left hand poke pose used for contact-based interactions using the motion of the hand or fingertip. + +### Right Hand +- {RightHand}/pointerPose: Presents the right hand aim pose used for aiming at objects out of arm¡¦s reach. +- {RightHand}/pointerValue: Can be used as either a boolean or float action type, where the value XR_TRUE or 1.0f represents that the aimed-at target is being fully interacted with right hand. +- {RightHand}/pointerReady: XR_TRUE indicates that the right fingers to perform the "aim_activate" gesture are properly tracked by the hand tracking device and the hand shape is observed to be ready to perform or is performing an "aim_activate" gesture. +- {RightHand}/gripPose: Presents the right hand grip pose used for holding a large object in the user¡¦s hand. +- {RightHand}/gripValue: Can be used as either a boolean or float action type, where the value XR_TRUE or 1.0f represents that the right fist is tightly closed. +- {RightHand}/gripReady: XR_TRUE indicates that the right hand performing the grasp action is properly tracked by the hand tracking device and it is observed to be ready to perform or is performing the grasp action. +- {RightHand}/pinchPose: Presents the right hand pinch pose used for directly manipulating a small object using the pinch gesture. +- {RightHand}/pinchValue: Can be used as either a boolean or float action type, where the value XR_TRUE or 1.0f represents that the right finger and thumb are touching each other. +- {RightHand}/pinchReady: XR_TRUE indicates that the right fingers used to perform the "pinch" gesture are properly tracked by the hand tracking device and the hand shape is observed to be ready to perform or is performing a "pinch" gesture. +- {RightHand}/pokePose: Presents the right hand poke pose used for contact-based interactions using the motion of the hand or fingertip. + +Refer to the /Samples/HandInteractionExt/HandInteractionExt.inputActions about the "Input Action Path" usage in the sample /Samples/HandInteractionExt/HandInteractionExt.unity. diff --git a/com.htc.upm.vive.openxr/Runtime/Features/Hand/Interaction/Scripts/ViveHandInteraction.cs b/com.htc.upm.vive.openxr/Runtime/Features/Hand/Interaction/Scripts/ViveHandInteraction.cs index d3ac7d8..2592f58 100644 --- a/com.htc.upm.vive.openxr/Runtime/Features/Hand/Interaction/Scripts/ViveHandInteraction.cs +++ b/com.htc.upm.vive.openxr/Runtime/Features/Hand/Interaction/Scripts/ViveHandInteraction.cs @@ -31,10 +31,11 @@ namespace VIVE.OpenXR.Hand /// #if UNITY_EDITOR [OpenXRFeature(UiName = "VIVE XR Hand Interaction", - BuildTargetGroups = new[] { BuildTargetGroup.Android , BuildTargetGroup.Standalone}, + Hidden = true, + BuildTargetGroups = new[] { BuildTargetGroup.Android, BuildTargetGroup.Standalone }, Company = "HTC", - Desc = "Support for enabling the hand interaction profile. Will register the controller map for hand interaction if enabled.", - DocumentationLink = "..\\Documentation", + Desc = "Support for enabling the VIVE hand interaction profile. Will register the controller map for hand interaction if enabled.", + DocumentationLink = "https://registry.khronos.org/OpenXR/specs/1.1/html/xrspec.html#XR_HTC_hand_interaction", Version = "1.0.0", OpenxrExtensionStrings = kOpenxrExtensionString, Category = FeatureCategory.Interaction, @@ -42,6 +43,7 @@ namespace VIVE.OpenXR.Hand #endif public class ViveHandInteraction : OpenXRInteractionFeature { + #region Log const string LOG_TAG = "VIVE.OpenXR.Hand.ViveHandInteraction "; StringBuilder m_sb = null; StringBuilder sb { @@ -50,8 +52,9 @@ namespace VIVE.OpenXR.Hand return m_sb; } } - void DEBUG(StringBuilder msg) { Debug.Log(msg); } - void WARNING(StringBuilder msg) { Debug.LogWarning(msg); } + void DEBUG(StringBuilder msg) { Debug.LogFormat("{0} {1}", LOG_TAG, msg); } + void WARNING(StringBuilder msg) { Debug.LogWarningFormat("{0} {1}", LOG_TAG, msg); } + #endregion /// /// OpenXR specification 12.69. XR_HTC_hand_interaction. @@ -68,6 +71,7 @@ namespace VIVE.OpenXR.Hand /// private const string profile = "/interaction_profiles/htc/hand_interaction"; + #region Supported component paths private const string leftHand = "/user/hand_htc/left"; private const string rightHand = "/user/hand_htc/right"; @@ -85,21 +89,22 @@ namespace VIVE.OpenXR.Hand /// /// Constant for a pose interaction binding '.../input/aim/pose' OpenXR Input Binding. Used by input subsystem to bind actions to physical inputs. /// - private const string pointerPose = "/input/aim/pose"; + public const string pointerPose = "/input/aim/pose"; /// /// Constant for a pose interaction binding '.../input/grip/pose' OpenXR Input Binding. Used by input subsystem to bind actions to physical inputs. /// public const string devicePose = "/input/grip/pose"; + #endregion [Preserve, InputControlLayout(displayName = "VIVE Hand Interaction (OpenXR)", commonUsages = new[] { "LeftHand", "RightHand" }, isGenericTypeOfDevice = true)] public class HandInteractionDevice : OpenXRDevice { const string LOG_TAG = "VIVE.OpenXR.Hand.ViveHandInteraction.HandInteractionDevice"; - void DEBUG(string msg) { Debug.Log(LOG_TAG + " " + msg); } + void DEBUG(string msg) { Debug.LogFormat("{0} {1}", LOG_TAG, msg); } /// - /// A [AxisControl](xref:UnityEngine.InputSystem.Controls.AxisControl) that represents the OpenXR binding. + /// A representing the OpenXR binding. /// [Preserve, InputControl(aliases = new[] { "selectAxis, pinchStrength" }, usage = "Select")] public AxisControl selectValue { get; private set; } @@ -122,29 +127,29 @@ namespace VIVE.OpenXR.Hand [Preserve, InputControl(offset = 0, alias = "aimPose", usage = "Pointer")] public PoseControl pointerPose { get; private set; } - /// - /// A [ButtonControl](xref:UnityEngine.InputSystem.Controls.ButtonControl) required for backwards compatibility with the XRSDK layouts. This represents the overall tracking state of the device. This value is equivalent to mapping devicePose/isTracked. - /// - [Preserve, InputControl(offset = 8, usage = "IsTracked")] - public ButtonControl isTracked { get; private set; } + /// + /// A [ButtonControl](xref:UnityEngine.InputSystem.Controls.ButtonControl) required for backwards compatibility with the XRSDK layouts. This represents the overall tracking state of the device. This value is equivalent to mapping devicePose/isTracked. + /// + [Preserve, InputControl(offset = 8)] + public ButtonControl isTracked { get; private set; } - /// - /// A [IntegerControl](xref:UnityEngine.InputSystem.Controls.IntegerControl) required for backwards compatibility with the XRSDK layouts. This represents the bit flag set to indicate what data is valid. This value is equivalent to mapping devicePose/trackingState. - /// - [Preserve, InputControl(offset = 12, usage = "TrackingState")] - public IntegerControl trackingState { get; private set; } + /// + /// A [IntegerControl](xref:UnityEngine.InputSystem.Controls.IntegerControl) required for backwards compatibility with the XRSDK layouts. This represents the bit flag set to indicate what data is valid. This value is equivalent to mapping devicePose/trackingState. + /// + [Preserve, InputControl(offset = 12)] + public IntegerControl trackingState { get; private set; } - /// - /// A [Vector3Control](xref:UnityEngine.InputSystem.Controls.Vector3Control) required for backwards compatibility with the XRSDK layouts. This is the device position. For the VIVE Focus 3 device, this is both the device and the pointer position. This value is equivalent to mapping devicePose/position. - /// - [Preserve, InputControl(offset = 16, alias = "gripPosition")] - public Vector3Control devicePosition { get; private set; } + /// + /// A [Vector3Control](xref:UnityEngine.InputSystem.Controls.Vector3Control) required for backwards compatibility with the XRSDK layouts. This is the device position. This value is equivalent to mapping devicePose/position. + /// + [Preserve, InputControl(offset = 16, alias = "gripPosition")] + public Vector3Control devicePosition { get; private set; } - /// - /// A [QuaternionControl](xref:UnityEngine.InputSystem.Controls.QuaternionControl) required for backwards compatibility with the XRSDK layouts. This is the device orientation. For the VIVE Focus 3 device, this is both the device and the pointer rotation. This value is equivalent to mapping devicePose/rotation. - /// - [Preserve, InputControl(offset = 28, alias = "gripOrientation")] - public QuaternionControl deviceRotation { get; private set; } + /// + /// A [QuaternionControl](xref:UnityEngine.InputSystem.Controls.QuaternionControl) required for backwards compatibility with the XRSDK layouts. This is the device orientation. This value is equivalent to mapping devicePose/rotation. + /// + [Preserve, InputControl(offset = 28, alias = "gripOrientation")] + public QuaternionControl deviceRotation { get; private set; } /// @@ -184,16 +189,15 @@ namespace VIVE.OpenXR.Hand /// True for valid XrInstance protected override bool OnInstanceCreate(ulong xrInstance) { - // Requires the eye tracking extension if (!OpenXRRuntime.IsExtensionEnabled(kOpenxrExtensionString)) { - sb.Clear().Append(LOG_TAG).Append("OnInstanceCreate() ").Append(kOpenxrExtensionString).Append(" is NOT enabled."); WARNING(sb); + sb.Clear().Append("OnInstanceCreate() ").Append(kOpenxrExtensionString).Append(" is NOT enabled."); WARNING(sb); return false; } m_XrInstanceCreated = true; m_XrInstance = xrInstance; - sb.Clear().Append(LOG_TAG).Append("OnInstanceCreate() " + m_XrInstance); DEBUG(sb); + sb.Clear().Append("OnInstanceCreate() " + m_XrInstance); DEBUG(sb); return base.OnInstanceCreate(xrInstance); } @@ -205,14 +209,12 @@ namespace VIVE.OpenXR.Hand /// protected override void RegisterDeviceLayout() { - sb.Clear().Append(LOG_TAG).Append("RegisterDeviceLayout() Layout: ").Append(kLayoutName) - .Append(", Product: ").Append(kDeviceLocalizedName); - DEBUG(sb); + sb.Clear().Append("RegisterDeviceLayout() ").Append(kLayoutName).Append(", product: ").Append(kDeviceLocalizedName); DEBUG(sb); InputSystem.RegisterLayout(typeof(HandInteractionDevice), - kLayoutName, - matches: new InputDeviceMatcher() - .WithInterface(XRUtilities.InterfaceMatchAnyVersion) - .WithProduct(kDeviceLocalizedName)); + kLayoutName, + matches: new InputDeviceMatcher() + .WithInterface(XRUtilities.InterfaceMatchAnyVersion) + .WithProduct(kDeviceLocalizedName)); } /// @@ -220,16 +222,36 @@ namespace VIVE.OpenXR.Hand /// protected override void UnregisterDeviceLayout() { - sb.Clear().Append(LOG_TAG).Append("UnregisterDeviceLayout() ").Append(kLayoutName); DEBUG(sb); + sb.Clear().Append("UnregisterDeviceLayout() ").Append(kLayoutName); DEBUG(sb); InputSystem.RemoveLayout(kLayoutName); } +#if UNITY_XR_OPENXR_1_9_1 + /// + /// Return interaction profile type. HandInteractionDevice profile is Device type. + /// + /// Interaction profile type. + protected override InteractionProfileType GetInteractionProfileType() + { + return typeof(HandInteractionDevice).IsSubclassOf(typeof(XRController)) ? InteractionProfileType.XRController : InteractionProfileType.Device; + } + + /// + /// Return device layer out string used for registering device HandInteractionDevice in InputSystem. + /// + /// Device layout string. + protected override string GetDeviceLayoutName() + { + return kLayoutName; + } +#endif + /// /// Registers action maps to Unity XR. /// protected override void RegisterActionMapsWithRuntime() { - sb.Clear().Append(LOG_TAG).Append("RegisterActionMapsWithRuntime() Action map vivehandinteraction") + sb.Clear().Append("RegisterActionMapsWithRuntime() Action map vivehandinteraction") .Append(", localizedName: ").Append(kDeviceLocalizedName) .Append(", desiredInteractionProfile").Append(profile); DEBUG(sb); diff --git a/com.htc.upm.vive.openxr/Runtime/Features/Hand/Interaction/Scripts/ViveHandInteractionExt.cs b/com.htc.upm.vive.openxr/Runtime/Features/Hand/Interaction/Scripts/ViveHandInteractionExt.cs new file mode 100644 index 0000000..30d18a5 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Features/Hand/Interaction/Scripts/ViveHandInteractionExt.cs @@ -0,0 +1,585 @@ +// Copyright HTC Corporation All Rights Reserved. + +using UnityEngine.Scripting; +using UnityEngine.XR.OpenXR.Features; +using UnityEngine.InputSystem.Layouts; +using UnityEngine.InputSystem.XR; +using UnityEngine.InputSystem.Controls; +using UnityEngine.XR.OpenXR; +using UnityEngine; +using UnityEngine.InputSystem; +using System.Collections.Generic; +using UnityEngine.XR; +using UnityEngine.XR.OpenXR.Input; +using System.Text; + +#if UNITY_EDITOR +using UnityEditor; +using UnityEditor.XR.OpenXR.Features; +#endif + +#if USE_INPUT_SYSTEM_POSE_CONTROL // Scripting Define Symbol added by using OpenXR Plugin 1.6.0. +using PoseControl = UnityEngine.InputSystem.XR.PoseControl; +#else +using PoseControl = UnityEngine.XR.OpenXR.Input.PoseControl; +#endif + +namespace VIVE.OpenXR.Hand +{ + /// + /// This enables the use of hand interaction profiles in OpenXR. It enables XR_EXT_hand_interaction in the underyling runtime. + /// +#if UNITY_EDITOR + [OpenXRFeature(UiName = "VIVE XR Hand Interaction Ext", + Hidden = true, + BuildTargetGroups = new[] { BuildTargetGroup.Android }, + Company = "HTC", + Desc = "Support for enabling the KHR hand interaction profile. Will register the controller map for hand interaction if enabled.", + DocumentationLink = "https://registry.khronos.org/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_hand_interaction", + Version = "1.0.0", + OpenxrExtensionStrings = kOpenxrExtensionString, + Category = FeatureCategory.Interaction, + FeatureId = featureId)] +#endif + public class ViveHandInteractionExt : OpenXRInteractionFeature + { + #region Log + const string LOG_TAG = "VIVE.OpenXR.Hand.ViveHandInteractionExt"; + StringBuilder m_sb = null; + StringBuilder sb { + get { + if (m_sb == null) { m_sb = new StringBuilder(); } + return m_sb; + } + } + void DEBUG(StringBuilder msg) { Debug.LogFormat("{0} {1}", LOG_TAG, msg); } + void WARNING(StringBuilder msg) { Debug.LogWarningFormat("{0} {1}", LOG_TAG, msg); } + #endregion + + /// + /// OpenXR specification 12.69. XR_HTC_hand_interaction. + /// + public const string kOpenxrExtensionString = "XR_EXT_hand_interaction"; + + /// + /// The feature id string. This is used to give the feature a well known id for reference. + /// + public const string featureId = "vive.openxr.feature.hand.interaction.ext"; + + [Preserve, InputControlLayout(displayName = "VIVE Hand Interaction Ext (OpenXR)", commonUsages = new[] { "LeftHand", "RightHand" })] + public class HandInteractionExtDevice : XRController + { + #region Log + const string LOG_TAG = "VIVE.OpenXR.Hand.ViveHandInteractionExt.HandInteractionExtDevice"; + void DEBUG(string msg) { Debug.LogFormat("{0} {1}", LOG_TAG, msg); } + #endregion + + #region Action Path + /// + /// A representing the OpenXR binding. + /// + [Preserve, InputControl(offset = 0, aliases = new[] { "device", "gripPose" }, usage = "Device")] + public PoseControl devicePose { get; private set; } + + /// + /// A representing the OpenXR binding. + /// + [Preserve, InputControl(offset = 0, alias = "aimPose", usage = "Pointer")] + public PoseControl pointer { get; private set; } + + /// + /// A representing the OpenXR binding. + /// + [Preserve, InputControl(offset = 0, usage = "Pinch")] + public PoseControl pinchPose { get; private set; } + + /// + /// A representing the OpenXR binding. + /// + [Preserve, InputControl(offset = 0, alias = "indexTip", usage = "Poke")] + public PoseControl pokePose { get; private set; } + + /// + /// A representing information from the OpenXR binding. + /// + [Preserve, InputControl(aliases = new[] { "gripValue" }, usage = "GraspValue")] + public AxisControl graspValue { get; private set; } + /// + /// A representing the OpenXR bindings, depending on handedness. + /// + [Preserve, InputControl(aliases = new[] { "isGrasped", "isGripped" }, usage = "GraspReady")] + public ButtonControl graspReady { get; private set; } + + /// + /// A representing information from the OpenXR binding. + /// + [Preserve, InputControl(aliases = new[] { "pointerValue" }, usage = "PointerActivateValue")] + public AxisControl pointerActivateValue { get; private set; } + /// + /// A representing the OpenXR bindings, depending on handedness. + /// + [Preserve, InputControl(aliases = new[] { "isPointed", "pointerReady" }, usage = "PointerActivateReady")] + public ButtonControl pointerActivateReady { get; private set; } + + /// + /// A representing information from the OpenXR binding. + /// + [Preserve, InputControl(usage = "PinchValue")] + public AxisControl pinchValue { get; private set; } + /// + /// A representing the OpenXR bindings, depending on handedness. + /// + [Preserve, InputControl(aliases = new[] { "isPinched" }, usage = "PinchReady")] + public ButtonControl pinchReady { get; private set; } + + /// + /// A [ButtonControl](xref:UnityEngine.InputSystem.Controls.ButtonControl) required for backwards compatibility with the XRSDK layouts. This represents the overall tracking state of the device. This value is equivalent to mapping devicePose/isTracked. + /// + [Preserve, InputControl(offset = 2)] + new public ButtonControl isTracked { get; private set; } + /// + /// A [IntegerControl](xref:UnityEngine.InputSystem.Controls.IntegerControl) required for backwards compatibility with the XRSDK layouts. This represents the bit flag set to indicate what data is valid. This value is equivalent to mapping devicePose/trackingState. + /// + [Preserve, InputControl(offset = 4)] + new public IntegerControl trackingState { get; private set; } + /// + /// A [Vector3Control](xref:UnityEngine.InputSystem.Controls.Vector3Control) required for backwards compatibility with the XRSDK layouts. This is the device position. This value is equivalent to mapping devicePose/position. + /// + [Preserve, InputControl(offset = 8, noisy = true, alias = "gripPosition")] + new public Vector3Control devicePosition { get; private set; } + /// + /// A [QuaternionControl](xref:UnityEngine.InputSystem.Controls.QuaternionControl) required for backwards compatibility with the XRSDK layouts. This is the device orientation. This value is equivalent to mapping devicePose/rotation. + /// + [Preserve, InputControl(offset = 20, noisy = true, alias = "gripRotation")] + new public QuaternionControl deviceRotation { get; private set; } + + /// + /// A [Vector3Control](xref:UnityEngine.InputSystem.Controls.Vector3Control) required for backwards compatibility with the XRSDK layouts. This is the aim position. This value is equivalent to mapping pointer/position. + /// + [Preserve, InputControl(offset = 72, noisy = true)] + public Vector3Control pointerPosition { get; private set; } + /// + /// A [QuaternionControl](xref:UnityEngine.InputSystem.Controls.QuaternionControl) required for backwards compatibility with the XRSDK layouts. This is the aim orientation. This value is equivalent to mapping pointer/rotation. + /// + [Preserve, InputControl(offset = 84, noisy = true)] + public QuaternionControl pointerRotation { get; private set; } + + /// + /// A [Vector3Control](xref:UnityEngine.InputSystem.Controls.Vector3Control) required for backwards compatibility with the XRSDK layouts. This is the pinch position. This value is equivalent to mapping pinchPose/position. + /// + [Preserve, InputControl(offset = 136, noisy = true)] + public Vector3Control pinchPosition { get; private set; } + /// + /// A [QuaternionControl](xref:UnityEngine.InputSystem.Controls.QuaternionControl) required for backwards compatibility with the XRSDK layouts. This is the pinch orientation. This value is equivalent to mapping pinchPose/rotation. + /// + [Preserve, InputControl(offset = 148, noisy = true)] + public QuaternionControl pinchRotation { get; private set; } + + /// + /// A [Vector3Control](xref:UnityEngine.InputSystem.Controls.Vector3Control) required for backwards compatibility with the XRSDK layouts. This is the poke position. This value is equivalent to mapping pokePose/position. + /// + [Preserve, InputControl(offset = 200, noisy = true)] + public Vector3Control pokePosition { get; private set; } + /// + /// A [QuaternionControl](xref:UnityEngine.InputSystem.Controls.QuaternionControl) required for backwards compatibility with the XRSDK layouts. This is the poke orientation. This value is equivalent to mapping pokePose/rotation. + /// + [Preserve, InputControl(offset = 212, noisy = true)] + public QuaternionControl pokeRotation { get; private set; } + #endregion + + /// + /// Internal call used to assign controls to the the correct element. + /// + protected override void FinishSetup() + { + DEBUG("FinishSetup() interfaceName: " + description.interfaceName + + ", deviceClass: " + description.deviceClass + + ", product: " + description.product + + ", serial: " + description.serial + + ", version: " + description.version); + + base.FinishSetup(); + + pointer = GetChildControl("pointer"); + pointerActivateValue = GetChildControl("pointerActivateValue"); + pointerActivateReady = GetChildControl("pointerActivateReady"); + + devicePose = GetChildControl("devicePose"); + graspValue = GetChildControl("graspValue"); + graspReady = GetChildControl("graspReady"); + + pinchPose = GetChildControl("pinchPose"); + pinchValue = GetChildControl("pinchValue"); + pinchReady = GetChildControl("pinchReady"); + + pokePose = GetChildControl("pokePose"); + } + } + + /// + /// The interaction profile string used to reference the hand interaction input device. + /// + public const string profile = "/interaction_profiles/ext/hand_interaction_ext"; + + #region Supported component paths + /// + /// Constant for a pose interaction binding '.../input/aim/pose' OpenXR Input Binding.

+ /// Typically used for aiming at objects out of arm¡¦s reach. When using a hand interaction profile, it is typically paired with to optimize aiming ray stability while performing the gesture.

+ /// When using a controller interaction profile, the "aim" pose is typically paired with a trigger or a button for aim and fire operations. + ///
+ public const string aim = "/input/aim/pose"; + + /// + /// Constant for a float interaction binding '.../input/aim_activate_ext/value' OpenXR Input Binding.

+ /// A 1D analog input component indicating that the user activated the action on the target that the user is pointing at with the aim pose. + ///
+ public const string pointerActivateValue = "/input/aim_activate_ext/value"; + + /// + /// Constant for a boolean interaction binding '.../input/aim_activate_ext/ready_ext' OpenXR Input Binding.

+ /// A boolean input, where the value XR_TRUE indicates that the fingers to perform the "aim_activate" gesture are properly tracked by the hand tracking device and the hand shape is observed to be ready to perform or is performing an "aim_activate" gesture. + ///
+ public const string pointerActivateReady = "/input/aim_activate_ext/ready_ext"; + + /// + /// Constant for a pose interaction binding '.../input/grip/pose' OpenXR Input Binding.

+ /// Typically used for holding a large object in the user¡¦s hand. When using a hand interaction profile, it is typically paired with for the user to directly manipulate an object held in a hand.

+ /// When using a controller interaction profile, the "grip" pose is typically paired with a "squeeze" button or trigger that gives the user the sense of tightly holding an object. + ///
+ public const string grip = "/input/grip/pose"; + + /// + /// Constant for a float interaction binding '.../input/grasp_ext/value' OpenXR Input Binding.

+ /// A 1D analog input component indicating that the user is making a fist. + ///
+ public const string graspValue = "/input/grasp_ext/value"; + + /// + /// Constant for a boolean interaction binding '.../input/grasp_ext/ready_ext' OpenXR Input Binding.

+ /// A boolean input, where the value XR_TRUE indicates that the hand performing the grasp action is properly tracked by the hand tracking device and it is observed to be ready to perform or is performing the grasp action. + ///
+ public const string graspReady = "/input/grasp_ext/ready_ext"; + + /// + /// Constant for a pose interaction binding '.../input/pinch_ext/pose' OpenXR Input Binding.

+ /// Typically used for directly manipulating a small object using the pinch gesture. When using a hand interaction profile, it is typically paired with the .

+ /// When using a controller interaction profile, it is typically paired with a trigger manipulated with the index finger, which typically requires curling the index finger and applying pressure with the fingertip. + ///
+ public const string pinchPose = "/input/pinch_ext/pose"; + + /// + /// Constant for a float interaction binding '.../input/pinch_ext/value' OpenXR Input Binding.

+ /// A 1D analog input component indicating the extent which the user is bringing their finger and thumb together to perform a "pinch" gesture. + ///
+ public const string pinchValue = "/input/pinch_ext/value"; + + /// + /// Constant for a boolean interaction binding '.../input/pinch_ext/ready_ext' OpenXR Input Binding.

+ /// A boolean input, where the value XR_TRUE indicates that the fingers used to perform the "pinch" gesture are properly tracked by the hand tracking device and the hand shape is observed to be ready to perform or is performing a "pinch" gesture. + ///
+ public const string pinchReady = "/input/pinch_ext/ready_ext"; + + /// + /// Constant for a pose interaction binding '.../input/poke_ext/pose' OpenXR Input Binding.

+ /// Typically used for contact-based interactions using the motion of the hand or fingertip. It typically does not pair with other hand gestures or buttons on the controller. The application typically uses a sphere collider with the "poke" pose to visualize the pose and detect touch with a virtual object. + ///
+ public const string poke = "/input/poke_ext/pose"; + #endregion + +#pragma warning disable + private bool m_XrInstanceCreated = false; +#pragma warning restore + private XrInstance m_XrInstance = 0; + /// + /// Called when xrCreateInstance is done. + /// + /// The created instance. + /// True for valid XrInstance + protected override bool OnInstanceCreate(ulong xrInstance) + { + if (!OpenXRRuntime.IsExtensionEnabled(kOpenxrExtensionString)) + { + sb.Clear().Append("OnInstanceCreate() ").Append(kOpenxrExtensionString).Append(" is NOT enabled."); WARNING(sb); + return false; + } + + m_XrInstanceCreated = true; + m_XrInstance = xrInstance; + sb.Clear().Append("OnInstanceCreate() " + m_XrInstance); DEBUG(sb); + + return base.OnInstanceCreate(xrInstance); + } + + private const string kLayoutName = "ViveHandInteractionExt"; + private const string kDeviceLocalizedName = "Vive Hand Interaction Ext OpenXR"; + /// + /// Registers the layout with the Input System. + /// + protected override void RegisterDeviceLayout() + { + sb.Clear().Append("RegisterDeviceLayout() ").Append(kLayoutName).Append(", product: ").Append(kDeviceLocalizedName); DEBUG(sb); + InputSystem.RegisterLayout(typeof(HandInteractionExtDevice), + kLayoutName, + matches: new InputDeviceMatcher() + .WithInterface(XRUtilities.InterfaceMatchAnyVersion) + .WithProduct(kDeviceLocalizedName)); + } + + /// + /// Removes the layout from the Input System. + /// + protected override void UnregisterDeviceLayout() + { + sb.Clear().Append("UnregisterDeviceLayout() ").Append(kLayoutName); DEBUG(sb); + InputSystem.RemoveLayout(kLayoutName); + } + +#if UNITY_XR_OPENXR_1_9_1 + /// + /// Return interaction profile type. HandInteractionExtDevice profile is Device type. + /// + /// Interaction profile type. + protected override InteractionProfileType GetInteractionProfileType() + { + return typeof(HandInteractionExtDevice).IsSubclassOf(typeof(XRController)) ? InteractionProfileType.XRController : InteractionProfileType.Device; + } + + /// + /// Return device layer out string used for registering device HandInteractionExtDevice in InputSystem. + /// + /// Device layout string. + protected override string GetDeviceLayoutName() + { + return kLayoutName; + } +#endif + + /// + /// Registers action maps to Unity XR. + /// + protected override void RegisterActionMapsWithRuntime() + { + sb.Clear().Append("RegisterActionMapsWithRuntime() Action map vivehandinteractionext") + .Append(", localizedName: ").Append(kDeviceLocalizedName) + .Append(", desiredInteractionProfile").Append(profile); + DEBUG(sb); + + ActionMapConfig actionMap = new ActionMapConfig() + { + name = "vivehandinteractionext", + localizedName = kDeviceLocalizedName, + desiredInteractionProfile = profile, + manufacturer = "HTC", + serialNumber = "", + deviceInfos = new List() + { + new DeviceConfig() + { + characteristics = (InputDeviceCharacteristics)(InputDeviceCharacteristics.HandTracking | InputDeviceCharacteristics.HeldInHand | InputDeviceCharacteristics.TrackedDevice | InputDeviceCharacteristics.Left), + userPath = UserPaths.leftHand + }, + new DeviceConfig() + { + characteristics = (InputDeviceCharacteristics)(InputDeviceCharacteristics.HandTracking | InputDeviceCharacteristics.HeldInHand | InputDeviceCharacteristics.TrackedDevice | InputDeviceCharacteristics.Right), + userPath = UserPaths.rightHand + } + }, + actions = new List() + { + // Grip Pose + new ActionConfig() + { + name = "devicePose", + localizedName = "Grasp Pose", + type = ActionType.Pose, + usages = new List() + { + "Device" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = grip, + interactionProfileName = profile, + } + } + }, + // Grip Value + new ActionConfig() + { + name = "graspValue", + localizedName = "Grip Axis", + type = ActionType.Axis1D, + usages = new List() + { + "GraspValue" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = graspValue, + interactionProfileName = profile, + } + } + }, + // Grip Ready + new ActionConfig() + { + name = "graspReady", + localizedName = "Is Grasped", + type = ActionType.Binary, + usages = new List() + { + "GraspReady" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = graspReady, + interactionProfileName = profile, + }, + } + }, + // Aim Pose + new ActionConfig() + { + name = "pointer", + localizedName = "Aim Pose", + type = ActionType.Pose, + usages = new List() + { + "Pointer" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = aim, + interactionProfileName = profile, + } + } + }, + // Aim Value + new ActionConfig() + { + name = "pointerActivateValue", + localizedName = "Pointer Axis", + type = ActionType.Axis1D, + usages = new List() + { + "PointerActivateValue" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = pointerActivateValue, + interactionProfileName = profile, + } + } + }, + // Aim Ready + new ActionConfig() + { + name = "pointerActivateReady", + localizedName = "Is Pointed", + type = ActionType.Binary, + usages = new List() + { + "PointerActivateReady" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = pointerActivateReady, + interactionProfileName = profile, + }, + } + }, + // Pinch Pose + new ActionConfig() + { + name = "pinchPose", + localizedName = "Pinch Pose", + type = ActionType.Pose, + usages = new List() + { + "Pinch" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = pinchPose, + interactionProfileName = profile, + } + } + }, + // Pinch Value + new ActionConfig() + { + name = "pinchValue", + localizedName = "Pinch Axis", + type = ActionType.Axis1D, + usages = new List() + { + "PinchValue" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = pinchValue, + interactionProfileName = profile, + } + } + }, + // Pinch Ready + new ActionConfig() + { + name = "pinchReady", + localizedName = "Is Pinched", + type = ActionType.Binary, + usages = new List() + { + "PinchReady" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = pinchReady, + interactionProfileName = profile, + }, + } + }, + // Poke Pose + new ActionConfig() + { + name = "pokePose", + localizedName = "Index Tip", + type = ActionType.Pose, + usages = new List() + { + "Poke" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = poke, + interactionProfileName = profile, + } + } + }, + } + }; + + AddActionMap(actionMap); + } + } +} \ No newline at end of file diff --git a/com.htc.upm.vive.openxr/Runtime/Features/Hand/Interaction/Scripts/ViveHandInteractionExt.cs.meta b/com.htc.upm.vive.openxr/Runtime/Features/Hand/Interaction/Scripts/ViveHandInteractionExt.cs.meta new file mode 100644 index 0000000..63c6b18 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Features/Hand/Interaction/Scripts/ViveHandInteractionExt.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e1477dbc8916dff4f8e21fc343efcd46 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Features/Hand/Tracking/Scripts/ViveHandTracking.cs b/com.htc.upm.vive.openxr/Runtime/Features/Hand/Tracking/Scripts/ViveHandTracking.cs index 94f9535..b2ea076 100644 --- a/com.htc.upm.vive.openxr/Runtime/Features/Hand/Tracking/Scripts/ViveHandTracking.cs +++ b/com.htc.upm.vive.openxr/Runtime/Features/Hand/Tracking/Scripts/ViveHandTracking.cs @@ -1,14 +1,18 @@ // Copyright HTC Corporation All Rights Reserved. +using UnityEngine; +using UnityEngine.XR; using UnityEngine.XR.OpenXR; using UnityEngine.XR.OpenXR.Features; -using UnityEngine; -using System.Runtime.InteropServices; using System; -using System.Linq; -using UnityEngine.XR; using System.Collections.Generic; +using System.Linq; +using System.Runtime.InteropServices; +using System.Text; using AOT; +using UnityEngine.InputSystem; +using UnityEngine.InputSystem.LowLevel; + #if UNITY_EDITOR using UnityEditor; using UnityEditor.XR.OpenXR.Features; @@ -18,7 +22,7 @@ namespace VIVE.OpenXR.Hand { #if UNITY_EDITOR [OpenXRFeature(UiName = "VIVE XR Hand Tracking", - BuildTargetGroups = new[] { BuildTargetGroup.Android , BuildTargetGroup.Standalone }, + BuildTargetGroups = new[] { BuildTargetGroup.Android, BuildTargetGroup.Standalone }, Company = "HTC", Desc = "Support the Hand Tracking extension.", DocumentationLink = "..\\Documentation", @@ -28,10 +32,23 @@ namespace VIVE.OpenXR.Hand #endif public class ViveHandTracking : OpenXRFeature { - const string LOG_TAG = "VIVE.OpenXR.Hand.ViveHandTracking"; - void DEBUG(string msg) { Debug.Log(LOG_TAG + " " + msg); } - void WARNING(string msg) { Debug.LogWarning(LOG_TAG + " " + msg); } - void ERROR(string msg) { Debug.LogError(LOG_TAG + " " + msg); } + #region Log + const string LOG_TAG = "VIVE.OpenXR.Hand.ViveHandTracking "; + StringBuilder m_sb = null; + StringBuilder sb + { + get + { + if (m_sb == null) { m_sb = new StringBuilder(); } + return m_sb; + } + } + void DEBUG(String msg) { Debug.Log(LOG_TAG + msg); } + void DEBUG(StringBuilder msg) { Debug.Log(msg); } + void WARNING(StringBuilder msg) { Debug.LogWarning(msg); } + void ERROR(String msg) { Debug.LogError(LOG_TAG + msg); } + void ERROR(StringBuilder msg) { Debug.LogError(msg); } + #endregion /// /// OpenXR specification 12.29 XR_EXT_hand_tracking. @@ -99,13 +116,14 @@ namespace VIVE.OpenXR.Hand { if (!OpenXRRuntime.IsExtensionEnabled(kOpenxrExtensionString)) { - WARNING("OnInstanceCreate() " + kOpenxrExtensionString + " is NOT enabled."); + sb.Clear().Append(LOG_TAG).Append("OnInstanceCreate() ").Append(kOpenxrExtensionString).Append(" is NOT enabled."); WARNING(sb); return false; } m_XrInstanceCreated = true; m_XrInstance = xrInstance; - DEBUG("OnInstanceCreate() " + m_XrInstance); + InputSystem.onAfterUpdate += UpdateCallback; + sb.Clear().Append(LOG_TAG).Append("OnInstanceCreate() ").Append(m_XrInstance); DEBUG(sb); return GetXrFunctionDelegates(m_XrInstance); } @@ -115,9 +133,13 @@ namespace VIVE.OpenXR.Hand /// The instance to destroy. protected override void OnInstanceDestroy(ulong xrInstance) { - m_XrInstanceCreated = false; - m_XrInstance = 0; - DEBUG("OnInstanceDestroy() " + xrInstance); + if (m_XrInstance == xrInstance) + { + m_XrInstanceCreated = false; + m_XrInstance = 0; + InputSystem.onAfterUpdate -= UpdateCallback; + } + sb.Clear().Append(LOG_TAG).Append("OnInstanceDestroy() ").Append(xrInstance); DEBUG(sb); } private XrSystemId m_XrSystemId = 0; @@ -128,7 +150,7 @@ namespace VIVE.OpenXR.Hand protected override void OnSystemChange(ulong xrSystem) { m_XrSystemId = xrSystem; - DEBUG("OnSystemChange() " + m_XrSystemId); + sb.Clear().Append(LOG_TAG).Append("OnSystemChange() ").Append(m_XrSystemId); DEBUG(sb); } private bool m_XrSessionCreated = false; @@ -146,7 +168,7 @@ namespace VIVE.OpenXR.Hand { m_XrSession = xrSession; m_XrSessionCreated = true; - DEBUG("OnSessionCreate() " + m_XrSession); + sb.Clear().Append(LOG_TAG).Append("OnSessionCreate() ").Append(m_XrSession); DEBUG(sb); // Enumerate supported reference space types and create the XrSpace. XrReferenceSpaceType[] spaces = new XrReferenceSpaceType[Enum.GetNames(typeof(XrReferenceSpaceType)).Count()]; @@ -158,7 +180,7 @@ namespace VIVE.OpenXR.Hand spaces: out spaces[0]) == XrResult.XR_SUCCESS) #pragma warning restore 0618 { - DEBUG("OnSessionCreate() spaceCountOutput: " + spaceCountOutput); + sb.Clear().Append(LOG_TAG).Append("OnSessionCreate() spaceCountOutput: ").Append(spaceCountOutput); DEBUG(sb); Array.Resize(ref spaces, (int)spaceCountOutput); #pragma warning disable 0618 @@ -186,7 +208,7 @@ namespace VIVE.OpenXR.Hand #pragma warning restore 0618 { hasReferenceSpaceLocal = true; - DEBUG("OnSessionCreate() CreateReferenceSpace LOCAL: " + m_ReferenceSpaceLocal); + sb.Clear().Append(LOG_TAG).Append("OnSessionCreate() CreateReferenceSpace LOCAL: ").Append(m_ReferenceSpaceLocal); DEBUG(sb); } else { @@ -210,7 +232,7 @@ namespace VIVE.OpenXR.Hand #pragma warning restore 0618 { hasReferenceSpaceStage = true; - DEBUG("OnSessionCreate() CreateReferenceSpace STAGE: " + m_ReferenceSpaceStage); + sb.Clear().Append(LOG_TAG).Append("OnSessionCreate() CreateReferenceSpace STAGE: ").Append(m_ReferenceSpaceStage); DEBUG(sb); } else { @@ -220,7 +242,7 @@ namespace VIVE.OpenXR.Hand } else { - ERROR("OnSessionCreate() EnumerateReferenceSpaces(" + spaceCountOutput + ") failed."); + sb.Clear().Append(LOG_TAG).Append("OnSessionCreate() EnumerateReferenceSpaces(").Append(spaceCountOutput).Append(") failed."); ERROR(sb); } } else @@ -233,7 +255,7 @@ namespace VIVE.OpenXR.Hand { hasLeftHandTracker = true; leftHandTracker = value; - DEBUG("OnSessionCreate() leftHandTracker " + leftHandTracker); + sb.Clear().Append(LOG_TAG).Append("OnSessionCreate() leftHandTracker ").Append(leftHandTracker); DEBUG(sb); } } { // right hand tracker @@ -241,7 +263,7 @@ namespace VIVE.OpenXR.Hand { hasRightHandTracker = true; rightHandTracker = value; - DEBUG("OnSessionCreate() rightHandTracker " + rightHandTracker); + sb.Clear().Append(LOG_TAG).Append("OnSessionCreate() rightHandTracker ").Append(rightHandTracker); DEBUG(sb); } } } @@ -252,7 +274,7 @@ namespace VIVE.OpenXR.Hand /// The session ID to destroy. protected override void OnSessionDestroy(ulong xrSession) { - DEBUG("OnSessionDestroy() " + xrSession); + sb.Clear().Append(LOG_TAG).Append("OnSessionDestroy() ").Append(xrSession); DEBUG(sb); // Reference Space is binding with xrSession so we destroy the xrSpace when xrSession is destroyed. if (hasReferenceSpaceLocal) @@ -261,12 +283,12 @@ namespace VIVE.OpenXR.Hand if (DestroySpace(m_ReferenceSpaceLocal) == XrResult.XR_SUCCESS) #pragma warning restore 0618 { - DEBUG("OnSessionDestroy() DestroySpace LOCAL " + m_ReferenceSpaceLocal); + sb.Clear().Append(LOG_TAG).Append("OnSessionDestroy() DestroySpace LOCAL ").Append(m_ReferenceSpaceLocal); DEBUG(sb); m_ReferenceSpaceLocal = 0; } else { - ERROR("OnSessionDestroy() DestroySpace LOCAL " + m_ReferenceSpaceLocal + " failed."); + sb.Clear().Append(LOG_TAG).Append("OnSessionDestroy() DestroySpace LOCAL ").Append(m_ReferenceSpaceLocal).Append(" failed."); ERROR(sb); } hasReferenceSpaceLocal = false; } @@ -276,12 +298,12 @@ namespace VIVE.OpenXR.Hand if (DestroySpace(m_ReferenceSpaceStage) == XrResult.XR_SUCCESS) #pragma warning restore 0618 { - DEBUG("OnSessionDestroy() DestroySpace STAGE " + m_ReferenceSpaceStage); + sb.Clear().Append(LOG_TAG).Append("OnSessionDestroy() DestroySpace STAGE ").Append(m_ReferenceSpaceStage); DEBUG(sb); m_ReferenceSpaceStage = 0; } else { - ERROR("OnSessionDestroy() DestroySpace STAGE " + m_ReferenceSpaceStage + " failed."); + sb.Clear().Append(LOG_TAG).Append("OnSessionDestroy() DestroySpace STAGE ").Append(m_ReferenceSpaceStage).Append(" failed."); ERROR(sb); } hasReferenceSpaceStage = false; } @@ -291,11 +313,11 @@ namespace VIVE.OpenXR.Hand { if (DestroyHandTrackerEXT(leftHandTracker) == XrResult.XR_SUCCESS) { - DEBUG("OnSessionDestroy() Left DestroyHandTrackerEXT " + leftHandTracker); + sb.Clear().Append(LOG_TAG).Append("OnSessionDestroy() Left DestroyHandTrackerEXT ").Append(leftHandTracker); DEBUG(sb); } else { - ERROR("OnSessionDestroy() Left DestroyHandTrackerEXT " + leftHandTracker + " failed."); + sb.Clear().Append(LOG_TAG).Append("OnSessionDestroy() Left DestroyHandTrackerEXT ").Append(leftHandTracker).Append(" failed."); ERROR(sb); } hasLeftHandTracker = false; } @@ -303,11 +325,11 @@ namespace VIVE.OpenXR.Hand { if (DestroyHandTrackerEXT(rightHandTracker) == XrResult.XR_SUCCESS) { - DEBUG("OnSessionDestroy() Right DestroyHandTrackerEXT " + rightHandTracker); + sb.Clear().Append(LOG_TAG).Append("OnSessionDestroy() Right DestroyHandTrackerEXT ").Append(rightHandTracker); DEBUG(sb); } else { - ERROR("OnSessionDestroy() Right DestroyHandTrackerEXT " + rightHandTracker + " failed."); + sb.Clear().Append(LOG_TAG).Append("OnSessionDestroy() Right DestroyHandTrackerEXT ").Append(rightHandTracker).Append(" failed."); ERROR(sb); } hasRightHandTracker = false; } @@ -453,13 +475,13 @@ namespace VIVE.OpenXR.Hand if (createInfo.hand == XrHandEXT.XR_HAND_LEFT_EXT && hasLeftHandTracker) { - DEBUG("CreateHandTrackerEXT() Left tracker " + leftHandTracker + " already created."); + sb.Clear().Append(LOG_TAG).Append("CreateHandTrackerEXT() Left tracker ").Append(leftHandTracker).Append(" already created."); DEBUG(sb); handTracker = leftHandTracker; return XrResult.XR_SUCCESS; } if (createInfo.hand == XrHandEXT.XR_HAND_RIGHT_EXT && hasRightHandTracker) { - DEBUG("CreateHandTrackerEXT() Right tracker " + rightHandTracker + " already created."); + sb.Clear().Append(LOG_TAG).Append("CreateHandTrackerEXT() Right tracker ").Append(rightHandTracker).Append(" already created."); DEBUG(sb); handTracker = rightHandTracker; return XrResult.XR_SUCCESS; } @@ -677,7 +699,7 @@ namespace VIVE.OpenXR.Hand bool support = false; for (int i = 0; i < spaceCountOutput; i++) { - DEBUG("IsReferenceSpaceTypeSupported() supported space[" + i + "]: " + spaces[i]); + sb.Clear().Append(LOG_TAG).Append("IsReferenceSpaceTypeSupported() supported space[").Append(i).Append("]: ").Append(spaces[i]); DEBUG(sb); if (spaces[i] == space) { support = true; } } @@ -720,7 +742,7 @@ namespace VIVE.OpenXR.Hand sys_hand_tracking_prop_ptr = new IntPtr(offset); handTrackingSystemProperties = (XrSystemHandTrackingPropertiesEXT)Marshal.PtrToStructure(sys_hand_tracking_prop_ptr, typeof(XrSystemHandTrackingPropertiesEXT)); - DEBUG("IsHandTrackingSupported() XrSystemHandTrackingPropertiesEXT.supportsHandTracking: " + handTrackingSystemProperties.supportsHandTracking); + sb.Clear().Append(LOG_TAG).Append("IsHandTrackingSupported() XrSystemHandTrackingPropertiesEXT.supportsHandTracking: ").Append((UInt32)handTrackingSystemProperties.supportsHandTracking); DEBUG(sb); ret = handTrackingSystemProperties.supportsHandTracking > 0; } else @@ -736,7 +758,7 @@ namespace VIVE.OpenXR.Hand { if (!IsHandTrackingSupported()) { - ERROR("CreateHandTrackers() " + (isLeft ? "Left" : "Right") + " hand tracking is NOT supported."); + sb.Clear().Append(LOG_TAG).Append("CreateHandTrackers() ").Append((isLeft ? "Left" : "Right")).Append(" hand tracking is NOT supported."); ERROR(sb); handTracker = 0; return false; } @@ -748,7 +770,7 @@ namespace VIVE.OpenXR.Hand createInfo.handJointSet = XrHandJointSetEXT.XR_HAND_JOINT_SET_DEFAULT_EXT; var ret = CreateHandTrackerEXT(ref createInfo, out handTracker); - DEBUG("CreateHandTrackers() " + (isLeft ? "Left" : "Right") + " CreateHandTrackerEXT = " + ret); + sb.Clear().Append(LOG_TAG).Append("CreateHandTrackers() ").Append((isLeft ? "Left" : "Right")).Append(" CreateHandTrackerEXT = ").Append(ret); DEBUG(sb); return ret == XrResult.XR_SUCCESS; } @@ -773,20 +795,52 @@ namespace VIVE.OpenXR.Hand return true; } + private int lastUpdateFrameL = -1, lastUpdateFrameR = -1; + private void UpdateCallback() + { + // Only allow updating poses once at BeforeRender & Dynamic per frame. + if (InputState.currentUpdateType == InputUpdateType.BeforeRender || + InputState.currentUpdateType == InputUpdateType.Dynamic) + { + lastUpdateFrameL = -1; + lastUpdateFrameR = -1; + } + } + private bool AllowUpdate(bool isLeft) + { + bool allow; + if (isLeft) + { + allow = (lastUpdateFrameL != Time.frameCount); + lastUpdateFrameL = Time.frameCount; + } + else + { + allow = (lastUpdateFrameR != Time.frameCount); + lastUpdateFrameR = Time.frameCount; + } + return allow; + } + /// /// Retrieves the XrHandJointLocationEXT data. /// /// Left or right hand. /// Output parameter to retrieve XrHandJointLocationEXT data. + /// The hand tracking data timestamp. /// True for valid data. - public bool GetJointLocations(bool isLeft, out XrHandJointLocationEXT[] handJointLocation) + public bool GetJointLocations(bool isLeft, out XrHandJointLocationEXT[] handJointLocation, out XrTime timestamp) { - bool ret = false; handJointLocation = isLeft ? jointLocationsL : jointLocationsR; + timestamp = m_frameState.predictedDisplayTime; + if (!AllowUpdate(isLeft)) { return true; } + bool ret = false; if (isLeft && !hasLeftHandTracker) { return ret; } if (!isLeft && !hasRightHandTracker) { return ret; } + OpenXRHelper.Trace.Begin("GetJointLocations"); + TrackingOriginModeFlags origin = GetTrackingOriginMode(); if (origin == TrackingOriginModeFlags.Unknown || origin == TrackingOriginModeFlags.Unbounded) { return ret; } XrSpace baseSpace = (origin == TrackingOriginModeFlags.Device ? m_ReferenceSpaceLocal : m_ReferenceSpaceStage); @@ -831,6 +885,8 @@ namespace VIVE.OpenXR.Hand locateInfo: locateInfo, locations: ref locations) == XrResult.XR_SUCCESS) { + timestamp = locateInfo.time; + if (locations.isActive) { if (IntPtr.Size == 4) @@ -858,7 +914,19 @@ namespace VIVE.OpenXR.Hand } Marshal.FreeHGlobal(locations.jointLocations); + + OpenXRHelper.Trace.End(); return ret; } + /// + /// Retrieves the XrHandJointLocationEXT data. + /// + /// Left or right hand. + /// Output parameter to retrieve XrHandJointLocationEXT data. + /// True for valid data. + public bool GetJointLocations(bool isLeft, out XrHandJointLocationEXT[] handJointLocation) + { + return GetJointLocations(isLeft, out handJointLocation, out XrTime timestamp); + } } } diff --git a/com.htc.upm.vive.openxr/Runtime/Features/Interactions.meta b/com.htc.upm.vive.openxr/Runtime/Features/Interactions.meta new file mode 100644 index 0000000..591fca8 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Features/Interactions.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ed4392e61290f34419960f1139486f9f +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Features/Interactions/ViveInteractions.cs b/com.htc.upm.vive.openxr/Runtime/Features/Interactions/ViveInteractions.cs new file mode 100644 index 0000000..178ac49 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Features/Interactions/ViveInteractions.cs @@ -0,0 +1,154 @@ +// Copyright HTC Corporation All Rights Reserved. + +using UnityEditor; +using UnityEngine.XR.OpenXR.Features; +using UnityEngine; +using System.Text; + +#if UNITY_EDITOR +using UnityEditor.XR.OpenXR.Features; +#endif + +namespace VIVE.OpenXR.Interaction +{ +#if UNITY_EDITOR + [OpenXRFeature(UiName = "VIVE XR - Interaction Group", + Category = "Interactions", + BuildTargetGroups = new[] { BuildTargetGroup.Android, BuildTargetGroup.Standalone }, + Company = "HTC", + Desc = "VIVE interaction profiles management.", + OpenxrExtensionStrings = kOpenxrExtensionString, + Version = "2.5.0", + FeatureId = featureId)] +#endif + public class ViveInteractions : OpenXRFeature + { + #region Log + const string LOG_TAG = "VIVE.OpenXR.Interaction.ViveInteractions "; + static StringBuilder m_sb = null; + static StringBuilder sb + { + get + { + if (m_sb == null) { m_sb = new StringBuilder(); } + return m_sb; + } + } + static void DEBUG(StringBuilder msg) { Debug.LogFormat("{0} {1}", LOG_TAG, msg); } + static void WARNING(StringBuilder msg) { Debug.LogWarningFormat("{0} {1}", LOG_TAG, msg); } + static void ERROR(StringBuilder msg) { Debug.LogErrorFormat("{0} {1}", LOG_TAG, msg); } + #endregion + + public const string kOpenxrExtensionString = ""; + + /// + /// The feature id string. This is used to give the feature a well known id for reference. + /// + public const string featureId = "vive.openxr.feature.interactions"; + + #region OpenXR Life Cycle +#pragma warning disable + private bool m_XrInstanceCreated = false; +#pragma warning enable + private XrInstance m_XrInstance = 0; + /// + /// Called when xrCreateInstance is done. + /// + /// The created instance. + /// True for valid XrInstance + protected override bool OnInstanceCreate(ulong xrInstance) + { + m_XrInstance = xrInstance; + m_XrInstanceCreated = true; + sb.Clear().Append("OnInstanceCreate() ").Append(m_XrInstance); DEBUG(sb); + + return true; + } + /// + /// Called when xrDestroyInstance is done. + /// + /// The instance to destroy. + protected override void OnInstanceDestroy(ulong xrInstance) + { + sb.Clear().Append("OnInstanceDestroy() ").Append(xrInstance).Append(", current: ").Append(m_XrInstance); DEBUG(sb); + if (m_XrInstance == xrInstance) + { + m_XrInstanceCreated = false; + m_XrInstance = 0; + } + } + +#pragma warning disable + private bool m_XrSessionCreated = false; +#pragma warning enable + private XrSession m_XrSession = 0; + /// + /// Called when xrCreateSession is done. + /// + /// The created session ID. + protected override void OnSessionCreate(ulong xrSession) + { + m_XrSession = xrSession; + m_XrSessionCreated = true; + sb.Clear().Append("OnSessionCreate() ").Append(m_XrSession); DEBUG(sb); + } + protected override void OnSessionEnd(ulong xrSession) + { + sb.Clear().Append("OnSessionEnd() ").Append(xrSession).Append(", current: ").Append(m_XrSession); DEBUG(sb); + } + /// + /// Called when xrDestroySession is done. + /// + /// The session ID to destroy. + protected override void OnSessionDestroy(ulong xrSession) + { + sb.Clear().Append("OnSessionDestroy() ").Append(xrSession).Append(", current: ").Append(m_XrSession); DEBUG(sb); + if (m_XrSession == xrSession) + { + m_XrSessionCreated = false; + m_XrSession = 0; + } + } + + private XrSystemId m_XrSystemId = 0; + /// + /// Called when the XrSystemId retrieved by xrGetSystem is changed. + /// + /// The system id. + protected override void OnSystemChange(ulong xrSystem) + { + m_XrSystemId = xrSystem; + sb.Clear().Append("OnSystemChange() " + m_XrSystemId); DEBUG(sb); + } + #endregion + + [SerializeField] + internal bool m_ViveHandInteraction = false; + /// + /// Checks if using XR_HTC_hand_interaction or not. + /// + /// True for using. + public bool UseViveHandInteraction() { return m_ViveHandInteraction; } + [SerializeField] + internal bool m_ViveWristTracker = false; + /// + /// Checks if using VIVE Wrist Tracker or not. + /// + /// True for using. + public bool UseViveWristTracker() { return m_ViveWristTracker; } + [SerializeField] + internal bool m_ViveXRTracker = false; + /// + /// Checks if using VIVE Ultimate Tracker or not. + /// + /// True for using. + public bool UseViveXrTracker() { return m_ViveXRTracker; } + [SerializeField] + internal bool m_KHRHandInteraction = false; + /// + /// Checks if using XR_EXT_hand_interaction or not. + /// + /// True for using. + public bool UseKhrHandInteraction() { return m_KHRHandInteraction; } + } +} \ No newline at end of file diff --git a/com.htc.upm.vive.openxr/Runtime/Features/Interactions/ViveInteractions.cs.meta b/com.htc.upm.vive.openxr/Runtime/Features/Interactions/ViveInteractions.cs.meta new file mode 100644 index 0000000..6519e16 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Features/Interactions/ViveInteractions.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9396fe2350b43e04db60471cc512653e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Features/MockRuntime.meta b/com.htc.upm.vive.openxr/Runtime/Features/MockRuntime.meta new file mode 100644 index 0000000..6b02f17 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Features/MockRuntime.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b6c319d9f4e5e4c40b3e41224f10021c +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Features/MockRuntime/ViveMockRuntime.cs b/com.htc.upm.vive.openxr/Runtime/Features/MockRuntime/ViveMockRuntime.cs new file mode 100644 index 0000000..76f98da --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Features/MockRuntime/ViveMockRuntime.cs @@ -0,0 +1,76 @@ +// Copyright HTC Corporation All Rights Reserved. + +using System; +using System.Runtime.InteropServices; +using UnityEngine; +using UnityEngine.XR.OpenXR.Features; + +#if UNITY_EDITOR +using UnityEditor; +using UnityEditor.XR.OpenXR.Features; +#endif + +namespace VIVE.OpenXR.Feature +{ +#if UNITY_EDITOR + [OpenXRFeature(UiName = "VIVE XR MockRuntime", + Desc = "VIVE's mock runtime. Used with OpenXR MockRuntime to test features on Editor.", + Company = "HTC", + DocumentationLink = "..\\Documentation", + OpenxrExtensionStrings = kOpenxrExtensionString, + Version = "1.0.0", + BuildTargetGroups = new[] { BuildTargetGroup.Standalone }, + FeatureId = featureId + )] +#endif + public class ViveMockRuntime : OpenXRFeature + { + public const string kOpenxrExtensionString = ""; + + [DllImport("ViveMockRuntime", EntryPoint = "HookGetInstanceProcAddr")] + public static extern IntPtr HookGetInstanceProcAddrFake(IntPtr func); + + //AddRequiredFeature + [DllImport("ViveMockRuntime", EntryPoint = "AddRequiredFeature")] + public static extern void AddRequiredFeature(string featureName); + + /// + /// The feature id string. This is used to give the feature a well known id for reference. + /// + public const string featureId = "vive.openxr.feature.mockruntime"; + + public bool enableFuture = false; + public bool enableAnchor = false; + + #region override functions + + protected override IntPtr HookGetInstanceProcAddr(IntPtr func) + { + IntPtr nextProcAddr = func; + if (Application.isEditor) + { + Debug.Log("ViveMockRuntime: HookGetInstanceProcAddr"); + try + { + AddRequiredFeature("Future"); + AddRequiredFeature("Anchor"); + nextProcAddr = HookGetInstanceProcAddrFake(nextProcAddr); + } + catch (DllNotFoundException ex) + { + Debug.LogError("ViveMockRuntime: DLL not found: " + ex.Message); + } + catch (EntryPointNotFoundException ex) + { + Debug.LogError("ViveMockRuntime: Function not found in DLL: " + ex.Message); + } + catch (Exception ex) + { + Debug.LogError("ViveMockRuntime: Unexpected error: " + ex.Message); + } + } + return nextProcAddr; + } + #endregion override functions + } +} diff --git a/com.htc.upm.vive.openxr/Runtime/Features/MockRuntime/ViveMockRuntime.cs.meta b/com.htc.upm.vive.openxr/Runtime/Features/MockRuntime/ViveMockRuntime.cs.meta new file mode 100644 index 0000000..81a67cd --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Features/MockRuntime/ViveMockRuntime.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 453412f6d2b83664fb0383acec06862d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Features/Passthrough.meta b/com.htc.upm.vive.openxr/Runtime/Features/Passthrough.meta new file mode 100644 index 0000000..5743cf9 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Features/Passthrough.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 806671d2057229649a8ef0aaf2816393 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Features/Passthrough/Documentation.meta b/com.htc.upm.vive.openxr/Runtime/Features/Passthrough/Documentation.meta new file mode 100644 index 0000000..e3b35f0 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Features/Passthrough/Documentation.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9b16e408c09007b46bddec7439822d52 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Features/Passthrough/Documentation/OpenXRExtensions.md b/com.htc.upm.vive.openxr/Runtime/Features/Passthrough/Documentation/OpenXRExtensions.md new file mode 100644 index 0000000..9bc0b3e --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Features/Passthrough/Documentation/OpenXRExtensions.md @@ -0,0 +1,30 @@ +# 12.89. XR_HTC_passthrough +## Name String + XR_HTC_passthrough +## Revision + 1 +## New Object Types +- [XrPassthroughHTC](https://registry.khronos.org/OpenXR/specs/1.1/html/xrspec.html#XrPassthroughHTC) +## New Enum Constants +[XrObjectType](https://registry.khronos.org/OpenXR/specs/1.1/html/xrspec.html#XrObjectType) enumeration is extended with: +- XR_OBJECT_TYPE_PASSTHROUGH_HTC + +[XrStructureType](https://registry.khronos.org/OpenXR/specs/1.1/html/xrspec.html#XrStructureType) enumeration is extended with: +- XR_TYPE_PASSTHROUGH_CREATE_INFO_HTC +- XR_TYPE_PASSTHROUGH_COLOR_HTC +- XR_TYPE_PASSTHROUGH_MESH_TRANSFORM_INFO_HTC +- XR_TYPE_COMPOSITION_LAYER_PASSTHROUGH_HTC +## New Enums +- [XrPassthroughFormHTC](https://registry.khronos.org/OpenXR/specs/1.1/html/xrspec.html#XrPassthroughFormHTC) +## New Structures +- [XrPassthroughCreateInfoHTC](https://registry.khronos.org/OpenXR/specs/1.1/html/xrspec.html#XrPassthroughCreateInfoHTC) +- [XrPassthroughColorHTC](https://registry.khronos.org/OpenXR/specs/1.1/html/xrspec.html#XrPassthroughColorHTC) +- [XrPassthroughMeshTransformInfoHTC](https://registry.khronos.org/OpenXR/specs/1.1/html/xrspec.html#XrPassthroughMeshTransformInfoHTC) +- [XrCompositionLayerPassthroughHTC](https://registry.khronos.org/OpenXR/specs/1.1/html/xrspec.html#XrCompositionLayerPassthroughHTC) +## New Functions +- [xrCreatePassthroughHTC](https://registry.khronos.org/OpenXR/specs/1.1/html/xrspec.html#xrCreatePassthroughHTC) +- [xrDestroyPassthroughHTC](https://registry.khronos.org/OpenXR/specs/1.1/html/xrspec.html#xrDestroyPassthroughHTC) + +## VIVE Plugin + +Enable "VIVE XR Passthrough" in "Project Settings > XR Plugin-in Management > OpenXR > Android Tab > OpenXR Feature Groups" to use the Passthrough feature provided by VIVE OpenXR plugin. diff --git a/com.htc.upm.vive.openxr/Runtime/Features/Passthrough/Documentation/OpenXRExtensions.md.meta b/com.htc.upm.vive.openxr/Runtime/Features/Passthrough/Documentation/OpenXRExtensions.md.meta new file mode 100644 index 0000000..059a0a6 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Features/Passthrough/Documentation/OpenXRExtensions.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 0fddf83b59e7c194493074db7cc7aebb +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Features/Passthrough/Scripts.meta b/com.htc.upm.vive.openxr/Runtime/Features/Passthrough/Scripts.meta new file mode 100644 index 0000000..a49a647 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Features/Passthrough/Scripts.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a624175b30ff07b47920ec9a9699a1ea +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Features/Passthrough/Scripts/VivePassthrough.cs b/com.htc.upm.vive.openxr/Runtime/Features/Passthrough/Scripts/VivePassthrough.cs new file mode 100644 index 0000000..1de5a92 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Features/Passthrough/Scripts/VivePassthrough.cs @@ -0,0 +1,1125 @@ +// Copyright HTC Corporation All Rights Reserved. + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Runtime.InteropServices; +using System.Text; +using UnityEditor; +using UnityEngine.XR.OpenXR; +using UnityEngine.XR.OpenXR.Features; +using UnityEngine; +using UnityEngine.XR; +using AOT; + +#if UNITY_EDITOR +using UnityEditor.XR.OpenXR.Features; +#endif + +namespace VIVE.OpenXR.Passthrough +{ +#if UNITY_EDITOR + [OpenXRFeature(UiName = "VIVE XR Passthrough", + Desc = "Enable this feature to use the VIVE OpenXR Passthrough feature.", + Company = "HTC", + DocumentationLink = "..\\Documentation", + OpenxrExtensionStrings = kOpenxrExtensionStrings, + Version = "1.0.0", + BuildTargetGroups = new[] { BuildTargetGroup.Android, BuildTargetGroup.Standalone }, + FeatureId = featureId + )] +#endif + public class VivePassthrough : OpenXRFeature + { + #region LOG + const string LOG_TAG = "VIVE.OpenXR.Passthrough.VivePassthrough"; + StringBuilder m_sb = null; + StringBuilder sb { + get { + if (m_sb == null) { m_sb = new StringBuilder(); } + return m_sb; + } + } + static void DEBUG(string msg) { Debug.Log(LOG_TAG + " " + msg); } + static void DEBUG(StringBuilder msg) { Debug.LogFormat("{0} {1}", LOG_TAG, msg); } + static void WARNING(string msg) { Debug.LogWarning(LOG_TAG + " " + msg); } + static void ERROR(string msg) { Debug.LogError(LOG_TAG + " " + msg); } + #endregion + + /// + /// The feature id string. This is used to give the feature a well known id for reference. + /// + public const string featureId = "vive.openxr.feature.passthrough"; + + /// + /// The extension string. + /// + public const string kOpenxrExtensionStrings = "XR_HTC_passthrough XR_HTC_passthrough_configuration"; + +#if UNITY_STANDALONE + private static IntPtr xrGetInstanceProcAddr_prev; + private static IntPtr XrEndFrame_prev; + private static IntPtr XrWaitFrame_prev; + private static List layerListOrigin = new List(); + private static List layerListModified = new List(); + private static IntPtr layersModified = Marshal.AllocHGlobal((int)(Marshal.SizeOf(typeof(IntPtr)) * 30)); //Preallocate a layer buffer with sufficient size and reuse it for each frame. + protected override IntPtr HookGetInstanceProcAddr(IntPtr func) + { + UnityEngine.Debug.Log("EXT: registering our own xrGetInstanceProcAddr"); + xrGetInstanceProcAddr_prev = func; + return Marshal.GetFunctionPointerForDelegate(Intercept_xrGetInstanceProcAddr); + } + [MonoPInvokeCallback(typeof(OpenXRHelper.xrGetInstanceProcAddrDelegate))] + private static XrResult InterceptXrEndFrame_xrGetInstanceProcAddr(XrInstance instance, string name, out IntPtr function) + { + if (xrGetInstanceProcAddr_prev == null || xrGetInstanceProcAddr_prev == IntPtr.Zero) + { + UnityEngine.Debug.LogError("xrGetInstanceProcAddr_prev is null"); + function = IntPtr.Zero; + return XrResult.XR_ERROR_VALIDATION_FAILURE; + } + + // Get delegate of old xrGetInstanceProcAddr. + var xrGetProc = Marshal.GetDelegateForFunctionPointer(xrGetInstanceProcAddr_prev); + XrResult result = xrGetProc(instance, name, out function); + if (name == "xrEndFrame") + { + XrEndFrame_prev = function; + m_intercept_xrEndFrame = intercepted_xrEndFrame; + function = Marshal.GetFunctionPointerForDelegate(m_intercept_xrEndFrame); ; + UnityEngine.Debug.Log("Getting xrEndFrame func"); + } + if (name == "xrWaitFrame") + { + XrWaitFrame_prev = function; + m_intercept_xrWaitFrame = intercepted_xrWaitFrame; + function = Marshal.GetFunctionPointerForDelegate(m_intercept_xrWaitFrame); ; + UnityEngine.Debug.Log("Getting xrWaitFrame func"); + } + return result; + } + + [MonoPInvokeCallback(typeof(OpenXRHelper.xrEndFrameDelegate))] + private static XrResult intercepted_xrEndFrame(XrSession session, ref XrFrameEndInfo frameEndInfo) + { + XrResult res; + // Get delegate of prev xrEndFrame. + var xrEndFrame = Marshal.GetDelegateForFunctionPointer(XrEndFrame_prev); + + layerListOrigin.Clear(); + uint layerCount = frameEndInfo.layerCount; + IntPtr layers = frameEndInfo.layers; + for (int i = 0; i < layerCount; i++) + { + IntPtr ptr = Marshal.ReadIntPtr(layers, i * Marshal.SizeOf(typeof(IntPtr))); + XrCompositionLayerBaseHeader header = (XrCompositionLayerBaseHeader)Marshal.PtrToStructure(ptr, typeof(XrCompositionLayerBaseHeader)); + layerListOrigin.Add(ptr); + } + List layerListNew; + if (layerListModified.Count != 0) + { + layerListNew = new List(layerListModified); + } + else + { + layerListNew = new List(layerListOrigin); + } + for (int i = 0; i < layerListNew.Count; i++) + { + Marshal.WriteIntPtr(layersModified, i * Marshal.SizeOf(typeof(IntPtr)), layerListNew[i]); + } + frameEndInfo.layers = layersModified; + frameEndInfo.layerCount = (uint)layerListNew.Count; + + res = xrEndFrame(session, ref frameEndInfo); + return res; + } + private static XrFrameWaitInfo m_frameWaitInfo; + private static XrFrameState m_frameState; + [MonoPInvokeCallback(typeof(OpenXRHelper.xrWaitFrameDelegate))] + private static int intercepted_xrWaitFrame(ulong session, ref XrFrameWaitInfo frameWaitInfo, ref XrFrameState frameState) + { + var xrWaitFrame = Marshal.GetDelegateForFunctionPointer(XrWaitFrame_prev); + int res = xrWaitFrame(session, ref frameWaitInfo, ref frameState); + m_frameWaitInfo = frameWaitInfo; + m_frameState = frameState; + return res; + } + public void GetOriginEndFrameLayerList(out List layers) + { + layers = new List(layerListOrigin); + } + + public void SubmitLayers(List layers) + { + layerListModified = new List(layers); + //UnityEngine.Debug.Log("####Update submit end " + layerListModified.Count); + } + public XrFrameState GetFrameState() + { + return m_frameState; + } +#endif +#if UNITY_ANDROID + protected override IntPtr HookGetInstanceProcAddr(IntPtr func) + { + ViveInterceptors.Instance.AddRequiredFunction("xrPollEvent"); + return ViveInterceptors.Instance.HookGetInstanceProcAddr(func); + } +#endif + + #region OpenXR Life Cycle + private bool m_XrInstanceCreated = false; + /// + /// The XR instance is created or not. + /// + public bool XrInstanceCreated + { + get { return m_XrInstanceCreated; } + } + private XrInstance m_XrInstance = 0; + protected override bool OnInstanceCreate(ulong xrInstance) + { + foreach (string kOpenxrExtensionString in kOpenxrExtensionStrings.Split(' ')) + { + if (!OpenXRRuntime.IsExtensionEnabled(kOpenxrExtensionString)) + { + WARNING("OnInstanceCreate() " + kOpenxrExtensionString + " is NOT enabled."); + } + else + { + DEBUG("OnInstanceCreate() " + kOpenxrExtensionString + " is enabled."); + } + } + + m_XrInstanceCreated = true; + m_XrInstance = xrInstance; + DEBUG("OnInstanceCreate() " + m_XrInstance); + + return GetXrFunctionDelegates(m_XrInstance); + } + protected override void OnInstanceDestroy(ulong xrInstance) + { + m_XrInstanceCreated = false; + DEBUG("OnInstanceDestroy() " + m_XrInstance); + } + + private XrSystemId m_XrSystemId = 0; + protected override void OnSystemChange(ulong xrSystem) + { + m_XrSystemId = xrSystem; + DEBUG("OnSystemChange() " + m_XrSystemId); + } + + private bool m_XrSessionCreated = false; + /// + /// The XR session is created or not. + /// + public bool XrSessionCreated + { + get { return m_XrSessionCreated; } + } + private XrSession m_XrSession = 0; + protected override void OnSessionCreate(ulong xrSession) + { + m_XrSession = xrSession; + m_XrSessionCreated = true; + DEBUG("OnSessionCreate() " + m_XrSession); + CheckConfigurationSupport(); + } + + private XrSpace m_WorldLockSpaceOriginOnHead = 0, m_WorldLockSpaceOriginOnFloor = 0, m_HeadLockSpace = 0; + private XrSpace WorldLockSpaceOriginOnHead + { + get { return m_WorldLockSpaceOriginOnHead; } + } + private XrSpace WorldLockSpaceOriginOnFloor + { + get { return m_WorldLockSpaceOriginOnFloor; } + } + private XrSpace HeadLockSpace + { + get { return m_HeadLockSpace; } + } + + private bool m_XrSessionEnding = false; + /// + /// The XR session is ending or not. + /// + public bool XrSessionEnding + { + get { return m_XrSessionEnding; } + } + protected override void OnSessionBegin(ulong xrSession) + { + m_XrSessionEnding = false; + DEBUG("OnSessionBegin() " + m_XrSession); + + // Enumerate supported reference space types and create the XrSpace. + XrReferenceSpaceType[] spaces = new XrReferenceSpaceType[Enum.GetNames(typeof(XrReferenceSpaceType)).Count()]; + UInt32 spaceCountOutput; + if (EnumerateReferenceSpaces( + spaceCapacityInput: 0, + spaceCountOutput: out spaceCountOutput, + spaces: out spaces[0]) == XrResult.XR_SUCCESS) + { + //DEBUG("spaceCountOutput: " + spaceCountOutput); + + Array.Resize(ref spaces, (int)spaceCountOutput); + if (EnumerateReferenceSpaces( + spaceCapacityInput: spaceCountOutput, + spaceCountOutput: out spaceCountOutput, + spaces: out spaces[0]) == XrResult.XR_SUCCESS) + { + if (spaces.Contains(XrReferenceSpaceType.XR_REFERENCE_SPACE_TYPE_LOCAL)) + { + XrReferenceSpaceCreateInfo referenceSpaceCreateInfoWorldLock; + referenceSpaceCreateInfoWorldLock.type = XrStructureType.XR_TYPE_REFERENCE_SPACE_CREATE_INFO; + referenceSpaceCreateInfoWorldLock.next = IntPtr.Zero; + referenceSpaceCreateInfoWorldLock.referenceSpaceType = XrReferenceSpaceType.XR_REFERENCE_SPACE_TYPE_LOCAL; + referenceSpaceCreateInfoWorldLock.poseInReferenceSpace.orientation = new XrQuaternionf(0, 0, 0, 1); + referenceSpaceCreateInfoWorldLock.poseInReferenceSpace.position = new XrVector3f(0, 0, 0); + + if (CreateReferenceSpace( + createInfo: ref referenceSpaceCreateInfoWorldLock, + space: out m_WorldLockSpaceOriginOnHead) == XrResult.XR_SUCCESS) + { + //DEBUG("CreateReferenceSpace: " + m_WorldLockSpaceOriginOnHead); + } + else + { + ERROR("CreateReferenceSpace for world lock layers on head failed."); + } + } + else + { + ERROR("CreateReferenceSpace no space type for world lock on head layers."); + } + + if (spaces.Contains(XrReferenceSpaceType.XR_REFERENCE_SPACE_TYPE_STAGE)) + { + XrReferenceSpaceCreateInfo referenceSpaceCreateInfoWorldLock; + referenceSpaceCreateInfoWorldLock.type = XrStructureType.XR_TYPE_REFERENCE_SPACE_CREATE_INFO; + referenceSpaceCreateInfoWorldLock.next = IntPtr.Zero; + referenceSpaceCreateInfoWorldLock.referenceSpaceType = XrReferenceSpaceType.XR_REFERENCE_SPACE_TYPE_STAGE; + referenceSpaceCreateInfoWorldLock.poseInReferenceSpace.orientation = new XrQuaternionf(0, 0, 0, 1); + referenceSpaceCreateInfoWorldLock.poseInReferenceSpace.position = new XrVector3f(0, 0, 0); + + if (CreateReferenceSpace( + createInfo: ref referenceSpaceCreateInfoWorldLock, + space: out m_WorldLockSpaceOriginOnFloor) == XrResult.XR_SUCCESS) + { + //DEBUG("CreateReferenceSpace: " + m_WorldLockSpaceOriginOnFloor); + } + else + { + ERROR("CreateReferenceSpace for world lock layers on floor failed."); + } + } + else + { + ERROR("CreateReferenceSpace no space type for world lock on floor layers."); + } + + if (spaces.Contains(XrReferenceSpaceType.XR_REFERENCE_SPACE_TYPE_VIEW)) + { + XrReferenceSpaceCreateInfo referenceSpaceCreateInfoHeadLock; + referenceSpaceCreateInfoHeadLock.type = XrStructureType.XR_TYPE_REFERENCE_SPACE_CREATE_INFO; + referenceSpaceCreateInfoHeadLock.next = IntPtr.Zero; + referenceSpaceCreateInfoHeadLock.referenceSpaceType = XrReferenceSpaceType.XR_REFERENCE_SPACE_TYPE_VIEW; + referenceSpaceCreateInfoHeadLock.poseInReferenceSpace.orientation = new XrQuaternionf(0, 0, 0, 1); + referenceSpaceCreateInfoHeadLock.poseInReferenceSpace.position = new XrVector3f(0, 0, 0); + + if (CreateReferenceSpace( + createInfo: ref referenceSpaceCreateInfoHeadLock, + space: out m_HeadLockSpace) == XrResult.XR_SUCCESS) + { + //DEBUG("CreateReferenceSpace: " + m_HeadLockSpace); + } + else + { + ERROR("CreateReferenceSpace for head lock layers failed."); + } + } + else + { + ERROR("CreateReferenceSpace no space type for head lock layers."); + } + } + else + { + ERROR("EnumerateReferenceSpaces(" + spaceCountOutput + ") failed."); + } + } + else + { + ERROR("EnumerateReferenceSpaces(0) failed."); + } + } + protected override void OnSessionEnd(ulong xrSession) + { + m_XrSessionEnding = true; + DEBUG("OnSessionEnd() " + m_XrSession); + } + + /// + /// The delegate of Passthrough Session Destroy. + /// + public delegate void OnPassthroughSessionDestroyDelegate(XrPassthroughHTC passthroughID); + private Dictionary OnPassthroughSessionDestroyHandlerDictionary = new Dictionary(); + protected override void OnSessionDestroy(ulong xrSession) + { + if (!m_XrSessionCreated || m_XrSession != xrSession) { return; } + + sb.Clear().Append("OnSessionDestroy() " + xrSession); DEBUG(sb); + m_XrSessionCreated = false; + m_XrSession = 0; + + List passthroughs = PassthroughList; + for (int i = 0; i < passthroughs.Count; i++) + { + XrPassthroughHTC currentpassthrough = passthroughs[i]; + DestroyPassthroughHTC(currentpassthrough); + if (OnPassthroughSessionDestroyHandlerDictionary.ContainsKey(currentpassthrough) && OnPassthroughSessionDestroyHandlerDictionary[currentpassthrough] != null) + { + sb.Clear().Append("OnSessionDestroy() Call back ").Append(passthroughs[i]); DEBUG(sb); + OnPassthroughSessionDestroyHandlerDictionary[passthroughs[i]].Invoke(passthroughs[i]); + } + } + + if (m_HeadLockSpace != 0) + { + DestroySpace(m_HeadLockSpace); + m_HeadLockSpace = 0; + } + if (m_WorldLockSpaceOriginOnFloor != 0) + { + DestroySpace(m_WorldLockSpaceOriginOnFloor); + m_WorldLockSpaceOriginOnFloor = 0; + } + if (m_WorldLockSpaceOriginOnHead != 0) + { + DestroySpace(m_WorldLockSpaceOriginOnHead); + m_WorldLockSpaceOriginOnHead = 0; + } + } + + /// + /// The current XR session state. + /// + public XrSessionState XrSessionCurrentState + { + get { return m_XrSessionNewState; } + } + private XrSessionState m_XrSessionNewState = XrSessionState.XR_SESSION_STATE_UNKNOWN; + private XrSessionState m_XrSessionOldState = XrSessionState.XR_SESSION_STATE_UNKNOWN; + protected override void OnSessionStateChange(int oldState, int newState) + { + DEBUG("OnSessionStateChange() oldState: " + oldState + " newState:" + newState); + + if (Enum.IsDefined(typeof(XrSessionState), oldState)) + { + m_XrSessionOldState = (XrSessionState)oldState; + } + else + { + DEBUG("OnSessionStateChange() oldState undefined"); + } + + if (Enum.IsDefined(typeof(XrSessionState), newState)) + { + m_XrSessionNewState = (XrSessionState)newState; + } + else + { + DEBUG("OnSessionStateChange() newState undefined"); + } + + } + #endregion + + #region OpenXR function delegates + /// xrGetInstanceProcAddr + OpenXRHelper.xrGetInstanceProcAddrDelegate XrGetInstanceProcAddr; + + /// xrGetSystemProperties + OpenXRHelper.xrGetSystemPropertiesDelegate xrGetSystemProperties; + /// + /// Helper function to get this feature' properties. + /// See xrGetSystemProperties + /// + public XrResult GetSystemProperties(ref XrSystemProperties properties) + { + if (m_XrInstanceCreated) + { + return xrGetSystemProperties(m_XrInstance, m_XrSystemId, ref properties); + } + + return XrResult.XR_ERROR_INSTANCE_LOST; + } + +#if UNITY_STANDALONE + OpenXRHelper.xrGetInstanceProcAddrDelegate Intercept_xrGetInstanceProcAddr = + new OpenXRHelper.xrGetInstanceProcAddrDelegate(InterceptXrEndFrame_xrGetInstanceProcAddr); + + private static OpenXRHelper.xrEndFrameDelegate m_intercept_xrEndFrame; + private static OpenXRHelper.xrWaitFrameDelegate m_intercept_xrWaitFrame; + + VivePassthroughHelper.xrCreatePassthroughHTCDelegate xrCreatePassthroughHTC; + VivePassthroughHelper.xrDestroyPassthroughHTCDelegate xrDestroyPassthroughHTC; +#endif + + /// xrEnumerateReferenceSpaces + OpenXRHelper.xrEnumerateReferenceSpacesDelegate xrEnumerateReferenceSpaces; + private XrResult EnumerateReferenceSpaces(UInt32 spaceCapacityInput, out UInt32 spaceCountOutput, out XrReferenceSpaceType spaces) + { + if (!m_XrSessionCreated) + { + spaceCountOutput = 0; + spaces = XrReferenceSpaceType.XR_REFERENCE_SPACE_TYPE_UNBOUNDED_MSFT; + return XrResult.XR_ERROR_SESSION_NOT_RUNNING; + } + + return xrEnumerateReferenceSpaces(m_XrSession, spaceCapacityInput, out spaceCountOutput, out spaces); + } + + /// xrCreateReferenceSpace + OpenXRHelper.xrCreateReferenceSpaceDelegate xrCreateReferenceSpace; + /// + /// Creates a reference space + /// See xrCreateReferenceSpace + /// + private XrResult CreateReferenceSpace(ref XrReferenceSpaceCreateInfo createInfo, out XrSpace space) + { + if (!m_XrSessionCreated) + { + space = 0; + return XrResult.XR_ERROR_SESSION_NOT_RUNNING; + } + + return xrCreateReferenceSpace(m_XrSession, ref createInfo, out space); + } + + /// xrDestroySpace + OpenXRHelper.xrDestroySpaceDelegate xrDestroySpace; + private XrResult DestroySpace(XrSpace space) + { + if (space != 0) + { + return xrDestroySpace(space); + } + return XrResult.XR_ERROR_REFERENCE_SPACE_UNSUPPORTED; + } + + + VivePassthroughHelper.xrEnumeratePassthroughImageRatesHTCDelegate xrEnumeratePassthroughImageRatesHTC; + VivePassthroughHelper.xrGetPassthroughConfigurationHTCDelegate xrGetPassthroughConfigurationHTC; + VivePassthroughHelper.xrSetPassthroughConfigurationHTCDelegate xrSetPassthroughConfigurationHTC; + + private bool GetXrFunctionDelegates(XrInstance xrInstance) + { + /// xrGetInstanceProcAddr + if (xrGetInstanceProcAddr != null && xrGetInstanceProcAddr != IntPtr.Zero) + { + DEBUG("Get function pointer of xrGetInstanceProcAddr."); + XrGetInstanceProcAddr = Marshal.GetDelegateForFunctionPointer( + xrGetInstanceProcAddr, + typeof(OpenXRHelper.xrGetInstanceProcAddrDelegate)) as OpenXRHelper.xrGetInstanceProcAddrDelegate; + } + else + { + ERROR("xrGetInstanceProcAddr"); + return false; + } + + IntPtr funcPtr = IntPtr.Zero; + /// xrGetSystemProperties + if (XrGetInstanceProcAddr(xrInstance, "xrGetSystemProperties", out funcPtr) == XrResult.XR_SUCCESS) + { + if (funcPtr != IntPtr.Zero) + { + DEBUG("Get function pointer of xrGetSystemProperties."); + xrGetSystemProperties = Marshal.GetDelegateForFunctionPointer( + funcPtr, + typeof(OpenXRHelper.xrGetSystemPropertiesDelegate)) as OpenXRHelper.xrGetSystemPropertiesDelegate; + } + } + else + { + ERROR("xrGetSystemProperties"); + return false; + } + /// xrEnumerateReferenceSpaces + if (XrGetInstanceProcAddr(xrInstance, "xrEnumerateReferenceSpaces", out funcPtr) == XrResult.XR_SUCCESS) + { + if (funcPtr != IntPtr.Zero) + { + DEBUG("Get function pointer of xrEnumerateReferenceSpaces."); + xrEnumerateReferenceSpaces = Marshal.GetDelegateForFunctionPointer( + funcPtr, + typeof(OpenXRHelper.xrEnumerateReferenceSpacesDelegate)) as OpenXRHelper.xrEnumerateReferenceSpacesDelegate; + } + } + else + { + ERROR("xrEnumerateReferenceSpaces"); + return false; + } + /// xrCreateReferenceSpace + if (XrGetInstanceProcAddr(xrInstance, "xrCreateReferenceSpace", out funcPtr) == XrResult.XR_SUCCESS) + { + if (funcPtr != IntPtr.Zero) + { + DEBUG("Get function pointer of xrCreateReferenceSpace."); + xrCreateReferenceSpace = Marshal.GetDelegateForFunctionPointer( + funcPtr, + typeof(OpenXRHelper.xrCreateReferenceSpaceDelegate)) as OpenXRHelper.xrCreateReferenceSpaceDelegate; + } + } + else + { + ERROR("xrCreateReferenceSpace"); + return false; + } + /// xrDestroySpace + if (XrGetInstanceProcAddr(xrInstance, "xrDestroySpace", out funcPtr) == XrResult.XR_SUCCESS) + { + if (funcPtr != IntPtr.Zero) + { + DEBUG("Get function pointer of xrDestroySpace."); + xrDestroySpace = Marshal.GetDelegateForFunctionPointer( + funcPtr, + typeof(OpenXRHelper.xrDestroySpaceDelegate)) as OpenXRHelper.xrDestroySpaceDelegate; + } + } + else + { + ERROR("xrDestroySpace"); + return false; + } +#if UNITY_ANDROID + /// xrEnumeratePassthroughImageRatesHTC + if (XrGetInstanceProcAddr(xrInstance, "xrEnumeratePassthroughImageRatesHTC", out funcPtr) == XrResult.XR_SUCCESS) + { + if (funcPtr != IntPtr.Zero) + { + DEBUG("Get function pointer of xrEnumeratePassthroughImageRatesHTC."); + xrEnumeratePassthroughImageRatesHTC = Marshal.GetDelegateForFunctionPointer( + funcPtr, + typeof(VivePassthroughHelper.xrEnumeratePassthroughImageRatesHTCDelegate)) as VivePassthroughHelper.xrEnumeratePassthroughImageRatesHTCDelegate; + } + } + else + { + ERROR("xrEnumeratePassthroughImageRatesHTC"); + //return false; + } + + /// xrGetPassthroughConfigurationHTC + if (XrGetInstanceProcAddr(xrInstance, "xrGetPassthroughConfigurationHTC", out funcPtr) == XrResult.XR_SUCCESS) + { + if (funcPtr != IntPtr.Zero) + { + DEBUG("Get function pointer of xrGetPassthroughConfigurationHTC."); + xrGetPassthroughConfigurationHTC = Marshal.GetDelegateForFunctionPointer( + funcPtr, + typeof(VivePassthroughHelper.xrGetPassthroughConfigurationHTCDelegate)) as VivePassthroughHelper.xrGetPassthroughConfigurationHTCDelegate; + } + } + else + { + ERROR("xrGetPassthroughConfigurationHTC"); + //return false; + } + + /// xrSetPassthroughConfigurationHTC + if (XrGetInstanceProcAddr(xrInstance, "xrSetPassthroughConfigurationHTC", out funcPtr) == XrResult.XR_SUCCESS) + { + if (funcPtr != IntPtr.Zero) + { + DEBUG("Get function pointer of xrSetPassthroughConfigurationHTC."); + xrSetPassthroughConfigurationHTC = Marshal.GetDelegateForFunctionPointer( + funcPtr, + typeof(VivePassthroughHelper.xrSetPassthroughConfigurationHTCDelegate)) as VivePassthroughHelper.xrSetPassthroughConfigurationHTCDelegate; + } + } + else + { + ERROR("xrSetPassthroughConfigurationHTC"); + //return false; + } +#endif +#if UNITY_STANDALONE + /// xrCreatePassthroughHTC + if (XrGetInstanceProcAddr(xrInstance, "xrCreatePassthroughHTC", out funcPtr) == XrResult.XR_SUCCESS) + { + if (funcPtr != IntPtr.Zero) + { + DEBUG("Get function pointer of xrCreatePassthroughHTC."); + xrCreatePassthroughHTC = Marshal.GetDelegateForFunctionPointer( + funcPtr, + typeof(VivePassthroughHelper.xrCreatePassthroughHTCDelegate)) as VivePassthroughHelper.xrCreatePassthroughHTCDelegate; + } + } + else + { + ERROR("xrCreatePassthroughHTC"); + return false; + } + /// xrCreatePassthroughHTC + if (XrGetInstanceProcAddr(xrInstance, "xrDestroyPassthroughHTC", out funcPtr) == XrResult.XR_SUCCESS) + { + if (funcPtr != IntPtr.Zero) + { + DEBUG("Get function pointer of xrDestroyPassthroughHTC."); + xrDestroyPassthroughHTC = Marshal.GetDelegateForFunctionPointer( + funcPtr, + typeof(VivePassthroughHelper.xrDestroyPassthroughHTCDelegate)) as VivePassthroughHelper.xrDestroyPassthroughHTCDelegate; + } + } + else + { + ERROR("xrDestroyPassthroughHTC"); + return false; + } +#endif + +#if UNITY_ANDROID + if (GetFuncAddrs(xrInstance, xrGetInstanceProcAddr) == XrResult.XR_SUCCESS) + { + DEBUG("Get function pointers in native."); + } + else + { + ERROR("GetFuncAddrs"); + return false; + } +#endif + return true; + } +#endregion + +#if UNITY_ANDROID +#region Android Hook - Public + private const string ExtLib = "viveopenxr"; + [DllImport(ExtLib, EntryPoint = "htcpassthrough_CreatePassthrough")] + private static extern int ViveCreatePassthrough(XrSession session, CompositionLayer.LayerType layerType, PassthroughLayerForm layerForm, uint compositionDepth = 0); + [DllImport(ExtLib, EntryPoint = "htcpassthrough_DestroyPassthrough")] + private static extern bool ViveDestroyPassthrough(int passthroughID); + + [DllImport(ExtLib, EntryPoint = "htcpassthrough_SetAlpha")] + private static extern bool ViveSetAlpha(int passthroughID, float alpha); + /// + /// Set Passthough Alpha. + /// + public bool SetAlpha(XrPassthroughHTC passthrough, float alpha) + { + if (!m_XrInstanceCreated) + { + ERROR("SetAlpha: " + kOpenxrExtensionStrings + " is NOT enabled."); + return false; + } + if (passthrough == 0) { ERROR("SetAlpha() Invalid passthrough."); return false; } + + int passthroughID = (int)(passthrough & 0x00007FFF); + sb.Clear().Append("SetAlpha() passthrough: ").Append(passthroughID).Append(", alpha: ").Append(alpha); DEBUG(sb); + return ViveSetAlpha(passthroughID, alpha); + } + + [DllImport(ExtLib, EntryPoint = "htcpassthrough_SetLayerType")] + private static extern bool ViveSetLayerType(int passthroughID, CompositionLayer.LayerType layerType, uint compositionDepth = 0); + /// + /// Set Passthough Layer Type. + /// + public bool SetLayerType(XrPassthroughHTC passthrough, CompositionLayer.LayerType layerType, uint compositionDepth = 0) + { + if (!m_XrInstanceCreated) + { + ERROR("SetLayerType: " + kOpenxrExtensionStrings + " is NOT enabled."); + return false; + } + if (passthrough == 0) { ERROR("SetLayerType() Invalid passthrough."); return false; } + + int passthroughID = (int)(passthrough & 0x00007FFF); + sb.Clear().Append("SetAlpha() passthrough: ").Append(passthroughID).Append(", layerType: ").Append(layerType).Append(", compositionDepth: ").Append(compositionDepth); DEBUG(sb); + return ViveSetLayerType(passthroughID, layerType, compositionDepth); + } + + [DllImport(ExtLib, EntryPoint = "htcpassthrough_SetMesh")] + private static extern bool ViveSetMesh(int passthroughID, uint vertexCount, [In, Out] XrVector3f[] vertexBuffer, uint indexCount, [In, Out] uint[] indexBuffer); + /// + /// Set Passthough Mesh. + /// + public bool SetMesh(XrPassthroughHTC passthrough, uint vertexCount, [In, Out] XrVector3f[] vertexBuffer, uint indexCount, [In, Out] uint[] indexBuffer) + { + if (!m_XrInstanceCreated) + { + ERROR("SetMesh: " + kOpenxrExtensionStrings + " is NOT enabled."); + return false; + } + if (passthrough == 0) { ERROR("SetMesh() Invalid passthrough."); return false; } + + int passthroughID = (int)(passthrough & 0x00007FFF); + sb.Clear().Append("SetMesh() passthrough: ").Append(passthroughID).Append(", vertexCount: ").Append(vertexCount).Append(", indexCount: ").Append(indexCount); DEBUG(sb); + return ViveSetMesh(passthroughID, vertexCount, vertexBuffer, indexCount, indexBuffer); + } + + [DllImport(ExtLib, EntryPoint = "htcpassthrough_SetMeshTransform")] + private static extern bool ViveSetMeshTransform(int passthroughID, XrSpace meshSpace, XrPosef meshPose, XrVector3f meshScale); + /// + /// Set Passthough Mesh Transform. + /// + public bool SetMeshTransform(XrPassthroughHTC passthrough, XrSpace meshSpace, XrPosef meshPose, XrVector3f meshScale) + { + if (!m_XrInstanceCreated) + { + ERROR("SetMeshTransform: " + kOpenxrExtensionStrings + " is NOT enabled."); + return false; + } + if (passthrough == 0) { ERROR("SetMeshTransform() Invalid passthrough."); return false; } + + int passthroughID = (int)(passthrough & 0x00007FFF); + sb.Clear().Append("SetMeshTransform() passthrough: ").Append(passthroughID).Append(", meshSpace: ").Append(meshSpace); DEBUG(sb); + return ViveSetMeshTransform(passthroughID, meshSpace, meshPose, meshScale); + } + + [DllImport(ExtLib, EntryPoint = "htcpassthrough_SetMeshTransformSpace")] + private static extern bool ViveSetMeshTransformSpace(int passthroughID, XrSpace meshSpace); + /// + /// Set Passthough Mesh Transform Space. + /// + public bool SetMeshTransformSpace(XrPassthroughHTC passthrough, XrSpace meshSpace) + { + if (!m_XrInstanceCreated) + { + ERROR("SetMeshTransformSpace: " + kOpenxrExtensionStrings + " is NOT enabled."); + return false; + } + if (passthrough == 0) { ERROR("SetMeshTransformSpace() Invalid passthrough."); return false; } + + int passthroughID = (int)(passthrough & 0x00007FFF); + sb.Clear().Append("SetMeshTransformSpace() passthrough: ").Append(passthroughID).Append(", meshSpace: ").Append(meshSpace); DEBUG(sb); + return ViveSetMeshTransformSpace(passthroughID, meshSpace); + } + + [DllImport(ExtLib, EntryPoint = "htcpassthrough_SetMeshTransformPosition")] + private static extern bool ViveSetMeshTransformPosition(int passthroughID, XrVector3f meshPosition); + /// + /// Set Passthough Mesh Transform Position. + /// + public bool SetMeshTransformPosition(XrPassthroughHTC passthrough, XrVector3f meshPosition) + { + if (!m_XrInstanceCreated) + { + ERROR("SetMeshTransformPosition: " + kOpenxrExtensionStrings + " is NOT enabled."); + return false; + } + if (passthrough == 0) { ERROR("SetMeshTransformPosition() Invalid passthrough."); return false; } + + int passthroughID = (int)(passthrough & 0x00007FFF); + sb.Clear().Append("SetMeshTransformPosition() passthrough: ").Append(passthroughID); DEBUG(sb); + return ViveSetMeshTransformPosition(passthroughID, meshPosition); + } + + [DllImport(ExtLib, EntryPoint = "htcpassthrough_SetMeshTransformOrientation")] + private static extern bool ViveSetMeshTransformOrientation(int passthroughID, XrQuaternionf meshOrientation); + /// + /// Set Passthough Mesh Transform orientation. + /// + public bool SetMeshTransformOrientation(XrPassthroughHTC passthrough, XrQuaternionf meshOrientation) + { + if (!m_XrInstanceCreated) + { + ERROR("SetMeshTransformOrientation: " + kOpenxrExtensionStrings + " is NOT enabled."); + return false; + } + if (passthrough == 0) { ERROR("SetMeshTransformOrientation() Invalid passthrough."); return false; } + + int passthroughID = (int)(passthrough & 0x00007FFF); + sb.Clear().Append("SetMeshTransformOrientation() passthrough: ").Append(passthroughID); DEBUG(sb); + return ViveSetMeshTransformOrientation(passthroughID, meshOrientation); + } + + [DllImport(ExtLib, EntryPoint = "htcpassthrough_SetMeshTransformScale")] + private static extern bool ViveSetMeshTransformScale(int passthroughID, XrVector3f meshScale); + /// + /// Set Passthough Mesh Transform scale. + /// + public bool SetMeshTransformScale(XrPassthroughHTC passthrough, XrVector3f meshScale) + { + if (!m_XrInstanceCreated) + { + ERROR("SetMeshTransformScale: " + kOpenxrExtensionStrings + " is NOT enabled."); + return false; + } + if (passthrough == 0) { ERROR("SetMeshTransformScale() Invalid passthrough."); return false; } + + int passthroughID = (int)(passthrough & 0x00007FFF); + sb.Clear().Append("SetMeshTransformScale() passthrough: ").Append(passthroughID); DEBUG(sb); + return ViveSetMeshTransformScale(passthroughID, meshScale); + } +#endregion + +#region Android Hook - Private + [DllImport(ExtLib, EntryPoint = "htcpassthrough_GetFuncAddrs")] + private static extern XrResult ViveGetFuncAddrs(XrInstance xrInstance, IntPtr xrGetInstanceProcAddrFuncPtr); + private XrResult GetFuncAddrs(XrInstance xrInstance, IntPtr xrGetInstanceProcAddrFuncPtr) + { + if (!m_XrInstanceCreated) + { + ERROR("ViveGetFuncAddrs: " + kOpenxrExtensionStrings + " is NOT enabled."); + return XrResult.XR_ERROR_FEATURE_UNSUPPORTED; + } + + return ViveGetFuncAddrs(xrInstance, xrGetInstanceProcAddrFuncPtr); + } +#endregion +#endif + + private List passthroughList = new List(); + public List PassthroughList { + get { + if (passthroughList == null) { passthroughList = new List(); } + return passthroughList; + } + } + +#region Public API + public XrResult CreatePassthroughHTC(XrPassthroughCreateInfoHTC createInfo, out XrPassthroughHTC passthrough, CompositionLayer.LayerType layerType, uint compositionDepth, OnPassthroughSessionDestroyDelegate onDestroy) + { + passthrough = 0; + + if (!m_XrSessionCreated) + { + ERROR("CreatePassthroughHTC() XR_ERROR_SESSION_LOST."); + return XrResult.XR_ERROR_SESSION_LOST; + } + if (!m_XrInstanceCreated) + { + ERROR("CreatePassthroughHTC() XR_ERROR_INSTANCE_LOST."); + return XrResult.XR_ERROR_INSTANCE_LOST; + } + + sb.Clear().Append("CreatePassthroughHTC() layerType: ").Append(layerType).Append(", compositionDepth: ").Append(compositionDepth); DEBUG(sb); + + XrResult result = XrResult.XR_ERROR_RUNTIME_FAILURE; + +#if UNITY_STANDALONE + result = xrCreatePassthroughHTC(m_XrSession, createInfo, out passthrough); + DEBUG("CreatePassthroughHTC() xrCreatePassthroughHTC result: " + result); + if (result == XrResult.XR_SUCCESS) + { + passthroughList.Add(passthrough); + if (onDestroy != null) { OnPassthroughSessionDestroyHandlerDictionary.Add(passthrough, onDestroy); } + } +#endif + +#if UNITY_ANDROID + int passthroughID = 0; + + if (createInfo.form == XrPassthroughFormHTC.XR_PASSTHROUGH_FORM_PLANAR_HTC) + passthroughID = ViveCreatePassthrough(m_XrSession, layerType, PassthroughLayerForm.Planar, compositionDepth); + else // createInfo.form == XrPassthroughFormHTC.XR_PASSTHROUGH_FORM_PROJECTED_HTC + passthroughID = ViveCreatePassthrough(m_XrSession, layerType, PassthroughLayerForm.Projected, compositionDepth); + + sb.Clear().Append("CreatePassthroughHTC() CreatePassthrough passthroughID: ").Append(passthroughID); DEBUG(sb); + if (passthroughID != 0) + { + passthrough = (UInt64)(passthroughID & 0x7FFFFFFF); + passthroughList.Add(passthrough); + if (onDestroy != null) { OnPassthroughSessionDestroyHandlerDictionary.Add(passthrough, onDestroy); } + result = XrResult.XR_SUCCESS; + } +#endif + return result; + } + public XrResult CreatePassthroughHTC(XrPassthroughCreateInfoHTC createInfo, out XrPassthroughHTC passthrough, CompositionLayer.LayerType layerType, OnPassthroughSessionDestroyDelegate onDestroy = null) + { + return CreatePassthroughHTC(createInfo, out passthrough, layerType, 0, onDestroy); + } + public XrResult CreatePassthroughHTC(XrPassthroughCreateInfoHTC createInfo, out XrPassthroughHTC passthrough, CompositionLayer.LayerType layerType = CompositionLayer.LayerType.Overlay) + { + return CreatePassthroughHTC(createInfo, out passthrough, layerType, 0, null); + } + + public XrResult DestroyPassthroughHTC(XrPassthroughHTC passthrough) + { + if (!passthroughList.Contains(passthrough)) + { + ERROR("DestroyPassthroughHTC() Invalid passthrough: " + passthrough); + return XrResult.XR_ERROR_VALIDATION_FAILURE; + } + + sb.Clear().Append("DestroyPassthroughHTC() passthrough: ").Append(passthrough); DEBUG(sb); + + XrResult result = XrResult.XR_ERROR_RUNTIME_FAILURE; + + int passthroughID = (int)(passthrough & 0x00007FFF); +#if UNITY_STANDALONE + result = xrDestroyPassthroughHTC(passthrough); + sb.Clear().Append("DestroyPassthroughHTC() ").Append(passthrough).Append(", result: ").Append(result); DEBUG(sb); + if (result == XrResult.XR_SUCCESS) + { + passthroughList.Remove(passthrough); + if (OnPassthroughSessionDestroyHandlerDictionary.ContainsKey(passthrough)) + OnPassthroughSessionDestroyHandlerDictionary.Remove(passthrough); + } +#endif + +#if UNITY_ANDROID + bool ret = ViveDestroyPassthrough(passthroughID); + sb.Clear().Append("DestroyPassthroughHTC() ").Append(passthroughID).Append(", ret: ").Append(ret); DEBUG(sb); + if (ret) + { + passthroughList.Remove(passthrough); + if (OnPassthroughSessionDestroyHandlerDictionary.ContainsKey(passthrough)) + OnPassthroughSessionDestroyHandlerDictionary.Remove(passthrough); + result = XrResult.XR_SUCCESS; + } +#endif + return result; + } + + /// + /// According to XRInputSubsystem's tracking origin mode, return the corresponding XrSpace. + /// + /// for tracking origin. + public XrSpace GetTrackingSpace() + { + XrSpace space = GetCurrentAppSpace(); + sb.Clear().Append("GetTrackingSpace() ").Append(space); DEBUG(sb); + return space; + } + + private List inputSubsystems = new List(); + /// + /// Helper function to get XrSpace from space type. + /// + public XrSpace GetXrSpaceFromSpaceType(ProjectedPassthroughSpaceType spaceType) + { + XrSpace meshSpace = 0; + switch (spaceType) + { + case ProjectedPassthroughSpaceType.Headlock: + meshSpace = HeadLockSpace; + break; + case ProjectedPassthroughSpaceType.Worldlock: + default: + XRInputSubsystem subsystem = null; + SubsystemManager.GetInstances(inputSubsystems); + if (inputSubsystems.Count > 0) + { + subsystem = inputSubsystems[0]; + } + + if (subsystem != null) + { + TrackingOriginModeFlags trackingOriginMode = subsystem.GetTrackingOriginMode(); + + switch (trackingOriginMode) + { + default: + case TrackingOriginModeFlags.Floor: + meshSpace = WorldLockSpaceOriginOnFloor; + break; + case TrackingOriginModeFlags.Device: + meshSpace = WorldLockSpaceOriginOnHead; + break; + } + } + else + { + meshSpace = WorldLockSpaceOriginOnFloor; + } + break; + } + + return meshSpace; + } + + public XrResult EnumeratePassthroughImageRatesHTC([In] UInt32 imageRateCapacityInput, ref UInt32 imageRateCountOutput,[In, Out] XrPassthroughConfigurationImageRateHTC[] imageRates) + { + if (!m_XrSessionCreated) + { + ERROR("EnumeratePassthroughImageRatesHTC() XR_ERROR_SESSION_LOST."); + return XrResult.XR_ERROR_SESSION_LOST; + } + return xrEnumeratePassthroughImageRatesHTC(m_XrSession, imageRateCapacityInput, ref imageRateCountOutput, imageRates); + } + + public XrResult GetPassthroughConfigurationHTC(IntPtr config) + { + if (!m_XrSessionCreated) + { + ERROR("GetPassthroughConfigurationHTC() XR_ERROR_SESSION_LOST."); + return XrResult.XR_ERROR_SESSION_LOST; + } + return xrGetPassthroughConfigurationHTC(m_XrSession, config); + } + + public XrResult SetPassthroughConfigurationHTC(IntPtr config) + { + if (!m_XrSessionCreated) + { + ERROR("SetPassthroughConfigurationHTC() XR_ERROR_SESSION_LOST."); + return XrResult.XR_ERROR_SESSION_LOST; + } + return xrSetPassthroughConfigurationHTC(m_XrSession, config); + } + + private XrBool32 m_SupportsImageRate; + private XrBool32 m_SupportsImageQuality; + XrSystemProperties systemProperties; + XrSystemPassthroughConfigurationPropertiesHTC passthroughConfigurationProperties; + private void CheckConfigurationSupport() + { + m_SupportsImageRate = false; + m_SupportsImageQuality = false; + if (!m_XrSessionCreated) + { + ERROR("CheckUserPresenceSupport() session is not created."); + return; + } + + passthroughConfigurationProperties.type = XrStructureType.XR_TYPE_SYSTEM_PASSTHROUGH_CONFIGURATION_PROPERTIES_HTC; + passthroughConfigurationProperties.next = IntPtr.Zero; + systemProperties.type = XrStructureType.XR_TYPE_SYSTEM_PROPERTIES; + systemProperties.next = Marshal.AllocHGlobal(Marshal.SizeOf(passthroughConfigurationProperties)); + + long offset = 0; + if (IntPtr.Size == 4) + offset = systemProperties.next.ToInt32(); + else + offset = systemProperties.next.ToInt64(); + + IntPtr passthroughConfigurationPtr = new IntPtr(offset); + Marshal.StructureToPtr(passthroughConfigurationProperties, passthroughConfigurationPtr, false); + + if (GetSystemProperties(ref systemProperties) == XrResult.XR_SUCCESS) + { + if (IntPtr.Size == 4) + offset = systemProperties.next.ToInt32(); + else + offset = systemProperties.next.ToInt64(); + + passthroughConfigurationPtr = new IntPtr(offset); + passthroughConfigurationProperties = (XrSystemPassthroughConfigurationPropertiesHTC)Marshal.PtrToStructure(passthroughConfigurationPtr, typeof(XrSystemPassthroughConfigurationPropertiesHTC)); + + sb.Clear().Append("CheckConfigurationSupport() supportsImageQuality: ").Append((UInt32)passthroughConfigurationProperties.supportsImageQuality); DEBUG(sb); + sb.Clear().Append("CheckConfigurationSupport() supportsImageRate: ").Append((UInt32)passthroughConfigurationProperties.supportsImageRate); DEBUG(sb); + m_SupportsImageQuality = passthroughConfigurationProperties.supportsImageQuality; + m_SupportsImageRate = passthroughConfigurationProperties.supportsImageRate; + } + else + { + ERROR("CheckSupport() GetSystemProperties failed."); + } + + Marshal.FreeHGlobal(systemProperties.next); + } + public bool SupportsImageRate() { return m_SupportsImageRate; } + public bool SupportsImageQuality() { return m_SupportsImageQuality; } + +#endregion + } +} diff --git a/com.htc.upm.vive.openxr/Runtime/Features/Passthrough/Scripts/VivePassthrough.cs.meta b/com.htc.upm.vive.openxr/Runtime/Features/Passthrough/Scripts/VivePassthrough.cs.meta new file mode 100644 index 0000000..c7f19a4 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Features/Passthrough/Scripts/VivePassthrough.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 78bb1f33f93dd034d90b1d1a27a5eb27 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Features/Passthrough/Scripts/VivePassthroughHelper.cs b/com.htc.upm.vive.openxr/Runtime/Features/Passthrough/Scripts/VivePassthroughHelper.cs new file mode 100644 index 0000000..9cd4051 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Features/Passthrough/Scripts/VivePassthroughHelper.cs @@ -0,0 +1,534 @@ +// Copyright HTC Corporation All Rights Reserved. + +using System; +using System.Collections.Generic; +using System.Runtime.InteropServices; +using UnityEngine; + +namespace VIVE.OpenXR.Passthrough +{ + /// + /// The forms of passthrough layer. + /// + public enum PassthroughLayerForm + { + /// Fullscreen Passthrough Form + Planar = 0, + /// Projected Passthrough Form + Projected = 1 + } + + /// + /// The types of passthrough space. + /// + public enum ProjectedPassthroughSpaceType + { + /// + /// XR_REFERENCE_SPACE_TYPE_VIEW at (0,0,0) with orientation (0,0,0,1) + /// + Headlock = 0, + /// + /// When TrackingOriginMode is TrackingOriginModeFlags.Floor: + /// XR_REFERENCE_SPACE_TYPE_STAGE at (0,0,0) with orientation (0,0,0,1) + /// + /// When TrackingOriginMode is TrackingOriginModeFlags.Device: + /// XR_REFERENCE_SPACE_TYPE_LOCAL at (0,0,0) with orientation (0,0,0,1) + /// + /// + Worldlock = 1 + } + + // -------------------- 12.88. XR_HTC_passthrough -------------------- + + #region New Object Types + /// + /// An application can create an XrPassthroughHTC handle by calling xrCreatePassthroughHTC. The returned passthrough handle can be subsequently used in API calls. + /// + public struct XrPassthroughHTC : IEquatable + { + private readonly UInt64 value; + + public XrPassthroughHTC(UInt64 u) + { + value = u; + } + + public static implicit operator UInt64(XrPassthroughHTC equatable) + { + return equatable.value; + } + public static implicit operator XrPassthroughHTC(UInt64 u) + { + return new XrPassthroughHTC(u); + } + + public bool Equals(XrPassthroughHTC other) + { + return value == other.value; + } + public bool Equals(UInt64 other) + { + return value == other; + } + public override bool Equals(object obj) + { + return obj is XrPassthroughHTC && Equals((XrPassthroughHTC)obj); + } + + public override int GetHashCode() + { + return value.GetHashCode(); + } + + public override string ToString() + { + return value.ToString(); + } + + public static bool operator ==(XrPassthroughHTC a, XrPassthroughHTC b) { return a.Equals(b); } + public static bool operator !=(XrPassthroughHTC a, XrPassthroughHTC b) { return !a.Equals(b); } + public static bool operator >=(XrPassthroughHTC a, XrPassthroughHTC b) { return a.value >= b.value; } + public static bool operator <=(XrPassthroughHTC a, XrPassthroughHTC b) { return a.value <= b.value; } + public static bool operator >(XrPassthroughHTC a, XrPassthroughHTC b) { return a.value > b.value; } + public static bool operator <(XrPassthroughHTC a, XrPassthroughHTC b) { return a.value < b.value; } + public static XrPassthroughHTC operator +(XrPassthroughHTC a, XrPassthroughHTC b) { return a.value + b.value; } + public static XrPassthroughHTC operator -(XrPassthroughHTC a, XrPassthroughHTC b) { return a.value - b.value; } + public static XrPassthroughHTC operator *(XrPassthroughHTC a, XrPassthroughHTC b) { return a.value * b.value; } + public static XrPassthroughHTC operator /(XrPassthroughHTC a, XrPassthroughHTC b) + { + if (b.value == 0) + { + throw new DivideByZeroException(); + } + return a.value / b.value; + } + + } + #endregion + + #region New Enums + /// + /// The XrPassthroughFormHTC enumeration identifies the form of the passthrough, presenting the passthrough fill the full screen or project onto a specified mesh. + /// + public enum XrPassthroughFormHTC + { + /// + /// Presents the passthrough with full of the entire screen.. + /// + XR_PASSTHROUGH_FORM_PLANAR_HTC = 0, + /// + /// Presents the passthrough projecting onto a custom mesh. + /// + XR_PASSTHROUGH_FORM_PROJECTED_HTC = 1, + }; + #endregion + + #region New Structures + /// + /// The XrPassthroughCreateInfoHTC structure describes the information to create an XrPassthroughCreateInfoHTC handle. + /// + [StructLayout(LayoutKind.Sequential)] + public struct XrPassthroughCreateInfoHTC + { + /// + /// The XrStructureType of this structure. + /// + public XrStructureType type; + /// + /// NULL or a pointer to the next structure in a structure chain. No such structures are defined in core OpenXR or this extension. + /// + public IntPtr next; + /// + /// The form specifies the form of passthrough. + /// + public XrPassthroughFormHTC form; + + /// The XrStructureType of this structure. + /// NULL or a pointer to the next structure in a structure chain. No such structures are defined in core OpenXR or this extension. + /// An XrFacialTrackingTypeHTC which describes which type of facial tracking should be used for this handle. + public XrPassthroughCreateInfoHTC(XrStructureType in_type, IntPtr in_next, XrPassthroughFormHTC in_form) + { + type = in_type; + next = in_next; + form = in_form; + } + }; + + /// + /// The application can specify the XrPassthroughColorHTC to adjust the alpha value of the passthrough. The range is between 0.0f and 1.0f, 1.0f means opaque. + /// + [StructLayout(LayoutKind.Sequential)] + public struct XrPassthroughColorHTC + { + /// + /// The XrStructureType of this structure. + /// + public XrStructureType type; + /// + /// Next is NULL or a pointer to the next structure in a structure chain, such as XrPassthroughMeshTransformInfoHTC. + /// + public IntPtr next; + /// + /// The alpha value of the passthrough in the range [0, 1]. + /// + public float alpha; + public XrPassthroughColorHTC(XrStructureType in_type, IntPtr in_next, float in_alpha) + { + type = in_type; + next = in_next; + alpha = in_alpha; + } + }; + + /// + /// The XrPassthroughMeshTransformInfoHTC structure describes the mesh and transformation. + /// + [StructLayout(LayoutKind.Sequential)] + public struct XrPassthroughMeshTransformInfoHTC + { + /// + /// The XrStructureType of this structure. + /// + public XrStructureType type; + /// + /// Next is NULL or a pointer to the next structure in a structure chain. + /// + public IntPtr next; + /// + /// The count of vertices array in the mesh. + /// + public UInt32 vertexCount; + /// + /// An array of XrVector3f. The size of the array must be equal to vertexCount. + /// + public XrVector3f[] vertices; + /// + /// The count of indices array in the mesh. + /// + public UInt32 indexCount; + /// + /// An array of triangle indices. The size of the array must be equal to indexCount. + /// + public UInt32[] indices; + /// + /// The XrSpace that defines the projected passthrough's base space for transformations. + /// + public XrSpace baseSpace; + /// + /// The XrTime that defines the time at which the transform is applied. + /// + public XrTime time; + /// + /// The XrPosef that defines the pose of the mesh + /// + public XrPosef pose; + /// + /// The XrVector3f that defines the scale of the mesh + /// + public XrVector3f scale; + public XrPassthroughMeshTransformInfoHTC(XrStructureType in_type, IntPtr in_next, UInt32 in_vertexCount, + XrVector3f[] in_vertices, UInt32 in_indexCount, UInt32[] in_indices, XrSpace in_baseSpace, XrTime in_time, + XrPosef in_pose, XrVector3f in_scale) + { + type = in_type; + next = in_next; + vertexCount = in_vertexCount; + vertices = in_vertices; + indexCount = in_indexCount; + indices = in_indices; + baseSpace = in_baseSpace; + time = in_time; + pose = in_pose; + scale = in_scale; + } + }; + + /// + /// A pointer to XrCompositionLayerPassthroughHTC may be submitted in xrEndFrame as a pointer to the base structure XrCompositionLayerBaseHeader, in the desired layer order, to request the runtime to composite a passthrough layer into the final frame output. + /// + [StructLayout(LayoutKind.Sequential)] + public struct XrCompositionLayerPassthroughHTC + { + /// + /// The XrStructureType of this structure. + /// + public XrStructureType type; + /// + /// Next is NULL or a pointer to the next structure in a structure chain, such as XrPassthroughMeshTransformInfoHTC. + /// + public IntPtr next; + /// + /// A bitmask of XrCompositionLayerFlagBits describing flags to apply to the layer. + /// + public XrCompositionLayerFlags layerFlags; + /// + /// The XrSpace that specifies the layer¡¦s space - must be XR_NULL_HANDLE. + /// + public XrSpace space; + /// + /// The XrPassthroughHTC previously created by xrCreatePassthroughHTC. + /// + public XrPassthroughHTC passthrough; + /// + /// The XrPassthroughColorHTC describing the color information with the alpha value of the passthrough layer. + /// + public XrPassthroughColorHTC color; + public XrCompositionLayerPassthroughHTC(XrStructureType in_type, IntPtr in_next, XrCompositionLayerFlags in_layerFlags, + XrSpace in_space, XrPassthroughHTC in_passthrough, XrPassthroughColorHTC in_color) + { + type = in_type; + next = in_next; + layerFlags = in_layerFlags; + space = in_space; + passthrough = in_passthrough; + color = in_color; + } + }; + + [StructLayout(LayoutKind.Sequential)] + public struct XrPassthroughConfigurationBaseHeaderHTC + { + public XrStructureType type; + public IntPtr next; + }; + + [StructLayout(LayoutKind.Sequential, Pack = 8)] + public struct XrPassthroughConfigurationImageRateHTC + { + public XrStructureType type; + public IntPtr next; + public float srcImageRate; + public float dstImageRate; + }; + + + [StructLayout(LayoutKind.Sequential, Pack = 8)] + public struct XrPassthroughConfigurationImageQualityHTC + { + public XrStructureType type; + public IntPtr next; + public float scale; + }; + + [StructLayout(LayoutKind.Sequential)] + public struct XrEventDataPassthroughConfigurationImageRateChangedHTC + { + public XrStructureType type; + public IntPtr next; + public XrPassthroughConfigurationImageRateHTC fromImageRate; + public XrPassthroughConfigurationImageRateHTC toImageRate; + + public XrEventDataPassthroughConfigurationImageRateChangedHTC(XrStructureType in_type, IntPtr in_next, XrPassthroughConfigurationImageRateHTC in_fromImageRate, XrPassthroughConfigurationImageRateHTC in_toImageRate) + { + type = in_type; + next = in_next; + fromImageRate = in_fromImageRate; + toImageRate = in_toImageRate; + } + public static XrEventDataPassthroughConfigurationImageRateChangedHTC identity + { + get + { + return new XrEventDataPassthroughConfigurationImageRateChangedHTC( + XrStructureType.XR_TYPE_EVENT_DATA_PASSTHROUGH_CONFIGURATION_IMAGE_RATE_CHANGED_HTC, + IntPtr.Zero, + new XrPassthroughConfigurationImageRateHTC { type = XrStructureType.XR_TYPE_PASSTHROUGH_CONFIGURATION_IMAGE_RATE_HTC, next = IntPtr.Zero }, + new XrPassthroughConfigurationImageRateHTC { type = XrStructureType.XR_TYPE_PASSTHROUGH_CONFIGURATION_IMAGE_RATE_HTC, next = IntPtr.Zero }); // user is default present + } + } + public static bool Get(XrEventDataBuffer eventDataBuffer, out XrEventDataPassthroughConfigurationImageRateChangedHTC eventDataPassthroughConfigurationImageRate) + { + eventDataPassthroughConfigurationImageRate = identity; + if (eventDataBuffer.type == XrStructureType.XR_TYPE_EVENT_DATA_PASSTHROUGH_CONFIGURATION_IMAGE_RATE_CHANGED_HTC) + { + eventDataPassthroughConfigurationImageRate.next = eventDataBuffer.next; + eventDataPassthroughConfigurationImageRate.fromImageRate.type = (XrStructureType)BitConverter.ToUInt32(eventDataBuffer.varying, 0); + eventDataPassthroughConfigurationImageRate.fromImageRate.next = (IntPtr)BitConverter.ToInt64(eventDataBuffer.varying, 8); + eventDataPassthroughConfigurationImageRate.fromImageRate.srcImageRate = BitConverter.ToSingle(eventDataBuffer.varying, 16); + eventDataPassthroughConfigurationImageRate.fromImageRate.dstImageRate = BitConverter.ToSingle(eventDataBuffer.varying, 20); + eventDataPassthroughConfigurationImageRate.toImageRate.type = (XrStructureType)BitConverter.ToUInt32(eventDataBuffer.varying, 24); + eventDataPassthroughConfigurationImageRate.toImageRate.next = (IntPtr)BitConverter.ToInt64(eventDataBuffer.varying, 32); + eventDataPassthroughConfigurationImageRate.toImageRate.srcImageRate = BitConverter.ToSingle(eventDataBuffer.varying, 40); + eventDataPassthroughConfigurationImageRate.toImageRate.dstImageRate = BitConverter.ToSingle(eventDataBuffer.varying, 44); + return true; + } + + return false; + } + }; + + [StructLayout(LayoutKind.Sequential)] + public struct XrEventDataPassthroughConfigurationImageQualityChangedHTC + { + public XrStructureType type; + public IntPtr next; + public XrPassthroughConfigurationImageQualityHTC fromImageQuality; + public XrPassthroughConfigurationImageQualityHTC toImageQuality; + + public XrEventDataPassthroughConfigurationImageQualityChangedHTC(XrStructureType in_type, IntPtr in_next, XrPassthroughConfigurationImageQualityHTC in_fromImageQuality, XrPassthroughConfigurationImageQualityHTC in_toImageQuality) + { + type = in_type; + next = in_next; + fromImageQuality = in_fromImageQuality; + toImageQuality = in_toImageQuality; + } + public static XrEventDataPassthroughConfigurationImageQualityChangedHTC identity + { + get + { + return new XrEventDataPassthroughConfigurationImageQualityChangedHTC( + XrStructureType.XR_TYPE_EVENT_DATA_PASSTHROUGH_CONFIGURATION_IMAGE_QUALITY_CHANGED_HTC, + IntPtr.Zero, + new XrPassthroughConfigurationImageQualityHTC { type = XrStructureType.XR_TYPE_PASSTHROUGH_CONFIGURATION_IMAGE_QUALITY_HTC, next = IntPtr.Zero }, + new XrPassthroughConfigurationImageQualityHTC { type = XrStructureType.XR_TYPE_PASSTHROUGH_CONFIGURATION_IMAGE_QUALITY_HTC, next = IntPtr.Zero }); // user is default present + } + } + public static bool Get(XrEventDataBuffer eventDataBuffer, out XrEventDataPassthroughConfigurationImageQualityChangedHTC ventDataPassthroughConfigurationImageQuality) + { + ventDataPassthroughConfigurationImageQuality = identity; + if (eventDataBuffer.type == XrStructureType.XR_TYPE_EVENT_DATA_PASSTHROUGH_CONFIGURATION_IMAGE_QUALITY_CHANGED_HTC) + { + ventDataPassthroughConfigurationImageQuality.next = eventDataBuffer.next; + ventDataPassthroughConfigurationImageQuality.fromImageQuality.type = (XrStructureType)BitConverter.ToUInt32(eventDataBuffer.varying, 0); + ventDataPassthroughConfigurationImageQuality.fromImageQuality.next = (IntPtr)BitConverter.ToInt64(eventDataBuffer.varying, 8); + ventDataPassthroughConfigurationImageQuality.fromImageQuality.scale = BitConverter.ToSingle(eventDataBuffer.varying, 16); + ventDataPassthroughConfigurationImageQuality.toImageQuality.type = (XrStructureType)BitConverter.ToUInt32(eventDataBuffer.varying, 24); + ventDataPassthroughConfigurationImageQuality.toImageQuality.next = (IntPtr)BitConverter.ToInt64(eventDataBuffer.varying, 32); + ventDataPassthroughConfigurationImageQuality.toImageQuality.scale = BitConverter.ToSingle(eventDataBuffer.varying, 40); + return true; + } + + return false; + } + }; + + [StructLayout(LayoutKind.Sequential)] + public struct XrSystemPassthroughConfigurationPropertiesHTC + { + public XrStructureType type; + public IntPtr next; + public XrBool32 supportsImageRate; + public XrBool32 supportsImageQuality; + }; + + #endregion + + #region New Functions + public static class VivePassthroughHelper + { + /// + /// The delegate function of xrCreatePassthroughHTC. + /// + /// An XrSession in which the passthrough will be active. + /// createInfo is a pointer to an XrPassthroughCreateInfoHTC structure containing information about how to create the passthrough. + /// passthrough is a pointer to a handle in which the created XrPassthroughHTC is returned. + /// XR_SUCCESS for success. + public delegate XrResult xrCreatePassthroughHTCDelegate( + XrSession session, + XrPassthroughCreateInfoHTC createInfo, + out XrPassthroughHTC passthrough); + + /// + /// The delegate function of xrDestroyFacialTrackerHTC. + /// + /// passthrough is the XrPassthroughHTC to be destroyed.. + /// XR_SUCCESS for success. + public delegate XrResult xrDestroyPassthroughHTCDelegate( + XrPassthroughHTC passthrough); + + public delegate XrResult xrEnumeratePassthroughImageRatesHTCDelegate( + XrSession session, + [In] UInt32 imageRateCapacityInput, + ref UInt32 imageRateCountOutput, + [In, Out] XrPassthroughConfigurationImageRateHTC[] imageRates); + + public delegate XrResult xrGetPassthroughConfigurationHTCDelegate( + XrSession session, + IntPtr/*ref XrPassthroughConfigurationBaseHeaderHTC*/ config); + + public delegate XrResult xrSetPassthroughConfigurationHTCDelegate( + XrSession session, + IntPtr/*ref XrPassthroughConfigurationBaseHeaderHTC*/ config); + } + + public static class VivePassthroughImageQualityChanged + { + public delegate void OnImageQualityChanged(float fromQuality, float toQuality); + + public static void Listen(OnImageQualityChanged callback) + { + if (!allEventListeners.Contains(callback)) + allEventListeners.Add(callback); + } + public static void Remove(OnImageQualityChanged callback) + { + if (allEventListeners.Contains(callback)) + allEventListeners.Remove(callback); + } + public static void Send(float fromQuality, float toQuality) + { + int N = 0; + if (allEventListeners != null) + { + N = allEventListeners.Count; + for (int i = N - 1; i >= 0; i--) + { + OnImageQualityChanged single = allEventListeners[i]; + try + { + single(fromQuality, toQuality); + } + catch (Exception e) + { + Debug.Log("Event : " + e.ToString()); + allEventListeners.Remove(single); + Debug.Log("Event : A listener is removed due to exception."); + } + } + } + } + + private static List allEventListeners = new List(); + } + + public static class VivePassthroughImageRateChanged + { + public delegate void OnImageRateChanged(float fromSrcImageRate, float fromDestImageRate, float toSrcImageRate, float toDestImageRate); + + public static void Listen(OnImageRateChanged callback) + { + if (!allEventListeners.Contains(callback)) + allEventListeners.Add(callback); + } + public static void Remove(OnImageRateChanged callback) + { + if (allEventListeners.Contains(callback)) + allEventListeners.Remove(callback); + } + public static void Send(float fromSrcImageRate, float fromDestImageRate, float toSrcImageRate, float toDestImageRate) + { + int N = 0; + if (allEventListeners != null) + { + N = allEventListeners.Count; + for (int i = N - 1; i >= 0; i--) + { + OnImageRateChanged single = allEventListeners[i]; + try + { + single(fromSrcImageRate, fromDestImageRate, toSrcImageRate, toDestImageRate); + } + catch (Exception e) + { + Debug.Log("Event : " + e.ToString()); + allEventListeners.Remove(single); + Debug.Log("Event : A listener is removed due to exception."); + } + } + } + } + + private static List allEventListeners = new List(); + } + #endregion +} diff --git a/com.htc.upm.vive.openxr/Runtime/Features/Passthrough/Scripts/VivePassthroughHelper.cs.meta b/com.htc.upm.vive.openxr/Runtime/Features/Passthrough/Scripts/VivePassthroughHelper.cs.meta new file mode 100644 index 0000000..62462f8 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Features/Passthrough/Scripts/VivePassthroughHelper.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: fa28fb90ea5134443bb348ad98be69bd +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Features/PathEnumerate/Scripts/VivePathEnumeration.cs b/com.htc.upm.vive.openxr/Runtime/Features/PathEnumerate/Scripts/VivePathEnumeration.cs index 18b047c..7d7d279 100644 --- a/com.htc.upm.vive.openxr/Runtime/Features/PathEnumerate/Scripts/VivePathEnumeration.cs +++ b/com.htc.upm.vive.openxr/Runtime/Features/PathEnumerate/Scripts/VivePathEnumeration.cs @@ -16,7 +16,7 @@ using UnityEditor.XR.OpenXR.Features; namespace VIVE.OpenXR { #if UNITY_EDITOR - [OpenXRFeature(UiName = "VIVE XR Path Enumeration", + [OpenXRFeature(UiName = "VIVE XR Path Enumeration (Beta)", BuildTargetGroups = new[] { BuildTargetGroup.Android, BuildTargetGroup.Standalone }, Company = "HTC", Desc = "The extension provides more flexibility for the user paths and input/output source paths related to an interaction profile. Developers can use this extension to obtain the path that the user has decided on.", diff --git a/com.htc.upm.vive.openxr/Runtime/Features/PlaneDetection/Documentation/OpenXRExtensions.md b/com.htc.upm.vive.openxr/Runtime/Features/PlaneDetection/Documentation/OpenXRExtensions.md index e69de29..a3d36e2 100644 --- a/com.htc.upm.vive.openxr/Runtime/Features/PlaneDetection/Documentation/OpenXRExtensions.md +++ b/com.htc.upm.vive.openxr/Runtime/Features/PlaneDetection/Documentation/OpenXRExtensions.md @@ -0,0 +1,101 @@ +# XR_EXT_plane_detection +## Name String + XR_EXT_plane_detection +## Revision + 1 +## Overview + +The PlaneDetectionManager class provides functionalities for managing plane detection using the VIVE XR SDK. It includes methods to check feature support, create and destroy plane detectors, and helper functions for interacting with the plane detection extension. + +## Plane Detection Workflow + +1. Check Feature Support: + + ```csharp + bool isSupported = PlaneDetectionManager.IsSupported(); + ``` + + Ensure the plane detection feature is supported before attempting to create a plane detector. + +1. Create Plane Detector: + + ```csharp + PlaneDetector planeDetector = PlaneDetectionManager.CreatePlaneDetector(); + ``` + + Create a plane detector instance to begin detecting planes. + +1. Begin Plane Detection: + + ```csharp + XrResult result = planeDetector.BeginPlaneDetection(); + ``` + + Start the plane detection process. + +1. Get Plane Detection State: + + ```csharp + XrPlaneDetectionStateEXT state = planeDetector.GetPlaneDetectionState(); + ``` + + Check the current state of the plane detection process. + +1. Retrieve Plane Detections: + + ```csharp + List locations; + XrResult result = planeDetector.GetPlaneDetections(out locations); + ``` + + Retrieve the detected planes. + +1. Get Plane Vertices: + + ```csharp + Plane plane = planeDetector.GetPlane(planeId); + ``` + + Retrieve the vertices of a specific plane. + +1. Destroy Plane Detector: + + ```csharp + PlaneDetectionManager.DestroyPlaneDetector(planeDetector); + ``` + + Destroy the plane detector to release resources. + + +## Example Usage + +Here's a basic example of how to use the PlaneDetectionManager to detect planes: + +```csharp + +if (PlaneDetectionManager.IsSupported()) +{ + var planeDetector = PlaneDetectionManager.CreatePlaneDetector(); + if (planeDetector != null) + { + planeDetector.BeginPlaneDetection(); + + XrPlaneDetectionStateEXT state = planeDetector.GetPlaneDetectionState(); + if (state == XrPlaneDetectionStateEXT.DONE_EXT) + { + List locations; + if (planeDetector.GetPlaneDetections(out locations) == XrResult.XR_SUCCESS) + { + foreach (var location in locations) + { + // Process detected planes + } + } + } + + PlaneDetectionManager.DestroyPlaneDetector(planeDetector); + } +} +``` + +This example checks if the plane detection feature is supported, creates a plane detector, begins the plane detection process, retrieves the detected planes, and finally destroys the plane detector to release resources. \ No newline at end of file diff --git a/com.htc.upm.vive.openxr/Runtime/Features/PlaneDetection/Scripts/VivePlaneDetection.cs b/com.htc.upm.vive.openxr/Runtime/Features/PlaneDetection/Scripts/VivePlaneDetection.cs index d0080a0..9e2cdab 100644 --- a/com.htc.upm.vive.openxr/Runtime/Features/PlaneDetection/Scripts/VivePlaneDetection.cs +++ b/com.htc.upm.vive.openxr/Runtime/Features/PlaneDetection/Scripts/VivePlaneDetection.cs @@ -225,6 +225,7 @@ planeDetector); #region override functions protected override IntPtr HookGetInstanceProcAddr(IntPtr func) { + ViveInterceptors.Instance.AddRequiredFunction("xrWaitFrame"); return ViveInterceptors.Instance.HookGetInstanceProcAddr(func); } @@ -243,7 +244,7 @@ planeDetector); //Debug.Log("OnInstanceCreate() " + m_XrInstance); CommonWrapper.Instance.OnInstanceCreate(xrInstance, xrGetInstanceProcAddr); - SpaceWrapper.Instance.OnInstanceCreate(xrInstance, CommonWrapper.Instance.GetInstanceProcAddr); + SpaceWrapper.Instance.OnInstanceCreate(xrInstance, xrGetInstanceProcAddr); return GetXrFunctionDelegates(m_XrInstance); } @@ -527,4 +528,4 @@ planeDetector); } #endregion } -} \ No newline at end of file +} diff --git a/com.htc.upm.vive.openxr/Runtime/Features/SecondaryViewConfiguration.meta b/com.htc.upm.vive.openxr/Runtime/Features/SecondaryViewConfiguration.meta new file mode 100644 index 0000000..f6bc597 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Features/SecondaryViewConfiguration.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d0d8ee71cab5ed846878c5673dc3d121 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Features/SecondaryViewConfiguration/Scripts.meta b/com.htc.upm.vive.openxr/Runtime/Features/SecondaryViewConfiguration/Scripts.meta new file mode 100644 index 0000000..5b9cf84 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Features/SecondaryViewConfiguration/Scripts.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b3b3ceea1f858a94ab34224b3d148a28 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Features/SecondaryViewConfiguration/Scripts/AccessDebugTexture.cs b/com.htc.upm.vive.openxr/Runtime/Features/SecondaryViewConfiguration/Scripts/AccessDebugTexture.cs new file mode 100644 index 0000000..520433c --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Features/SecondaryViewConfiguration/Scripts/AccessDebugTexture.cs @@ -0,0 +1,126 @@ +// Copyright HTC Corporation All Rights Reserved. + +using System.Collections; +using UnityEngine; + +namespace VIVE.OpenXR.SecondaryViewConfiguration +{ + /// + /// Name: AccessDebugTexture.cs + /// Role: General script + /// Responsibility: To assess the debug texture from SpectatorCameraBased.cs + /// + [RequireComponent(typeof(Renderer))] + public class AccessDebugTexture : MonoBehaviour + { + private static SpectatorCameraBased SpectatorCameraBased => SpectatorCameraBased.Instance; + + // Some variables related to time definition for access SpectatorCameraBased class resources + private const float WaitSpectatorCameraBasedInitTime = 1.5f; + private const float WaitSpectatorCameraBasedPeriodTime = .5f; + private const float WaitSpectatorCameraBasedMaxTime = 10f; + private const int QuadrupleCheckIsRecordingCount = 4; + + /// + /// The GameObject Renderer component + /// + private Renderer Renderer { get; set; } + + /// + /// The default value of material in Renderer component + /// + private Material DefaultMaterial { get; set; } + + /// + /// Set the Renderer material as debug material + /// + private void SetDebugMaterial() + { + Debug.Log("SetDebugMaterial"); + + if (SpectatorCameraBased) + { + if (SpectatorCameraBased.SpectatorCameraViewMaterial) + { + Renderer.material = SpectatorCameraBased.SpectatorCameraViewMaterial; + } + else + { + Debug.Log("No debug material set on SpectatorCameraBased."); + } + } + } + + /// + /// Set the Renderer material as default material + /// + private void SetDefaultMaterial() + { + Debug.Log("SetDefaultMaterial"); + Renderer.material = DefaultMaterial ? DefaultMaterial : null; + } + + private IEnumerator Start() + { + float waitingTime = WaitSpectatorCameraBasedMaxTime; + bool getSpectatorCameraBased = false; + + yield return new WaitForSeconds(WaitSpectatorCameraBasedInitTime); + + do + { + if (!SpectatorCameraBased) + { + yield return new WaitForSeconds(WaitSpectatorCameraBasedPeriodTime); + waitingTime -= WaitSpectatorCameraBasedPeriodTime; + continue; + } + + // Set -1 if accessed SpectatorCameraBased so we can break the while loop + waitingTime = -1; + getSpectatorCameraBased = true; + + Renderer = GetComponent(); + DefaultMaterial = Renderer.material; + SpectatorCameraBased.OnSpectatorStart += SetDebugMaterial; + SpectatorCameraBased.OnSpectatorStop += SetDefaultMaterial; + } while (waitingTime > 0); + + if (!getSpectatorCameraBased) + { + Debug.Log($"Try to get SpectatorCameraBased " + + $"{WaitSpectatorCameraBasedMaxTime / WaitSpectatorCameraBasedPeriodTime} times but fail."); + + Debug.Log("Destroy AccessDebugTexture now."); + Destroy(this); + yield break; + } + + int quadrupleCheckCount = QuadrupleCheckIsRecordingCount; + while (quadrupleCheckCount > 0) + { + if (SpectatorCameraBased.IsRecording) + { + Debug.Log("Recording. Set debug material."); + SpectatorCameraBased.OnSpectatorStart?.Invoke(); + break; + } + + quadrupleCheckCount--; + yield return null; + Debug.Log("No recording. Keep default material."); + } + } + + private void OnDestroy() + { + Renderer.material = DefaultMaterial ? DefaultMaterial : null; + + if (SpectatorCameraBased) + { + SpectatorCameraBased.OnSpectatorStart -= SetDebugMaterial; + SpectatorCameraBased.OnSpectatorStop -= SetDefaultMaterial; + } + } + } +} \ No newline at end of file diff --git a/com.htc.upm.vive.openxr/Runtime/Features/SecondaryViewConfiguration/Scripts/AccessDebugTexture.cs.meta b/com.htc.upm.vive.openxr/Runtime/Features/SecondaryViewConfiguration/Scripts/AccessDebugTexture.cs.meta new file mode 100644 index 0000000..747a7f0 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Features/SecondaryViewConfiguration/Scripts/AccessDebugTexture.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 69583d931f8502647afcc5c3266f4d2c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Features/SecondaryViewConfiguration/Scripts/SpectatorCameraBased.Editor.cs b/com.htc.upm.vive.openxr/Runtime/Features/SecondaryViewConfiguration/Scripts/SpectatorCameraBased.Editor.cs new file mode 100644 index 0000000..38c71e7 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Features/SecondaryViewConfiguration/Scripts/SpectatorCameraBased.Editor.cs @@ -0,0 +1,146 @@ +// Copyright HTC Corporation All Rights Reserved. + +using System; +using UnityEngine; +using UnityEngine.SceneManagement; +#if UNITY_EDITOR +using UnityEditor; +#endif + +namespace VIVE.OpenXR.SecondaryViewConfiguration +{ + /// + /// Name: SpectatorCameraBased.Editor.cs + /// Role: General script use in Unity Editor only + /// Responsibility: Display the SpectatorCameraBased.cs in Unity Inspector + /// + public partial class SpectatorCameraBased + { +#if UNITY_EDITOR + [SerializeField, Tooltip("State of debugging the spectator camera or not")] + private bool isDebugSpectatorCamera; + + /// + /// State of debugging the spectator camera or not + /// + public bool IsDebugSpectatorCamera + { + get => isDebugSpectatorCamera; + set + { + isDebugSpectatorCamera = value; + if (!value) + { + IsRecording = false; + } + } + } + + [CustomEditor(typeof(SpectatorCameraBased))] + public class SpectatorCameraBasedEditor : UnityEditor.Editor + { + public override void OnInspectorGUI() + { + // Just return if not "SpectatorCameraBased" class + if (!(target is SpectatorCameraBased)) + { + return; + } + + serializedObject.Update(); + + EditorGUI.BeginChangeCheck(); + DrawGUI(); + if (EditorGUI.EndChangeCheck()) + { + Debug.Log("SpectatorCameraBased script is changed."); + EditorUtility.SetDirty(target); + } + + serializedObject.ApplyModifiedProperties(); + } + + private void DrawGUI() + { + var script = (SpectatorCameraBased)target; + + EditorGUI.BeginChangeCheck(); + var currentSpectatorCameraViewMaterial = EditorGUILayout.ObjectField( + "Spectator Camera View Material", + script.SpectatorCameraViewMaterial, + typeof(Material), + false) as Material; + if (EditorGUI.EndChangeCheck()) + { + Undo.RecordObject(target, currentSpectatorCameraViewMaterial + ? "Change Spectator Camera View Material" + : "Set Spectator Camera View Material as NULL"); + script.SpectatorCameraViewMaterial = currentSpectatorCameraViewMaterial; + } + + EditorGUI.BeginChangeCheck(); + var currentIsDebugSpectatorCamera = + EditorGUILayout.Toggle("Active Spectator Camera Debugging", script.IsDebugSpectatorCamera); + if (EditorGUI.EndChangeCheck()) + { + Undo.RecordObject(target, "Change IsDebugSpectatorCamera Value"); + script.IsDebugSpectatorCamera = currentIsDebugSpectatorCamera; + } + + if (script.IsDebugSpectatorCamera) + { + EditorGUI.BeginChangeCheck(); + var currentIsRecording = + EditorGUILayout.Toggle("Active Spectator Camera Recording", script.IsRecording); + if (EditorGUI.EndChangeCheck()) + { + Undo.RecordObject(target, "Change IsRecording Value"); + script.IsRecording = currentIsRecording; + } + } + else + { + script.IsRecording = false; + } + + if (script.IsDebugSpectatorCamera && GUILayout.Button("Load \"Simple_Demo_2\" scene for testing")) + { + if (DoesSceneExist("Simple_Demo_2")) + { + SceneManager.LoadScene("Simple_Demo_2"); + } + else + { + Debug.LogWarning("Simple_Demo_2 scene not found. Please add it in build setting first."); + } + } + } + } + + /// + /// Returns true if the scene 'name' exists and is in your Build settings, false otherwise. + /// + private static bool DoesSceneExist(string name) + { + if (string.IsNullOrEmpty(name)) + { + return false; + } + + for (int i = 0; i < SceneManager.sceneCountInBuildSettings; i++) + { + var scenePath = SceneUtility.GetScenePathByBuildIndex(i); + var lastSlash = scenePath.LastIndexOf("/", StringComparison.Ordinal); + var sceneName = scenePath.Substring(lastSlash + 1, scenePath.LastIndexOf(".", StringComparison.Ordinal) - lastSlash - 1); + + if (string.Compare(name, sceneName, StringComparison.OrdinalIgnoreCase) == 0) + { + return true; + } + } + + return false; + } +#endif + } +} \ No newline at end of file diff --git a/com.htc.upm.vive.openxr/Runtime/Features/SecondaryViewConfiguration/Scripts/SpectatorCameraBased.Editor.cs.meta b/com.htc.upm.vive.openxr/Runtime/Features/SecondaryViewConfiguration/Scripts/SpectatorCameraBased.Editor.cs.meta new file mode 100644 index 0000000..97f2b7e --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Features/SecondaryViewConfiguration/Scripts/SpectatorCameraBased.Editor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a040f975f97360649b37c7c9706d3970 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Features/SecondaryViewConfiguration/Scripts/SpectatorCameraBased.cs b/com.htc.upm.vive.openxr/Runtime/Features/SecondaryViewConfiguration/Scripts/SpectatorCameraBased.cs new file mode 100644 index 0000000..addcd25 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Features/SecondaryViewConfiguration/Scripts/SpectatorCameraBased.cs @@ -0,0 +1,836 @@ +// Copyright HTC Corporation All Rights Reserved. + +using System; +using UnityEngine; +using UnityEngine.SceneManagement; +using VIVE.OpenXR.FirstPersonObserver; +using VIVE.OpenXR.SecondaryViewConfiguration; + +namespace VIVE.OpenXR.SecondaryViewConfiguration +{ + /// + /// Name: SpectatorCameraBased.cs + /// Role: The base class cooperating with OpenXR SecondaryViewConfiguration Extension in Unity MonoBehaviour lifecycle (Singleton) + /// Responsibility: The handler responsible for the cooperation between the Unity MonoBehaviour lifecycle and OpenXR framework lifecycle + /// + public partial class SpectatorCameraBased : MonoBehaviour + { + private static SpectatorCameraBased _instance; + + /// + /// SpectatorCameraBased static instance (Singleton) + /// + public static SpectatorCameraBased Instance => _instance; + + #region Default value definition + + /// + /// Camera texture width + /// + private const int TextureWidthDefault = 1920; + + /// + /// Camera texture height + /// + private const int TextureHeightDefault = 1080; + + /// + /// Camera GameObject Based Name + /// + private const string CameraGameObjectBasedName = "Spectator Camera Based Object"; + + /// + /// To define how long of the time (second) that the recording state is changed + /// + public const float RECORDING_STATE_CHANGE_THRESHOLD_IN_SECOND = 1f; + + #endregion + +#if !UNITY_EDITOR && UNITY_ANDROID + #region OpenXR Extension + + /// + /// ViveFirstPersonObserver OpenXR extension + /// + private static ViveFirstPersonObserver FirstPersonObserver => ViveFirstPersonObserver.Instance; + + /// + /// ViveSecondaryViewConfiguration OpenXR extension + /// + private static ViveSecondaryViewConfiguration SecondaryViewConfiguration => ViveSecondaryViewConfiguration.Instance; + + #endregion + + #region Locker and flag for multithread safety of texture updating + + /// + /// Locker of NeedReInitTexture variables + /// + private readonly object _needReInitTextureLock = new object(); + + /// + /// State of whether re-init is needed for camera texture + /// + private bool NeedReInitTexture { get; set; } + + /// + /// Locker of NeedUpdateTexture variables + /// + private readonly object _needUpdateTextureLock = new object(); + + /// + /// State of whether updated camera texture is needed + /// + private bool NeedUpdateTexture { get; set; } + + #endregion +#endif + + #region Spectator camera texture variables + + /// + /// Camera texture size + /// + private Vector2 CameraTargetTextureSize { get; set; } + + /// + /// Camera texture + /// + private RenderTexture CameraTargetTexture { get; set; } + + #endregion + + /// + /// GameObject of the spectator camera + /// + public GameObject SpectatorCameraGameObject { get; private set; } + + /// + /// Camera component of the spectator camera + /// + public Camera SpectatorCamera { get; private set; } + + public Camera MainCamera { get; private set; } + + #region Debug Variables + + [SerializeField] private Material spectatorCameraViewMaterial; + + /// + /// Material that show the spectator camera view + /// + public Material SpectatorCameraViewMaterial + { + get => spectatorCameraViewMaterial; + set + { + spectatorCameraViewMaterial = value; + if (spectatorCameraViewMaterial && SpectatorCamera) + { + spectatorCameraViewMaterial.mainTexture = SpectatorCamera.targetTexture; + } + } + } + + #endregion + + private bool _followHmd; + + /// + /// Is the spectator camera following the HMD or not + /// + public bool FollowHmd + { + get => _followHmd; + set + { + _followHmd = value; + + if (SpectatorCamera.transform.parent != null && + (SpectatorCamera.transform.localPosition != Vector3.zero || + SpectatorCamera.transform.localRotation != Quaternion.identity)) + { + Debug.Log("The local position or rotation should not be modified. Will reset the SpectatorCamera transform."); + + SpectatorCamera.transform.localPosition = Vector3.zero; + SpectatorCamera.transform.localRotation = Quaternion.identity; + } + } + } + + /// + /// State of allowing capture the 360 image or not + /// + public static bool IsAllowSpectatorCameraCapture360Image => +#if !UNITY_EDITOR && UNITY_ANDROID + SecondaryViewConfiguration.IsAllowSpectatorCameraCapture360Image +#else + true +#endif + ; + + /// + /// SpectatorCameraBased init success or not + /// + private bool InitSuccess { get; set; } + + /// + /// State of whether the app is not be focusing by the user + /// + private bool IsInBackground { get; set; } + + [SerializeField, Tooltip("State of whether the spectator camera is recording currently")] + private bool isRecording; + + /// + /// State of whether the spectator camera is recording currently + /// + public bool IsRecording + { + get => isRecording; + set + { + isRecording = value; + + if (value) + { + if (IsPerformedStartRecordingCallback) + { + return; + } + + IsPerformedStartRecordingCallback = true; + IsPerformedCloseRecordingCallback = false; + OnSpectatorStart?.Invoke(); + } + else + { + if (IsPerformedCloseRecordingCallback || + /* Because OpenXR periodically changes the spectator enabled flag, we need + to consider checking the state with a time delay so that we can make sure + it is changing for a long while or just periodically. */ + Math.Abs(LastRecordingStateIsDisableTime - LastRecordingStateIsActiveTime) < + RECORDING_STATE_CHANGE_THRESHOLD_IN_SECOND) + { + return; + } + + IsPerformedCloseRecordingCallback = true; + IsPerformedStartRecordingCallback = false; + OnSpectatorStop?.Invoke(); + } + } + } + + /// + /// The last time of the recording state that is active. + /// + public float LastRecordingStateIsActiveTime { get; private set; } + + /// + /// The last time of the recording state that is disable. + /// + public float LastRecordingStateIsDisableTime { get; private set; } + + /// + /// Flag denotes the callback is performed when the recording state changes to active + /// + private bool IsPerformedStartRecordingCallback { get; set; } + + /// + /// Flag denotes the callback is performed when the recording state changes to disable + /// + private bool IsPerformedCloseRecordingCallback { get; set; } + + #region Public variables for register the delegate callback functions + + /// + /// Delegate type for spectator camera callbacks. + /// A delegate declaration that can encapsulate a method that takes no argument and returns void. + /// + public delegate void SpectatorCameraCallback(); + + /// + /// Delegate that custom code is executed when the spectator camera state changes to active. + /// + public SpectatorCameraCallback OnSpectatorStart; + + /// + /// Delegate that custom code is executed when the spectator camera state changes to disable. + /// + public SpectatorCameraCallback OnSpectatorStop; + + #endregion + +#if !UNITY_EDITOR && UNITY_ANDROID + /// + /// Set the flag NeedReInitTexture as true + /// + /// The re-init texture size + private void OnTextureSizeUpdated(Vector2 size) + { + lock (_needReInitTextureLock) + { + NeedReInitTexture = true; + CameraTargetTextureSize = size; + } + } + + /// + /// Set the flag NeedUpdateTexture as true + /// + private void OnTextureUpdated() + { + lock (_needUpdateTextureLock) + { + NeedUpdateTexture = true; + } + } + + /// + /// Init the projection matrix of spectator camera + /// + /// The position of the left vertical plane of the viewing frustum + /// The position of the right vertical plane of the viewing frustum + /// The position of the top horizontal plane of the viewing frustum + /// The position of the bottom horizontal plane of the viewing frustum + private void OnFovUpdated(float left, float right, float top, float bottom) + { + #region Modify the camera projection matrix (No need, just for reference) + + /* + if (SpectatorCamera) + { + float far = SpectatorCamera.farClipPlane; + float near = SpectatorCamera.nearClipPlane; + SpectatorCamera.projectionMatrix = new Matrix4x4() + { + [0, 0] = 2f / (right - left), + [0, 1] = 0, + [0, 2] = (right + left) / (right - left), + [0, 3] = 0, + [1, 0] = 0, + [1, 1] = 2f / (top - bottom), + [1, 2] = (top + bottom) / (top - bottom), + [1, 3] = 0, + [2, 0] = 0, + [2, 1] = 0, + [2, 2] = -(far + near) / (far - near), + [2, 3] = -(2f * far * near) / (far - near), + [3, 0] = 0, + [3, 1] = 0, + [3, 2] = -1f, + [3, 3] = 0, + }; + } + */ + + #endregion + } +#endif + + /// + /// Init the camera texture + /// + private void InitCameraTargetTexture() + { + if (CameraTargetTextureSize.x == 0 || CameraTargetTextureSize.y == 0) + { +#if !UNITY_EDITOR && UNITY_ANDROID + if (SecondaryViewConfiguration.TextureSize.x == 0 || SecondaryViewConfiguration.TextureSize.y == 0) + { + CameraTargetTextureSize = new Vector2(TextureWidthDefault, TextureHeightDefault); + } + else + { + CameraTargetTextureSize = SecondaryViewConfiguration.TextureSize; + } +#else + CameraTargetTextureSize = new Vector2(TextureWidthDefault, TextureHeightDefault); +#endif + } + + if (!CameraTargetTexture) + { + // Texture is not create yet. Create it. + CameraTargetTexture = new RenderTexture + ( + (int)CameraTargetTextureSize.x, + (int)CameraTargetTextureSize.y, + 24, + RenderTextureFormat.ARGB32 + ); + + InitPostProcessing(); + return; + } + + if (CameraTargetTexture.width == (int)CameraTargetTextureSize.x && + CameraTargetTexture.height == (int)CameraTargetTextureSize.y) + { + // Texture size is same, just return. + return; + } + + // Release the last time resource + SpectatorCamera.targetTexture = null; + if (SpectatorCameraViewMaterial) + { + SpectatorCameraViewMaterial.mainTexture = null; + } + + CameraTargetTexture.Release(); + + // Re-init + CameraTargetTexture.width = (int)CameraTargetTextureSize.x; + CameraTargetTexture.height = (int)CameraTargetTextureSize.y; + CameraTargetTexture.depth = 24; + CameraTargetTexture.format = RenderTextureFormat.ARGB32; + + InitPostProcessing(); + return; + + void InitPostProcessing() + { + if (!CameraTargetTexture.IsCreated()) + { + Debug.Log("The RenderTexture is not create yet. Will create it."); + + bool created = CameraTargetTexture.Create(); + + Debug.Log($"Try to create RenderTexture: {created}"); + + if (created) + { + SpectatorCamera.targetTexture = CameraTargetTexture; + if (SpectatorCameraViewMaterial) + { + SpectatorCameraViewMaterial.mainTexture = SpectatorCamera.targetTexture; + } + } + } + else + { + Debug.Log("The RenderTexture is already created."); + } + } + } + +#if !UNITY_EDITOR && UNITY_ANDROID + /// + /// Update camera texture and then copy data of the camera texture to native texture space + /// + private void SecondViewTextureUpdate() + { + if (SecondaryViewConfiguration.MyTexture) + { + SpectatorCamera.enabled = true; + SpectatorCamera.Render(); + SpectatorCamera.enabled = false; + + if (SpectatorCamera.targetTexture) + { + // Copy Unity texture data to native texture + Graphics.CopyTexture( + SpectatorCamera.targetTexture, + 0, + 0, + SecondaryViewConfiguration.MyTexture, + 0, + 0); + } + else + { + Debug.LogError("Cannot copy the rendering data because the camera target texture is null!"); + } + + // Call native function that finishes the texture update + ViveSecondaryViewConfiguration.ReleaseSecondaryViewTexture(); + } + else + { + Debug.LogError("Cannot copy the rendering data because SecondaryViewConfiguration.MyTexture is null!"); + } + } +#endif + + /// + /// Set the main texture of SpectatorCameraViewMaterial material as spectator camera texture + /// + private void SetCameraBasedTargetTexture2SpectatorCameraViewMaterial() + { + if (SpectatorCameraViewMaterial) + { + SpectatorCameraViewMaterial.mainTexture = SpectatorCamera.targetTexture; + } + } + + /// + /// Set the main texture of SpectatorCameraViewMaterial material as NULL value + /// + private void SetNull2SpectatorCameraViewMaterial() + { + if (SpectatorCameraViewMaterial) + { + SpectatorCameraViewMaterial.mainTexture = null; + } + } + + /// + /// Set whether the current camera viewpoint comes from HMD or not + /// + /// The bool value represents the current view of whether the spectator camera is coming from hmd or not. + public void SetViewFromHmd(bool isViewFromHmd) + { +#if !UNITY_EDITOR && UNITY_ANDROID + ViveSecondaryViewConfiguration.SetViewFromHmd(isViewFromHmd); +#endif + FollowHmd = isViewFromHmd; + } + + /// + /// Get MainCamera in the current scene. + /// + /// The Camera component with MainCamera tag in the current scene + public static Camera GetMainCamera() + { + return Camera.main; + } + + #region Unity life-cycle event + + private void Start() + { + InitSuccess = false; + + if (_instance != null && _instance != this) + { + Debug.Log("Destroy the SpectatorCameraBased"); + if (SpectatorCameraViewMaterial) + { + Debug.Log("Copy SpectatorCameraBased material setting before destroy."); + _instance.SpectatorCameraViewMaterial = SpectatorCameraViewMaterial; + } + + DestroyImmediate(this); + return; + } + else + { + _instance = this; + + // To prevent this from being destroyed on load, check whether this gameObject has a parent; + // if so, set it to no game parent. + if (transform.parent != null) + { + transform.SetParent(null); + } + + DontDestroyOnLoad(_instance.gameObject); + } + +#if !UNITY_EDITOR && UNITY_ANDROID + if (SecondaryViewConfiguration && FirstPersonObserver) + { + // To check, "XR_MSFT_first_person_observer" is enough because it + // requires "XR_MSFT_secondary_view_configuration" to be enabled also. + if (!ViveFirstPersonObserver.IsExtensionEnabled()) + { + Debug.LogWarning( + $"The OpenXR extension, {ViveSecondaryViewConfiguration.OPEN_XR_EXTENSION_STRING} " + + $"or {ViveFirstPersonObserver.OPEN_XR_EXTENSION_STRING}, is disabled. " + + "Please enable the extension before building the app."); + Debug.Log("Destroy the SpectatorCameraBased"); + DestroyImmediate(this); + return; + } + + SecondaryViewConfiguration.onTextureSizeUpdated += OnTextureSizeUpdated; + SecondaryViewConfiguration.onTextureUpdated += OnTextureUpdated; + SecondaryViewConfiguration.onFovUpdated += OnFovUpdated; + } + else + { + Debug.LogError( + "Cannot find the static instance of ViveSecondaryViewConfiguration or ViveFirstPersonObserver," + + " pls reopen the app later."); + Debug.Log("Destroy the SpectatorCameraBased"); + DestroyImmediate(this); + return; + } + + bool isSecondaryViewAlreadyEnabled = SecondaryViewConfiguration.IsEnabled; + Debug.Log( + $"The state of ViveSecondaryViewConfiguration.IsEnabled is {isSecondaryViewAlreadyEnabled}"); + lock (_needReInitTextureLock) + { + NeedReInitTexture = isSecondaryViewAlreadyEnabled; + } + + lock (_needUpdateTextureLock) + { + NeedUpdateTexture = isSecondaryViewAlreadyEnabled; + } + + IsRecording = isSecondaryViewAlreadyEnabled; +#endif + + SpectatorCameraGameObject = new GameObject(CameraGameObjectBasedName) + { + transform = { position = Vector3.zero, rotation = Quaternion.identity } + }; + DontDestroyOnLoad(SpectatorCameraGameObject); + + SpectatorCamera = SpectatorCameraGameObject.AddComponent(); + SpectatorCamera.stereoTargetEye = StereoTargetEyeMask.None; + MainCamera = GetMainCamera(); + if (MainCamera != null) + { + // Set spectator camera to render after the main camera + SpectatorCamera.depth = MainCamera.depth + 1; + } + // Manually call Render() function once time at Start() + // because it can reduce the performance impact of first-time calls at SecondViewTextureUpdate + SpectatorCamera.Render(); + SpectatorCamera.enabled = false; + + FollowHmd = true; + IsInBackground = false; + IsPerformedStartRecordingCallback = false; + IsPerformedCloseRecordingCallback = false; + LastRecordingStateIsActiveTime = 0f; + LastRecordingStateIsDisableTime = 0f; + + OnSpectatorStart += SetCameraBasedTargetTexture2SpectatorCameraViewMaterial; + OnSpectatorStop += SetNull2SpectatorCameraViewMaterial; + SceneManager.sceneLoaded += OnSceneLoaded; + +#if !UNITY_EDITOR && UNITY_ANDROID + if (isSecondaryViewAlreadyEnabled) + { + OnSpectatorStart?.Invoke(); + } +#endif + +#if UNITY_EDITOR + OnSpectatorStart += () => { SpectatorCamera.enabled = true; }; + OnSpectatorStop += () => { SpectatorCamera.enabled = false; }; + + CameraTargetTextureSize = new Vector2 + ( + TextureWidthDefault, + TextureHeightDefault + ); + InitCameraTargetTexture(); + SpectatorCamera.enabled = IsDebugSpectatorCamera && IsRecording; +#endif + + InitSuccess = true; + } + + private void LateUpdate() + { + if (!InitSuccess) + { + return; + } + + if (IsInBackground) + { + return; + } + + if (SpectatorCamera.transform.parent != null && + (SpectatorCamera.transform.localPosition != Vector3.zero || + SpectatorCamera.transform.localRotation != Quaternion.identity)) + { + Debug.Log("The local position or rotation should not be modified. Will reset the SpectatorCamera transform."); + + SpectatorCamera.transform.localPosition = Vector3.zero; + SpectatorCamera.transform.localRotation = Quaternion.identity; + } + + if (FollowHmd) + { + if (MainCamera != null || (MainCamera = GetMainCamera()) != null) + { + Transform spectatorCameraTransform = SpectatorCamera.transform; + Transform hmdCameraTransform = MainCamera.transform; + spectatorCameraTransform.position = hmdCameraTransform.position; + spectatorCameraTransform.rotation = hmdCameraTransform.rotation; + } + } + else + { +#if !UNITY_EDITOR && UNITY_ANDROID + if (!SecondaryViewConfiguration.IsStopped) + { + Transform referenceTransform = SpectatorCamera.transform; + + // Left-handed coordinate system (Unity) -> right-handed coordinate system (OpenXR) + var spectatorCameraPositionInOpenXRSpace = new XrVector3f + ( + referenceTransform.position.x, + referenceTransform.position.y, + -referenceTransform.position.z + ); + + var spectatorCameraQuaternionInOpenXRSpace = new XrQuaternionf + ( + referenceTransform.rotation.x, + referenceTransform.rotation.y, + -referenceTransform.rotation.z, + -referenceTransform.rotation.w + ); + + var spectatorCameraPose = new XrPosef + ( + spectatorCameraQuaternionInOpenXRSpace, + spectatorCameraPositionInOpenXRSpace + ); + + ViveSecondaryViewConfiguration.SetNonHmdViewPose(spectatorCameraPose); + } +#endif + } + +#if !UNITY_EDITOR && UNITY_ANDROID + IsRecording = SecondaryViewConfiguration.IsEnabled; +#endif + if (IsRecording) + { + LastRecordingStateIsActiveTime = Time.unscaledTime; + } + else + { + LastRecordingStateIsDisableTime = Time.unscaledTime; + + if (!IsPerformedCloseRecordingCallback && + /* Because OpenXR periodically changes the spectator enabled flag, we need + to consider checking the state with a time delay so that we can make sure + it is changing for a long while or just periodically. */ + Math.Abs(LastRecordingStateIsDisableTime - LastRecordingStateIsActiveTime) > + RECORDING_STATE_CHANGE_THRESHOLD_IN_SECOND) + { + IsPerformedCloseRecordingCallback = true; + IsPerformedStartRecordingCallback = false; + OnSpectatorStop?.Invoke(); + } + + return; + } + +#if !UNITY_EDITOR && UNITY_ANDROID + lock (_needReInitTextureLock) + { + if (NeedReInitTexture) + { + NeedReInitTexture = false; + InitCameraTargetTexture(); + } + } + + lock (_needUpdateTextureLock) + { + if (NeedUpdateTexture) + { + NeedUpdateTexture = false; + ViveSecondaryViewConfiguration.SetStateSecondaryViewImageDataReady(false); + SecondViewTextureUpdate(); + ViveSecondaryViewConfiguration.SetStateSecondaryViewImageDataReady(true); + } + } +#endif + } + + private void OnApplicationFocus(bool hasFocus) + { + if (!InitSuccess) + { + Debug.Log("Init unsuccessfully, just return from SpectatorCameraBased.OnApplicationFocus."); + return; + } + + Debug.Log($"SpectatorCameraBased.OnApplicationFocus: {hasFocus}"); + } + + private void OnApplicationPause(bool pauseStatus) + { + if (!InitSuccess) + { + Debug.Log("Init unsuccessfully, just return from SpectatorCameraBased.OnApplicationPause."); + return; + } + + Debug.Log($"SpectatorCameraBased.OnApplicationPause: {pauseStatus}"); + +#if !UNITY_EDITOR && UNITY_ANDROID + // Need to re-create the swapchain when recording is active and Unity app is resumed + if (SecondaryViewConfiguration.IsEnabled && !pauseStatus) + { + ViveSecondaryViewConfiguration.RequireReinitSwapchain(); + } +#endif + + IsInBackground = pauseStatus; + } + + private void OnDestroy() + { + if (!InitSuccess) + { + Debug.Log("Init unsuccessfully, just return from SpectatorCameraBased.OnDestroy."); + return; + } + + Debug.Log("SpectatorCameraBased.OnDestroy"); + +#if !UNITY_EDITOR && UNITY_ANDROID + SecondaryViewConfiguration.onTextureSizeUpdated -= OnTextureSizeUpdated; + SecondaryViewConfiguration.onTextureUpdated -= OnTextureUpdated; +#endif + + if (SpectatorCamera) + { + SpectatorCamera.targetTexture = null; + } + + if (SpectatorCameraViewMaterial) + { + SpectatorCameraViewMaterial.mainTexture = null; + } + + if (CameraTargetTexture) + { + Destroy(CameraTargetTexture); + } + +#if !UNITY_EDITOR && UNITY_ANDROID + ViveSecondaryViewConfiguration.ReleaseAllResources(); +#endif + } + + private void OnSceneLoaded(Scene scene, LoadSceneMode mode) + { + if (!InitSuccess) + { + Debug.Log("Init unsuccessfully, just return from SpectatorCameraBased.OnSceneLoaded."); + return; + } + + Debug.Log($"SpectatorCameraBased.OnSceneLoaded: {scene.name}"); + + MainCamera = GetMainCamera(); + +#if !UNITY_EDITOR && UNITY_ANDROID + if (!SecondaryViewConfiguration.IsStopped) + { + // Need to re-init the swapchain when recording is active and new Unity scene is loaded + ViveSecondaryViewConfiguration.RequireReinitSwapchain(); + } +#endif + } + + #endregion + } +} \ No newline at end of file diff --git a/com.htc.upm.vive.openxr/Runtime/Features/SecondaryViewConfiguration/Scripts/SpectatorCameraBased.cs.meta b/com.htc.upm.vive.openxr/Runtime/Features/SecondaryViewConfiguration/Scripts/SpectatorCameraBased.cs.meta new file mode 100644 index 0000000..61d30e7 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Features/SecondaryViewConfiguration/Scripts/SpectatorCameraBased.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 47a6afbbc5e705041b2851122f306f76 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Features/SecondaryViewConfiguration/Scripts/ViveSecondaryViewConfiguration.Editor.cs b/com.htc.upm.vive.openxr/Runtime/Features/SecondaryViewConfiguration/Scripts/ViveSecondaryViewConfiguration.Editor.cs new file mode 100644 index 0000000..84f7b21 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Features/SecondaryViewConfiguration/Scripts/ViveSecondaryViewConfiguration.Editor.cs @@ -0,0 +1,93 @@ +// Copyright HTC Corporation All Rights Reserved. + +using UnityEngine; +#if UNITY_EDITOR +using UnityEditor; +#endif + +namespace VIVE.OpenXR.SecondaryViewConfiguration +{ + /// + /// Name: SecondaryViewConfiguration.Editor.cs + /// Role: General script use in Unity Editor only + /// Responsibility: Display the SecondaryViewConfiguration.cs in Unity Project Settings + /// + public partial class ViveSecondaryViewConfiguration + { + [field: SerializeField] internal bool IsAllowSpectatorCameraCapture360Image { get; set; } + [field: SerializeField] internal bool IsEnableDebugLog { get; set; } + +#if UNITY_EDITOR + [CustomEditor(typeof(ViveSecondaryViewConfiguration))] + public class ViveSecondaryViewConfigurationEditor : UnityEditor.Editor + { + public override void OnInspectorGUI() + { + // Just return if not "ViveSecondaryViewConfiguration" class + if (!(target is ViveSecondaryViewConfiguration)) + { + return; + } + + serializedObject.Update(); + DrawGUI(); + serializedObject.ApplyModifiedProperties(); + } + + private void DrawGUI() + { + var script = (ViveSecondaryViewConfiguration)target; + + EditorGUI.BeginChangeCheck(); + var currentIsAllowSpectatorCameraCapture360Image = + EditorGUILayout.Toggle("Allow capture panorama", script.IsAllowSpectatorCameraCapture360Image); + if (EditorGUI.EndChangeCheck()) + { + if (currentIsAllowSpectatorCameraCapture360Image && !PlayerSettings.enable360StereoCapture) + { + const string acceptButtonString = + "OK"; + const string cancelButtonString = + "Cancel"; + const string openCapture360ImageAdditionRequestTitle = + "Additional Request of Capturing 360 Image throughout the Spectator Camera"; + const string openCapture360ImageAdditionRequestDescription = + "Allow the spectator camera to capture 360 images. Addition Request:\n" + + "1.) Open the \"enable360StereoCapture\" in the Unity Player Setting " + + "Page."; + + bool acceptDialog1 = EditorUtility.DisplayDialog( + openCapture360ImageAdditionRequestTitle, + openCapture360ImageAdditionRequestDescription, + acceptButtonString, + cancelButtonString); + + if (acceptDialog1) + { + PlayerSettings.enable360StereoCapture = true; + } + else + { + return; + } + } + + Undo.RecordObject(target, "Modified ViveSecondaryViewConfiguration IsAllowSpectatorCameraCapture360Image"); + EditorUtility.SetDirty(target); + script.IsAllowSpectatorCameraCapture360Image = currentIsAllowSpectatorCameraCapture360Image; + } + + EditorGUI.BeginChangeCheck(); + var currentIsEnableDebugLog = + EditorGUILayout.Toggle("Print log for debugging", script.IsEnableDebugLog); + if (EditorGUI.EndChangeCheck()) + { + Undo.RecordObject(target, "Modified ViveSecondaryViewConfiguration IsEnableDebugLog"); + EditorUtility.SetDirty(target); + script.IsEnableDebugLog = currentIsEnableDebugLog; + } + } + } +#endif + } +} \ No newline at end of file diff --git a/com.htc.upm.vive.openxr/Runtime/Features/SecondaryViewConfiguration/Scripts/ViveSecondaryViewConfiguration.Editor.cs.meta b/com.htc.upm.vive.openxr/Runtime/Features/SecondaryViewConfiguration/Scripts/ViveSecondaryViewConfiguration.Editor.cs.meta new file mode 100644 index 0000000..227aebb --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Features/SecondaryViewConfiguration/Scripts/ViveSecondaryViewConfiguration.Editor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8d6f293344377c74c910f4121af00a7b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Features/SecondaryViewConfiguration/Scripts/ViveSecondaryViewConfiguration.cs b/com.htc.upm.vive.openxr/Runtime/Features/SecondaryViewConfiguration/Scripts/ViveSecondaryViewConfiguration.cs new file mode 100644 index 0000000..375d440 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Features/SecondaryViewConfiguration/Scripts/ViveSecondaryViewConfiguration.cs @@ -0,0 +1,898 @@ +// Copyright HTC Corporation All Rights Reserved. + +using AOT; +using System; +using System.Runtime.InteropServices; +using UnityEngine; +using UnityEngine.Rendering; +using UnityEngine.XR.OpenXR; +using UnityEngine.XR.OpenXR.Features; +#if UNITY_EDITOR +using UnityEditor; +using UnityEditor.XR.OpenXR.Features; +#endif + +namespace VIVE.OpenXR.SecondaryViewConfiguration +{ + /// + /// Name: SecondaryViewConfiguration.cs + /// Role: OpenXR SecondaryViewConfiguration Extension Class + /// Responsibility: The OpenXR extension implementation and its lifecycles logic in OpenXR + /// +#if UNITY_EDITOR + [OpenXRFeature(UiName = "VIVE XR Spectator Camera (Beta)", + BuildTargetGroups = new[] { BuildTargetGroup.Android }, + Company = "HTC", + Desc = "Allows an application to enable support for one or more secondary view configurations.", + DocumentationLink = "..\\Documentation", + OpenxrExtensionStrings = OPEN_XR_EXTENSION_STRING, + Version = "1.0.0", + FeatureId = FeatureId)] +#endif + public partial class ViveSecondaryViewConfiguration : OpenXRFeature + { + #region Varibles + + private static ViveSecondaryViewConfiguration _instance; + + /// + /// ViveSecondaryViewConfiguration static instance (Singleton). + /// + public static ViveSecondaryViewConfiguration Instance + { + get + { + if (_instance == null) + { + _instance = + OpenXRSettings.Instance.GetFeature(); + } + + return _instance; + } + } + + #region OpenXR variables related to definition + + /// + /// The log identification. + /// + private const string LogTag = "VIVE.OpenXR.SecondaryViewConfiguration"; + + /// + /// The feature id string. This is used to give the feature a well known id for reference. + /// + public const string FeatureId = "vive.openxr.feature.secondaryviewconfiguration"; + + /// + /// OpenXR specification 12.122. XR_MSFT_secondary_view_configuration. + /// + public const string OPEN_XR_EXTENSION_STRING = "XR_MSFT_secondary_view_configuration"; + + /// + /// The extension library name. + /// + private const string ExtLib = "libviveopenxr"; + + #endregion + + #region OpenXR variables related to its life-cycle + + /// + /// The flag represents whether the OpenXR loader created an instance or not. + /// + private bool XrInstanceCreated { get; set; } = false; + + /// + /// The flag represents whether the OpenXR loader created a session or not. + /// + private bool XrSessionCreated { get; set; } = false; + + /// + /// The flag represents whether the OpenXR loader started a session or not. + /// + private bool XrSessionStarted { get; set; } = false; + + /// + /// The instance created through xrCreateInstance. + /// + private XrInstance XrInstance { get; set; } = 0; + + /// + /// An XrSystemId is an opaque atom used by the runtime to identify a system. + /// + private XrSystemId XrSystemId { get; set; } = 0; + + /// + /// A session represents an application’s intention to display XR content to the user. + /// + private XrSession XrSession { get; set; } = 0; + + /// + /// New possible session lifecycle states. + /// + private XrSessionState XrSessionNewState { get; set; } = XrSessionState.XR_SESSION_STATE_UNKNOWN; + + /// + /// The previous state possible session lifecycle states. + /// + private XrSessionState XrSessionOldState { get; set; } = XrSessionState.XR_SESSION_STATE_UNKNOWN; + + /// + /// The function delegate declaration of xrGetInstanceProcAddr. + /// + private OpenXRHelper.xrGetInstanceProcAddrDelegate XrGetInstanceProcAddr { get; set; } + + #endregion + + #region Variables related to handle agent functions + + /// + /// A delegate declaration can encapsulate the method that takes a boolean argument and returns void. This declaration should only be used in the function "SecondaryViewConfigurationInterceptOpenXRMethod". + /// + private delegate void SetSecondaryViewConfigurationStateDelegate(bool isEnabled); + + /// + /// A delegate declaration can encapsulate the method that takes a boolean argument and returns void. This declaration should only be used in the function "SecondaryViewConfigurationInterceptOpenXRMethod". + /// + private delegate void StopEnableSecondaryViewConfigurationDelegate(bool isStopped); + + /// + /// A delegate declaration can encapsulate the method that takes a boolean argument and returns void. This declaration should only be used in the function "SecondaryViewConfigurationInterceptOpenXRMethod". + /// + private delegate void SetTextureSizeDelegate(UInt32 width, UInt32 height); + + /// + /// A delegate declaration can encapsulate the method that takes a boolean argument and returns void. This declaration should only be used in the function "SecondaryViewConfigurationInterceptOpenXRMethod". + /// + private delegate void SetFovDelegate(XrFovf fov); + + #endregion + + #region Variables related to callback functions instantiation + + /// + /// A delegate declaration can encapsulate the method that takes a Vector2 argument and returns void. + /// + public delegate void OnTextureSizeUpdatedDelegate(Vector2 size); + + /// + /// The instantiation of the delegate OnTextureSizeUpdatedDelegate. This will be called when the texture size coming from the native plugin is updated. + /// + public OnTextureSizeUpdatedDelegate onTextureSizeUpdated; + + /// + /// A delegate declaration can encapsulate the method that takes no argument and returns void. + /// + public delegate void OnTextureUpdatedDelegate(); + + /// + /// The instantiation of the delegate OnTextureUpdatedDelegate. This will be called when the texture coming from the native plugin is updated. + /// + public OnTextureUpdatedDelegate onTextureUpdated; + + /// + /// A delegate declaration can encapsulate the method that takes four floating-point arguments, left, right, up, and down, respectively, and returns void. + /// + public delegate void OnFovUpdatedDelegate(float left, float right, float up, float down); + + /// + /// The instantiation of the delegate OnFovUpdatedDelegate. This will be called when the fov setting coming from the native plugin is updated. + /// + public OnFovUpdatedDelegate onFovUpdated; + + #endregion + + #region Rendering and texture varibles + + /// + /// The graphics backend that the current application is used. + /// + private static GraphicsAPI MyGraphicsAPI + { + get + { + return SystemInfo.graphicsDeviceType switch + { + GraphicsDeviceType.OpenGLES3 => GraphicsAPI.GLES3, + GraphicsDeviceType.Vulkan => GraphicsAPI.Vulkan, + _ => GraphicsAPI.Unknown + }; + } + } + + private Vector2 _textureSize; + + /// + /// The value of texture size coming from the native plugin. + /// + public Vector2 TextureSize + { + get => _textureSize; + private set + { + _textureSize = value; + onTextureSizeUpdated?.Invoke(value); + } + } + + private Texture _myTexture; + + /// + /// The texture handler adopts the native 2D texture object coming from the native plugin. + /// + public Texture MyTexture + { + get => _myTexture; + private set + { + _myTexture = value; + onTextureUpdated?.Invoke(); + } + } + + #endregion + + #region The variables (flag) represent the state related to this OpenXR extension + + /// + /// The state of the second view configuration comes from runtime. + /// + public bool IsEnabled { get; set; } + + /// + /// The flag represents to whether the second view configuration is disabled or not. + /// + public bool IsStopped { get; set; } + + /// + /// The flag represents to whether the "SpectatorCameraBased" script exists in the Unity scene. + /// + private bool IsExistSpectatorCameraBased { get; set; } + + #endregion + + #endregion + + #region Function + + #region OpenXR life-cycle functions + + /// + /// Called after xrCreateInstance. + /// + /// Handle of the xrInstance. + /// Returns true if successful. Returns false otherwise. + protected override bool OnInstanceCreate(ulong xrInstance) + { + if (!IsExtensionEnabled()) + { + Warning("OnInstanceCreate() " + OPEN_XR_EXTENSION_STRING + " is NOT enabled."); + return false; + } + + var mySpectatorCameraBasedGameObject = GetSpectatorCameraBased(); + IsExistSpectatorCameraBased = mySpectatorCameraBasedGameObject != null; + + XrInstanceCreated = true; + XrInstance = xrInstance; + Debug("OnInstanceCreate() " + XrInstance); + + if (!GetXrFunctionDelegates(XrInstance)) + { + Error("Get function pointer of OpenXRFunctionPointerAccessor failed."); + return false; + } + + Debug("Get function pointer of OpenXRFunctionPointerAccessor succeed."); + return base.OnInstanceCreate(xrInstance); + } + + /// + /// Called after xrGetSystem + /// + /// Handle of the xrSystemId + protected override void OnSystemChange(ulong xrSystem) + { + XrSystemId = xrSystem; + Debug("OnSystemChange() " + XrSystemId); + + base.OnSystemChange(xrSystem); + } + + /// + /// Called after xrCreateSession. + /// + /// Handle of the xrSession. + protected override void OnSessionCreate(ulong xrSession) + { + XrSessionCreated = true; + XrSession = xrSession; + Debug("OnSessionCreate() " + XrSession); + + base.OnSessionCreate(xrSession); + } + + /// + /// Called after xrSessionBegin. + /// + /// Handle of the xrSession. + protected override void OnSessionBegin(ulong xrSession) + { + XrSessionStarted = true; + Debug("OnSessionBegin() " + XrSessionStarted); + + base.OnSessionBegin(xrSession); + } + + /// + /// Called when the OpenXR loader receives the XR_TYPE_EVENT_DATA_SESSION_STATE_CHANGED event from the runtime signaling that the XrSessionState has changed. + /// + /// Previous state. + /// New state. + protected override void OnSessionStateChange(int oldState, int newState) + { + Debug("OnSessionStateChange() oldState: " + oldState + " newState:" + newState); + + if (Enum.IsDefined(typeof(XrSessionState), oldState)) + { + XrSessionOldState = (XrSessionState)oldState; + } + else + { + Warning("OnSessionStateChange() oldState undefined"); + } + + if (Enum.IsDefined(typeof(XrSessionState), newState)) + { + XrSessionNewState = (XrSessionState)newState; + } + else + { + Warning("OnSessionStateChange() newState undefined"); + } + + base.OnSessionStateChange(oldState, newState); + } + + /// + /// Called to hook xrGetInstanceProcAddr. Returning a different function pointer allows intercepting any OpenXR method. + /// + /// xrGetInstanceProcAddr native function pointer. + /// Function pointer that Unity will use to look up OpenXR native functions. + protected override IntPtr HookGetInstanceProcAddr(IntPtr func) + { + Debug("HookGetInstanceProcAddr Start"); + if (MyGraphicsAPI is GraphicsAPI.GLES3 or GraphicsAPI.Vulkan) + { + Debug($"The app graphics API is {MyGraphicsAPI}"); + return SecondaryViewConfigurationInterceptOpenXRMethod + ( + MyGraphicsAPI, + SystemInfo.graphicsUVStartsAtTop, + func, + SetSecondaryViewConfigurationState, + StopEnableSecondaryViewConfiguration, + SetTextureSize, + SetFov + ); + } + + Error( + "The render backend is not supported. Requires OpenGL or Vulkan backend for secondary view configuration feature."); + return base.HookGetInstanceProcAddr(func); + } + + /// + /// Called before xrEndSession. + /// + /// Handle of the xrSession. + protected override void OnSessionEnd(ulong xrSession) + { + XrSessionStarted = false; + Debug("OnSessionEnd() " + XrSession); + + base.OnSessionEnd(xrSession); + } + + /// + /// Called before xrDestroySession. + /// + /// Handle of the xrSession. + protected override void OnSessionDestroy(ulong xrSession) + { + XrSessionCreated = false; + Debug("OnSessionDestroy() " + xrSession); + + base.OnSessionDestroy(xrSession); + } + + /// + /// Called before xrDestroyInstance. + /// + /// Handle of the xrInstance. + protected override void OnInstanceDestroy(ulong xrInstance) + { + XrInstanceCreated = false; + XrInstance = 0; + Debug("OnInstanceDestroy() " + xrInstance); + + base.OnInstanceDestroy(xrInstance); + } + + #endregion + + #region Handle agent functions + + /// + /// This function is defined as the "SetSecondaryViewConfigurationStateDelegate" delegate function. + /// Please be careful that this function should ONLY be called by native plug-ins. + /// THIS FUNCTION IS NOT DESIGNED FOR CALLING FROM THE UNITY ENGINE SIDE. + /// + /// The state of the second view configuration comes from runtime. True if enabled. False otherwise. + [MonoPInvokeCallback(typeof(SetSecondaryViewConfigurationStateDelegate))] + private static void SetSecondaryViewConfigurationState(bool isEnabled) + { + Instance.IsEnabled = isEnabled; + + if (Instance.IsEnableDebugLog) + { + Debug($"SetSecondaryViewConfigurationState: Instance.IsEnabled set as {Instance.IsEnabled}"); + } + } + + /// + /// This function is defined as the "StopEnableSecondaryViewConfigurationDelegate" delegate function. + /// Please be careful that this function should ONLY be called by native plug-ins. + /// THIS FUNCTION IS NOT DESIGNED FOR CALLING FROM THE UNITY ENGINE SIDE. + /// + /// The flag refers to whether the second view configuration is disabled or not. True if the second view configuration is disabled. False otherwise. + [MonoPInvokeCallback(typeof(StopEnableSecondaryViewConfigurationDelegate))] + private static void StopEnableSecondaryViewConfiguration(bool isStopped) + { + Instance.IsStopped = isStopped; + + if (Instance.IsEnableDebugLog) + { + Debug($"StopEnableSecondaryViewConfiguration: Instance.IsStopped set as {Instance.IsStopped}"); + } + } + + /// + /// This function is defined as the "SetTextureSizeDelegate" delegate function. + /// Please be careful that this function should ONLY be called by native plug-ins. + /// THIS FUNCTION IS NOT DESIGNED FOR CALLING FROM THE UNITY ENGINE SIDE. + /// + /// The texture width comes from runtime. + /// The texture height comes from runtime. + [MonoPInvokeCallback(typeof(SetTextureSizeDelegate))] + private static void SetTextureSize(uint width, uint height) + { + if (!Instance.IsExistSpectatorCameraBased) + { + CreateSpectatorCameraBased(); + } + + Instance.TextureSize = new Vector2(width, height); + if (Instance.IsEnableDebugLog) + { + Debug($"SetTextureSize width: {Instance.TextureSize.x}, height: {Instance.TextureSize.y}"); + } + + IntPtr texPtr = GetSecondaryViewTextureId(out uint imageIndex); + if (Instance.IsEnableDebugLog) + { + Debug($"SetTextureSize texPtr: {texPtr}, imageIndex: {imageIndex}"); + } + + if (texPtr == IntPtr.Zero) + { + Error($"SetTextureSize texPtr is invalid: {texPtr}"); + return; + } + + if (Instance.IsEnableDebugLog) + { + Debug("Get ptr successfully"); + } + + Instance.MyTexture = Texture2D.CreateExternalTexture( + (int)Instance.TextureSize.x, + (int)Instance.TextureSize.y, + TextureFormat.RGBA32, + false, + false, + texPtr); + + #region For development usage (Just for reference) + + /* + if (Instance.IsEnableDebugLog) + { + Debug("Create texture successfully"); + Debug($"Instance.MyTexture.height: {Instance.MyTexture.height}"); + Debug($"Instance.MyTexture.width: {Instance.MyTexture.width}"); + Debug($"Instance.MyTexture.dimension: {Instance.MyTexture.dimension}"); + Debug($"Instance.MyTexture.anisoLevel: {Instance.MyTexture.anisoLevel}"); + Debug($"Instance.MyTexture.filterMode: {Instance.MyTexture.filterMode}"); + Debug($"Instance.MyTexture.wrapMode: {Instance.MyTexture.wrapMode}"); + Debug($"Instance.MyTexture.graphicsFormat: {Instance.MyTexture.graphicsFormat}"); + Debug($"Instance.MyTexture.isReadable: {Instance.MyTexture.isReadable}"); + Debug($"Instance.MyTexture.texelSize: {Instance.MyTexture.texelSize}"); + Debug($"Instance.MyTexture.mipmapCount: {Instance.MyTexture.mipmapCount}"); + Debug($"Instance.MyTexture.updateCount: {Instance.MyTexture.updateCount}"); + Debug($"Instance.MyTexture.mipMapBias: {Instance.MyTexture.mipMapBias}"); + Debug($"Instance.MyTexture.wrapModeU: {Instance.MyTexture.wrapModeU}"); + Debug($"Instance.MyTexture.wrapModeV: {Instance.MyTexture.wrapModeV}"); + Debug($"Instance.MyTexture.wrapModeW: {Instance.MyTexture.wrapModeW}"); + Debug($"Instance.MyTexture.filterMode: {Instance.MyTexture.name}"); + Debug($"Instance.MyTexture.hideFlags: {Instance.MyTexture.hideFlags}"); + Debug($"Instance.MyTexture.GetInstanceID(): {Instance.MyTexture.GetInstanceID()}"); + Debug($"Instance.MyTexture.GetType(): {Instance.MyTexture.GetType()}"); + Debug($"Instance.MyTexture.GetNativeTexturePtr(): {Instance.MyTexture.GetNativeTexturePtr()}"); + // Print imageContentsHash will cause an error + // Debug($"Instance.MyTexture.imageContentsHash: {Instance.MyTexture.imageContentsHash}"); + } + */ + + #endregion + } + + /// + /// This function is defined as the "SetFovDelegate" delegate function. + /// Please be careful that this function should ONLY be called by native plug-ins. + /// THIS FUNCTION IS NOT DESIGNED FOR CALLING FROM THE UNITY ENGINE SIDE. + /// + /// The fov value comes from runtime. + [MonoPInvokeCallback(typeof(SetFovDelegate))] + private static void SetFov(XrFovf fov) + { + if (Instance.IsEnableDebugLog) + { + Debug($"fov.AngleDown {fov.angleDown}"); + Debug($"fov.AngleLeft {fov.angleLeft}"); + Debug($"fov.AngleRight {fov.angleRight}"); + Debug($"fov.AngleUp {fov.angleUp}"); + } + + Instance.onFovUpdated?.Invoke(fov.angleLeft, fov.angleRight, fov.angleUp, fov.angleDown); + } + + #endregion + + #region C++ interop functions + + /// + /// Call this function to trigger the native plug-in that gets a specific OpenXR function for services to the + /// Unity engine, such as dispatching the Unity data to runtime and returning the data from runtime to the + /// Unity engine. + /// + /// The XrInstance is provided by the Unity OpenXR Plugin. + /// Accessor for xrGetInstanceProcAddr function pointer. + /// Return true if get successfully. False otherwise. + [DllImport( + dllName: ExtLib, + CallingConvention = CallingConvention.Cdecl, + EntryPoint = "secondary_view_configuration_get_function_address")] + private static extern bool SecondaryViewConfigurationGetFunctionAddress + ( + XrInstance xrInstance, + IntPtr xrGetInstanceProcAddrFuncPtr + ); + + /// + /// Call this function to dispatch/hook all OpenXR functions to native plug-ins. + /// + /// The graphics backend adopted in the Unity engine. + /// The bool value represents whether the texture UV coordinate convention for this platform has Y starting at the top of the image. + /// xrGetInstanceProcAddr native function pointer. + /// The delegate function pointer that functions types as "SetSecondaryViewConfigurationStateDelegate". + /// The delegate function pointer that functions types as "StopEnableSecondaryViewConfigurationDelegate". + /// The delegate function pointer that functions types as "SetTextureSizeDelegate". + /// The delegate function pointer that functions types as "SetFovDelegate". + /// + [DllImport( + dllName: ExtLib, + CallingConvention = CallingConvention.Cdecl, + EntryPoint = "secondary_view_configuration_intercept_openxr_method")] + private static extern IntPtr SecondaryViewConfigurationInterceptOpenXRMethod + ( + GraphicsAPI graphicsAPI, + bool graphicsUVStartsAtTop, + IntPtr func, + [MarshalAs(UnmanagedType.FunctionPtr)] + SetSecondaryViewConfigurationStateDelegate setSecondaryViewConfigurationStateDelegate, + [MarshalAs(UnmanagedType.FunctionPtr)] + StopEnableSecondaryViewConfigurationDelegate stopEnableSecondaryViewConfigurationDelegate, + [MarshalAs(UnmanagedType.FunctionPtr)] SetTextureSizeDelegate setTextureSizeDelegate, + [MarshalAs(UnmanagedType.FunctionPtr)] SetFovDelegate setFovDelegate + ); + + /// + /// Call this function to get the current swapchain image handler (its ID and memory address). + /// + /// The current handler index. + /// The current handler memory address. + [DllImport( + dllName: ExtLib, + CallingConvention = CallingConvention.Cdecl, + EntryPoint = "get_secondary_view_texture_id")] + private static extern IntPtr GetSecondaryViewTextureId + ( + out UInt32 imageIndex + ); + + /// + /// Call this function to tell native plug-in submit the swapchain image immediately. + /// + /// Return true if submit the swapchain image successfully. False otherwise. + [DllImport( + dllName: ExtLib, + CallingConvention = CallingConvention.Cdecl, + EntryPoint = "release_secondary_view_texture")] + public static extern bool ReleaseSecondaryViewTexture(); + + /// + /// Call this function to release all resources in native plug-in. Please be careful that this function should + /// ONLY call in the Unity "OnDestroy" lifecycle event in the class "SpectatorCameraBased". + /// + [DllImport( + dllName: ExtLib, + CallingConvention = CallingConvention.Cdecl, + EntryPoint = "release_all_resources")] + public static extern void ReleaseAllResources(); + + /// + /// Call this function if requiring swapchain re-initialization. The native plug-in will set a re-initialization + /// flag. Once the secondary view is enabled after that, the swapchain will re-init immediately. + /// + [DllImport( + dllName: ExtLib, + CallingConvention = CallingConvention.Cdecl, + EntryPoint = "require_reinit_swapchain")] + public static extern void RequireReinitSwapchain(); + + /// + /// Call this function to tell the native plug-in where the current spectator camera source comes from. + /// + /// Please set true if the source comes from hmd. Otherwise, please set false. + [DllImport( + dllName: ExtLib, + CallingConvention = CallingConvention.Cdecl, + EntryPoint = "set_view_from_hmd")] + public static extern void SetViewFromHmd(bool isViewFromHmd); + + /// + /// Call this function to tell the non-hmd pose to the native plug-in. + /// + /// The current non-hmd pose + [DllImport( + dllName: ExtLib, + CallingConvention = CallingConvention.Cdecl, + EntryPoint = "set_non_hmd_view_pose")] + public static extern void SetNonHmdViewPose(XrPosef pose); + + /// + /// Call this function to tell the native plug-in whether the texture data is ready or not. + /// + /// The texture data written by Unity Engine is ready or not. + [DllImport( + dllName: ExtLib, + CallingConvention = CallingConvention.Cdecl, + EntryPoint = "set_state_secondary_view_image_data_ready")] + public static extern void SetStateSecondaryViewImageDataReady(bool isReady); + + #endregion + + #region Utilities functions + + /// + /// Check ViveSecondaryViewConfiguration extension is enabled or not. + /// + /// Return true if enabled. False otherwise. + public static bool IsExtensionEnabled() + { +#if UNITY_2022_1_OR_NEWER + return OpenXRRuntime.IsExtensionEnabled(OPEN_XR_EXTENSION_STRING); +#else + // Does not support 2021 or lower + return false; +#endif + } + + /// + /// Get the OpenXR function via XrInstance. + /// + /// The XrInstance is provided by the Unity OpenXR Plugin. + /// Return true if get successfully. False otherwise. + private bool GetXrFunctionDelegates(XrInstance xrInstance) + { + if (xrGetInstanceProcAddr != IntPtr.Zero) + { + Debug("Get function pointer of openXRFunctionPointerAccessor."); + XrGetInstanceProcAddr = Marshal.GetDelegateForFunctionPointer(xrGetInstanceProcAddr, + typeof(OpenXRHelper.xrGetInstanceProcAddrDelegate)) as OpenXRHelper.xrGetInstanceProcAddrDelegate; + + if (XrGetInstanceProcAddr == null) + { + Error( + "Get function pointer of openXRFunctionPointerAccessor failed due to the XrGetInstanceProcAddr is null."); + return false; + } + } + else + { + Error( + "Get function pointer of openXRFunctionPointerAccessor failed due to the xrGetInstanceProcAddr is null."); + return false; + } + + Debug("Try to get the function pointer for XR_MSFT_secondary_view_configuration."); + + return SecondaryViewConfigurationGetFunctionAddress(xrInstance, xrGetInstanceProcAddr); + + #region Get function in C# (Just for reference) + + /* if (GetOpenXRDelegateFunction( + XrGetInstanceProcAddr, + xrInstance, + "xrEnumerateViewConfigurations", + out _xrEnumerateViewConfigurations) is false) + { + Error("Get delegate function of XrEnumerateViewConfigurations failed."); + return false; + } */ + + #endregion + } + + /// + /// Get the specific OpenXR function. + /// + /// The function pointer accessor provide by OpenXR. + /// The XrInstance is provided by the Unity OpenXR Plugin. + /// The specific OpenXR function. + /// Override value. The specific OpenXR function. + /// The class of the delegate function. + /// Return true if get successfully. False otherwise. + private static bool GetOpenXRDelegateFunction + ( + in OpenXRHelper.xrGetInstanceProcAddrDelegate openXRFunctionPointerAccessor, + in XrInstance openXRInstance, + in string functionName, + out T delegateFunction + ) where T : class + { + delegateFunction = default(T); + + if (openXRFunctionPointerAccessor == null || openXRInstance == 0 || string.IsNullOrEmpty(functionName)) + { + Error($"Get OpenXR delegate function, {functionName}, failed due to the invalid parameter(s)."); + return false; + } + + XrResult getFunctionState = openXRFunctionPointerAccessor(openXRInstance, functionName, out IntPtr funcPtr); + bool funcPtrIsNull = funcPtr == IntPtr.Zero; + + Debug("Get OpenXR delegate function, " + functionName + ", state: " + getFunctionState); + Debug("Get OpenXR delegate function, " + functionName + ", funcPtrIsNull: " + funcPtrIsNull); + + if (getFunctionState != XrResult.XR_SUCCESS || funcPtrIsNull) + { + Error( + $"Get OpenXR delegate function, {functionName}, failed due to the native error or invalid return."); + return false; + } + + try + { + delegateFunction = Marshal.GetDelegateForFunctionPointer(funcPtr, typeof(T)) as T; + } + catch (Exception e) + { + Error($"Get OpenXR delegate function, {functionName}, failed due to the exception: {e.Message}"); + return false; + } + + Debug($"Get OpenXR delegate function, {functionName}, succeed."); + + return true; + } + + /// + /// Print log with tag "VIVE.OpenXR.SecondaryViewConfiguration". + /// + /// The log you want to print. + private static void Debug(string msg) + { + UnityEngine.Debug.Log(LogTag + " " + msg); + } + + /// + /// Print warning message with tag "VIVE.OpenXR.SecondaryViewConfiguration". + /// + /// The warning message you want to print. + private static void Warning(string msg) + { + UnityEngine.Debug.LogWarning(LogTag + " " + msg); + } + + /// + /// Print an error message with the tag "VIVE.OpenXR.SecondaryViewConfiguration." + /// + /// The error message you want to print. + private static void Error(string msg) + { + UnityEngine.Debug.LogError(LogTag + " " + msg); + } + + /// + /// Get the SpectatorCameraBased component in the current Unity scene. + /// + /// SpectatorCameraBased array if there are any SpectatorCameraBased components. Otherwise, return null. + private static SpectatorCameraBased[] GetSpectatorCameraBased() + { + var spectatorCameraBasedArray = (SpectatorCameraBased[])FindObjectsOfType(typeof(SpectatorCameraBased)); + return (spectatorCameraBasedArray != null && spectatorCameraBasedArray.Length > 0) + ? spectatorCameraBasedArray + : null; + } + + /// + /// Create a GameObject that includes SpectatorCameraBased script in Unity scene for cooperation with extension native plugins. + /// + private static void CreateSpectatorCameraBased() + { + if (IsExtensionEnabled()) + { + Debug($"Instance.IsExistSpectatorCameraBased = {Instance.IsExistSpectatorCameraBased}"); + + Instance.IsExistSpectatorCameraBased = true; + + if (GetSpectatorCameraBased() != null) + { + Debug("No need to add SpectatorCameraBased because the scene already exist."); + return; + } + + Debug("Start to add SpectatorCameraBased."); + + var spectatorCameraBase = + new GameObject("Spectator Camera Base", typeof(SpectatorCameraBased)) + { + transform = + { + position = Vector3.zero, + rotation = Quaternion.identity + } + }; + + Debug($"Create Spectator Camera Base GameObject successfully: {spectatorCameraBase != null}"); + Debug( + $"Included SpectatorCameraBased component: {spectatorCameraBase.GetComponent() != null}"); + } + else + { + Debug("Create Spectator Camera Base GameObject failed because the related extensions are not enabled."); + } + } + + #endregion + + #endregion + + #region Enum definition + + /// + /// The enum definition of supporting rendering backend. + /// + private enum GraphicsAPI + { + Unknown = 0, + GLES3 = 1, + Vulkan = 2 + } + + #endregion + } +} \ No newline at end of file diff --git a/com.htc.upm.vive.openxr/Runtime/Features/SecondaryViewConfiguration/Scripts/ViveSecondaryViewConfiguration.cs.meta b/com.htc.upm.vive.openxr/Runtime/Features/SecondaryViewConfiguration/Scripts/ViveSecondaryViewConfiguration.cs.meta new file mode 100644 index 0000000..0b267a4 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Features/SecondaryViewConfiguration/Scripts/ViveSecondaryViewConfiguration.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8f3afcc00e190534d8c0c8ebd2246d84 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Features/Tracker/ViveTracker.meta b/com.htc.upm.vive.openxr/Runtime/Features/Tracker/ViveTracker.meta new file mode 100644 index 0000000..6b1f453 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Features/Tracker/ViveTracker.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 98501444f3c95b04ba14d487f13e1675 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Features/Tracker/ViveTracker/HTCViveTrackerProfile.cs b/com.htc.upm.vive.openxr/Runtime/Features/Tracker/ViveTracker/HTCViveTrackerProfile.cs new file mode 100644 index 0000000..241eeb2 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Features/Tracker/ViveTracker/HTCViveTrackerProfile.cs @@ -0,0 +1,395 @@ +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.Scripting; +using UnityEngine.XR.OpenXR.Input; +using UnityEngine.InputSystem.Layouts; +using UnityEngine.InputSystem.Controls; +using UnityEngine.InputSystem.XR; +using UnityEngine.InputSystem; +using System.Runtime.InteropServices; +using System; + +#if UNITY_EDITOR +using UnityEditor; +#endif + +#if USE_INPUT_SYSTEM_POSE_CONTROL // Scripting Define Symbol added by using OpenXR Plugin 1.6.0. +using PoseControl = UnityEngine.InputSystem.XR.PoseControl; +#else +using PoseControl = UnityEngine.XR.OpenXR.Input.PoseControl; +#endif + +namespace UnityEngine.XR.OpenXR.Features.Interactions +{ + /// + /// This enables the use of HTC Vive Trackers interaction profiles in OpenXR. + /// +#if UNITY_EDITOR + [UnityEditor.XR.OpenXR.Features.OpenXRFeature( + UiName = "HTC Vive Tracker Profile", + BuildTargetGroups = new[] { BuildTargetGroup.Standalone, BuildTargetGroup.WSA }, + Company = "MASSIVE", + Desc = "Allows for mapping input to the HTC Vive Tracker interaction profile.", + DocumentationLink = Constants.k_DocumentationManualURL, + OpenxrExtensionStrings = HTCViveTrackerProfile.extensionName, + Version = "0.0.1", + Category = UnityEditor.XR.OpenXR.Features.FeatureCategory.Interaction, + FeatureId = featureId)] +#endif + public class HTCViveTrackerProfile : OpenXRInteractionFeature + { + /// + /// The feature id string. This is used to give the feature a well known id for reference. + /// + public const string featureId = "com.massive.openxr.feature.input.htcvivetracker"; + + /// + /// The interaction profile string used to reference the HTC Vive Tracker. + /// + public const string profile = "/interaction_profiles/htc/vive_tracker_htcx"; + + /// + /// The name of the OpenXR extension that supports the Vive Tracker + /// + public const string extensionName = "XR_HTCX_vive_tracker_interaction"; + private const string kLayoutName = "ViveTracker"; + private const string kDeviceLocalizedName = "HTC Vive Tracker OpenXR"; + + /// + /// OpenXR user path definitions for the tracker. + /// + public static class TrackerUserPaths + { + /// + /// Path for user left foot + /// + public const string leftFoot = "/user/vive_tracker_htcx/role/left_foot"; + + /// + /// Path for user roght foot + /// + public const string rightFoot = "/user/vive_tracker_htcx/role/right_foot"; + + /// + /// Path for user left shoulder + /// + public const string leftShoulder = "/user/vive_tracker_htcx/role/left_shoulder"; + + /// + /// Path for user right shoulder + /// + public const string rightShoulder = "/user/vive_tracker_htcx/role/right_shoulder"; + + /// + /// Path for user left elbow + /// + public const string leftElbow = "/user/vive_tracker_htcx/role/left_elbow"; + + /// + /// Path for user right elbow + /// + public const string rightElbow = "/user/vive_tracker_htcx/role/right_elbow"; + + /// + /// Path for user left knee + /// + public const string leftKnee = "/user/vive_tracker_htcx/role/left_knee"; + + /// + /// Path for user right knee + /// + public const string rightKnee = "/user/vive_tracker_htcx/role/right_knee"; + + /// + /// Path for user waist + /// + public const string waist = "/user/vive_tracker_htcx/role/waist"; + + /// + /// Path for user chest + /// + public const string chest = "/user/vive_tracker_htcx/role/chest"; + + /// + /// Path for user custom camera + /// + public const string camera = "/user/vive_tracker_htcx/role/camera"; + + /// + /// Path for user keyboard + /// + public const string keyboard = "/user/vive_tracker_htcx/role/keyboard"; + } + + /// + /// OpenXR component path definitions for the tracker. + /// + public static class TrackerComponentPaths + { + /// + /// Constant for a pose interaction binding '.../input/grip/pose' OpenXR Input Binding. Used by input subsystem to bind actions to physical inputs. + /// + public const string grip = "/input/grip/pose"; + } + + /// + /// A base Input System device for XR Trackers, based off the TrackedDevice + /// + [InputControlLayout(isGenericTypeOfDevice = true, displayName = "XR Tracker")] + public class XRTracker : TrackedDevice + { + } + + /// + /// An Input System device based off the HTC Vive Tracker. + /// + [Preserve, InputControlLayout(displayName = "HTC Vive Tracker (OpenXR)", commonUsages = new[] { "Left Foot", "Right Foot", "Left Shoulder", "Right Shoulder", "Left Elbow", "Right Elbow", "Left Knee", "Right Knee", "Waist", "Chest", "Camera", "Keyboard" })] + public class XRViveTracker : XRTracker + { + /// + /// A that represents information from the OpenXR binding. + /// + [Preserve, InputControl(offset = 0, aliases = new[] { "device", "gripPose" }, usage = "Device", noisy = true)] + public PoseControl devicePose { get; private set; } + + /// + /// A [Vector3Control](xref:UnityEngine.InputSystem.Controls.Vector3Control) required for back compatibility with the XRSDK layouts. This is the device position. For the Oculus Touch device, this is both the grip and the pointer position. This value is equivalent to mapping devicePose/position. + /// + [Preserve, InputControl(offset = 8, alias = "gripPosition", noisy = true)] + new public Vector3Control devicePosition { get; private set; } + + /// + /// A [QuaternionControl](xref:UnityEngine.InputSystem.Controls.QuaternionControl) required for backwards compatibility with the XRSDK layouts. This is the device orientation. For the Oculus Touch device, this is both the grip and the pointer rotation. This value is equivalent to mapping devicePose/rotation. + /// + [Preserve, InputControl(offset = 20, alias = "gripOrientation", noisy = true)] + new public QuaternionControl deviceRotation { get; private set; } + + [Preserve, InputControl(offset = 60)] + new public ButtonControl isTracked { get; private set; } + + [Preserve, InputControl(offset = 64)] + new public IntegerControl trackingState { get; private set; } + + /// + protected override void FinishSetup() + { + base.FinishSetup(); + devicePose = GetChildControl("devicePose"); + devicePosition = GetChildControl("devicePosition"); + deviceRotation = GetChildControl("deviceRotation"); + isTracked = GetChildControl("isTracked"); + trackingState = GetChildControl("trackingState"); + + var capabilities = description.capabilities; + var deviceDescriptor = XRDeviceDescriptor.FromJson(capabilities); + + if ((deviceDescriptor.characteristics & (InputDeviceCharacteristics)InputDeviceTrackerCharacteristics.TrackerLeftFoot) != 0) + InputSystem.InputSystem.SetDeviceUsage(this, "Left Foot"); + else if ((deviceDescriptor.characteristics & (InputDeviceCharacteristics)InputDeviceTrackerCharacteristics.TrackerRightFoot) != 0) + InputSystem.InputSystem.SetDeviceUsage(this, "Right Foot"); + else if ((deviceDescriptor.characteristics & (InputDeviceCharacteristics)InputDeviceTrackerCharacteristics.TrackerLeftShoulder) != 0) + InputSystem.InputSystem.SetDeviceUsage(this, "Left Shoulder"); + else if ((deviceDescriptor.characteristics & (InputDeviceCharacteristics)InputDeviceTrackerCharacteristics.TrackerRightShoulder) != 0) + InputSystem.InputSystem.SetDeviceUsage(this, "Right Shoulder"); + else if ((deviceDescriptor.characteristics & (InputDeviceCharacteristics)InputDeviceTrackerCharacteristics.TrackerLeftElbow) != 0) + InputSystem.InputSystem.SetDeviceUsage(this, "Left Elbow"); + else if ((deviceDescriptor.characteristics & (InputDeviceCharacteristics)InputDeviceTrackerCharacteristics.TrackerRightElbow) != 0) + InputSystem.InputSystem.SetDeviceUsage(this, "Right Elbow"); + else if ((deviceDescriptor.characteristics & (InputDeviceCharacteristics)InputDeviceTrackerCharacteristics.TrackerLeftKnee) != 0) + InputSystem.InputSystem.SetDeviceUsage(this, "Left Knee"); + else if ((deviceDescriptor.characteristics & (InputDeviceCharacteristics)InputDeviceTrackerCharacteristics.TrackerRightKnee) != 0) + InputSystem.InputSystem.SetDeviceUsage(this, "Right Knee"); + else if ((deviceDescriptor.characteristics & (InputDeviceCharacteristics)InputDeviceTrackerCharacteristics.TrackerWaist) != 0) + InputSystem.InputSystem.SetDeviceUsage(this, "Waist"); + else if ((deviceDescriptor.characteristics & (InputDeviceCharacteristics)InputDeviceTrackerCharacteristics.TrackerChest) != 0) + InputSystem.InputSystem.SetDeviceUsage(this, "Chest"); + else if ((deviceDescriptor.characteristics & (InputDeviceCharacteristics)InputDeviceTrackerCharacteristics.TrackerCamera) != 0) + InputSystem.InputSystem.SetDeviceUsage(this, "Camera"); + else if ((deviceDescriptor.characteristics & (InputDeviceCharacteristics)InputDeviceTrackerCharacteristics.TrackerKeyboard) != 0) + InputSystem.InputSystem.SetDeviceUsage(this, "Keyboard"); + + Debug.Log("Device added"); + } + } + + /// + /// Registers the layout with the Input System. + /// + protected override void RegisterDeviceLayout() + { + InputSystem.InputSystem.RegisterLayout(); + + InputSystem.InputSystem.RegisterLayout(typeof(XRViveTracker), + matches: new InputDeviceMatcher() + .WithInterface(XRUtilities.InterfaceMatchAnyVersion) + .WithProduct(kDeviceLocalizedName)); + } + + /// + /// Removes the layout from the Input System. + /// + protected override void UnregisterDeviceLayout() + { + InputSystem.InputSystem.RemoveLayout(nameof(XRViveTracker)); + InputSystem.InputSystem.RemoveLayout(nameof(XRTracker)); + } + +#if UNITY_XR_OPENXR_1_9_1 + /// + /// Return interaction profile type. XRViveTracker profile is Device type. + /// + /// Interaction profile type. + protected override InteractionProfileType GetInteractionProfileType() + { + return typeof(XRViveTracker).IsSubclassOf(typeof(XRController)) ? InteractionProfileType.XRController : InteractionProfileType.Device; + } + + /// + /// Return device layer out string used for registering device VIVEFocus3Controller in InputSystem. + /// + /// Device layout string. + protected override string GetDeviceLayoutName() + { + return kLayoutName; + } +#endif + + // + // Summary: + // A set of bit flags describing XR.InputDevice characteristics. + //"Left Foot", "Right Foot", "Left Shoulder", "Right Shoulder", "Left Elbow", "Right Elbow", "Left Knee", "Right Knee", "Waist", "Chest", "Camera", "Keyboard" + [Flags] + public enum InputDeviceTrackerCharacteristics : uint + { + TrackerLeftFoot = 0x1000u, + TrackerRightFoot = 0x2000u, + TrackerLeftShoulder = 0x4000u, + TrackerRightShoulder = 0x8000u, + TrackerLeftElbow = 0x10000u, + TrackerRightElbow = 0x20000u, + TrackerLeftKnee = 0x40000u, + TrackerRightKnee = 0x80000u, + TrackerWaist = 0x100000u, + TrackerChest = 0x200000u, + TrackerCamera = 0x400000u, + TrackerKeyboard = 0x800000u + } + + /// + protected override void RegisterActionMapsWithRuntime() + { + ActionMapConfig actionMap = new ActionMapConfig() + { + name = "htcvivetracker", + localizedName = kDeviceLocalizedName, + desiredInteractionProfile = profile, + manufacturer = "HTC", + serialNumber = "", + deviceInfos = new List() + { + new DeviceConfig() + { + characteristics = (InputDeviceCharacteristics.TrackedDevice) | (InputDeviceCharacteristics)InputDeviceTrackerCharacteristics.TrackerLeftFoot, + userPath = TrackerUserPaths.leftFoot + }, + new DeviceConfig() + { + characteristics = (InputDeviceCharacteristics.TrackedDevice) | (InputDeviceCharacteristics)InputDeviceTrackerCharacteristics.TrackerRightFoot, + userPath = TrackerUserPaths.rightFoot + }, + new DeviceConfig() + { + characteristics = (InputDeviceCharacteristics.TrackedDevice) | (InputDeviceCharacteristics)InputDeviceTrackerCharacteristics.TrackerLeftShoulder, + userPath = TrackerUserPaths.leftShoulder + }, + new DeviceConfig() + { + characteristics = (InputDeviceCharacteristics.TrackedDevice) | (InputDeviceCharacteristics)InputDeviceTrackerCharacteristics.TrackerRightShoulder, + userPath = TrackerUserPaths.rightShoulder + }, + new DeviceConfig() + { + characteristics = (InputDeviceCharacteristics.TrackedDevice) | (InputDeviceCharacteristics)InputDeviceTrackerCharacteristics.TrackerLeftElbow, + userPath = TrackerUserPaths.leftElbow + }, + new DeviceConfig() + { + characteristics = (InputDeviceCharacteristics.TrackedDevice) | (InputDeviceCharacteristics)InputDeviceTrackerCharacteristics.TrackerRightElbow, + userPath = TrackerUserPaths.rightElbow + }, + new DeviceConfig() + { + characteristics = (InputDeviceCharacteristics.TrackedDevice) | (InputDeviceCharacteristics)InputDeviceTrackerCharacteristics.TrackerLeftKnee, + userPath = TrackerUserPaths.leftKnee + }, + new DeviceConfig() + { + characteristics = (InputDeviceCharacteristics.TrackedDevice) | (InputDeviceCharacteristics)InputDeviceTrackerCharacteristics.TrackerRightKnee, + userPath = TrackerUserPaths.rightKnee + }, + new DeviceConfig() + { + characteristics = (InputDeviceCharacteristics.TrackedDevice) | (InputDeviceCharacteristics)InputDeviceTrackerCharacteristics.TrackerWaist, + userPath = TrackerUserPaths.waist + }, + new DeviceConfig() + { + characteristics = (InputDeviceCharacteristics.TrackedDevice) | (InputDeviceCharacteristics)InputDeviceTrackerCharacteristics.TrackerChest, + userPath = TrackerUserPaths.chest + }, + new DeviceConfig() + { + characteristics = (InputDeviceCharacteristics.TrackedDevice) | (InputDeviceCharacteristics)InputDeviceTrackerCharacteristics.TrackerCamera, + userPath = TrackerUserPaths.camera + }, + new DeviceConfig() + { + characteristics = (InputDeviceCharacteristics.TrackedDevice) | (InputDeviceCharacteristics)InputDeviceTrackerCharacteristics.TrackerKeyboard, + userPath = TrackerUserPaths.keyboard + } + }, + actions = new List() + { + new ActionConfig() + { + name = "devicePose", + localizedName = "Device Pose", + type = ActionType.Pose, + usages = new List() + { + "Device", + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = TrackerComponentPaths.grip, + interactionProfileName = profile, + } + } + }, + } + }; + + AddActionMap(actionMap); + } + + protected override bool OnInstanceCreate(ulong xrInstance) + { + bool res = base.OnInstanceCreate(xrInstance); + + if (OpenXRRuntime.IsExtensionEnabled("XR_HTCX_vive_tracker_interaction")) + { + Debug.Log("HTC Vive Tracker Extension Enabled"); + } + else + { + Debug.Log("HTC Vive Tracker Extension Not Enabled"); + } + + return res; + } + } + + +} \ No newline at end of file diff --git a/com.htc.upm.vive.openxr/Runtime/Features/Tracker/ViveTracker/HTCViveTrackerProfile.cs.meta b/com.htc.upm.vive.openxr/Runtime/Features/Tracker/ViveTracker/HTCViveTrackerProfile.cs.meta new file mode 100644 index 0000000..58c58a7 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Features/Tracker/ViveTracker/HTCViveTrackerProfile.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 51409463ea680134696701b5f24fafc3 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Features/Tracker/Wrist/Scripts/ViveWristTracker.cs b/com.htc.upm.vive.openxr/Runtime/Features/Tracker/Wrist/Scripts/ViveWristTracker.cs index 33378ac..047a181 100644 --- a/com.htc.upm.vive.openxr/Runtime/Features/Tracker/Wrist/Scripts/ViveWristTracker.cs +++ b/com.htc.upm.vive.openxr/Runtime/Features/Tracker/Wrist/Scripts/ViveWristTracker.cs @@ -32,10 +32,11 @@ namespace VIVE.OpenXR.Tracker /// #if UNITY_EDITOR [OpenXRFeature(UiName = "VIVE XR Wrist Tracker", - BuildTargetGroups = new[] { BuildTargetGroup.Android , BuildTargetGroup.Standalone}, + Hidden = true, + BuildTargetGroups = new[] { BuildTargetGroup.Android, BuildTargetGroup.Standalone }, Company = "HTC", Desc = "Support for enabling the wrist tracker interaction profile. Will register the controller map for wrist tracker if enabled.", - DocumentationLink = "..\\Documentation", + DocumentationLink = "https://registry.khronos.org/OpenXR/specs/1.1/html/xrspec.html#XR_HTC_vive_wrist_tracker_interaction", Version = "1.0.0", OpenxrExtensionStrings = kOpenxrExtensionString, Category = FeatureCategory.Interaction, @@ -43,16 +44,19 @@ namespace VIVE.OpenXR.Tracker #endif public class ViveWristTracker : OpenXRInteractionFeature { + #region Log const string LOG_TAG = "VIVE.OpenXR.Tracker.ViveWristTracker "; StringBuilder m_sb = null; - StringBuilder sb { - get { + StringBuilder sb + { + get + { if (m_sb == null) { m_sb = new StringBuilder(); } return m_sb; } } - void DEBUG(StringBuilder msg) { Debug.Log(msg); } - void WARNING(StringBuilder msg) { Debug.LogWarning(msg); } + void DEBUG(StringBuilder msg) { Debug.LogFormat("{0} {1}", LOG_TAG, msg); } + #endregion /// /// OpenXR specification 12.72. XR_HTC_vive_wrist_tracker_interaction. @@ -70,12 +74,12 @@ namespace VIVE.OpenXR.Tracker private const string leftWrist = "/user/wrist_htc/left"; private const string rightWrist = "/user/wrist_htc/right"; - // Available Bindings - // Left Hand Only - /// - /// Constant for a boolean interaction binding '.../input/x/click' OpenXR Input Binding. Used by input subsystem to bind actions to physical inputs. This binding is only available for the user path. - /// - public const string buttonX = "/input/x/click"; + // Available Bindings + // Left Hand Only + /// + /// Constant for a boolean interaction binding '.../input/x/click' OpenXR Input Binding. Used by input subsystem to bind actions to physical inputs. This binding is only available for the user path. + /// + public const string buttonX = "/input/x/click"; /// /// Constant for a boolean interaction binding '.../input/menu/click' OpenXR Input Binding. Used by input subsystem to bind actions to physical inputs. This binding is only available for the user path. /// @@ -100,15 +104,19 @@ namespace VIVE.OpenXR.Tracker [Preserve, InputControlLayout(displayName = "VIVE Wrist Tracker (OpenXR)", commonUsages = new[] { "LeftHand", "RightHand" }, isGenericTypeOfDevice = true)] public class WristTrackerDevice : OpenXRDevice { + #region Log const string LOG_TAG = "VIVE.OpenXR.Tracker.ViveWristTracker.WristTrackerDevice "; StringBuilder m_sb = null; - StringBuilder sb { - get { + StringBuilder sb + { + get + { if (m_sb == null) { m_sb = new StringBuilder(); } return m_sb; } } - void DEBUG(StringBuilder msg) { Debug.Log(msg); } + void DEBUG(StringBuilder msg) { Debug.LogFormat("{0} {1}", LOG_TAG, msg); } + #endregion /// /// A ButtonControl that represents the OpenXR bindings, depending on handedness. @@ -167,8 +175,7 @@ namespace VIVE.OpenXR.Tracker devicePosition = GetChildControl("devicePosition"); deviceRotation = GetChildControl("deviceRotation"); - sb.Clear().Append(LOG_TAG) - .Append(" FinishSetup() device interfaceName: ").Append(description.interfaceName) + sb.Clear().Append(" FinishSetup() device interfaceName: ").Append(description.interfaceName) .Append(", deviceClass: ").Append(description.deviceClass) .Append(", product: ").Append(description.product) .Append(", serial: ").Append(description.serial); @@ -189,7 +196,7 @@ namespace VIVE.OpenXR.Tracker { m_XrInstanceCreated = true; m_XrInstance = xrInstance; - sb.Clear().Append(LOG_TAG).Append(" OnInstanceCreate() " + m_XrInstance); DEBUG(sb); + sb.Clear().Append(" OnInstanceCreate() " + m_XrInstance); DEBUG(sb); return base.OnInstanceCreate(xrInstance); } @@ -201,11 +208,12 @@ namespace VIVE.OpenXR.Tracker /// protected override void RegisterDeviceLayout() { + sb.Clear().Append("RegisterDeviceLayout() ").Append(kLayoutName).Append(", product: ").Append(kDeviceLocalizedName); DEBUG(sb); InputSystem.RegisterLayout(typeof(WristTrackerDevice), - kLayoutName, - matches: new InputDeviceMatcher() - .WithInterface(XRUtilities.InterfaceMatchAnyVersion) - .WithProduct(kDeviceLocalizedName)); + kLayoutName, + matches: new InputDeviceMatcher() + .WithInterface(XRUtilities.InterfaceMatchAnyVersion) + .WithProduct(kDeviceLocalizedName)); } /// @@ -213,9 +221,30 @@ namespace VIVE.OpenXR.Tracker /// protected override void UnregisterDeviceLayout() { + sb.Clear().Append("UnregisterDeviceLayout() ").Append(kLayoutName); DEBUG(sb); InputSystem.RemoveLayout(kLayoutName); } +#if UNITY_XR_OPENXR_1_9_1 + /// + /// Return interaction profile type. WristTrackerDevice profile is Device type. + /// + /// Interaction profile type. + protected override InteractionProfileType GetInteractionProfileType() + { + return typeof(WristTrackerDevice).IsSubclassOf(typeof(XRController)) ? InteractionProfileType.XRController : InteractionProfileType.Device; + } + + /// + /// Return device layer out string used for registering device WristTrackerDevice in InputSystem. + /// + /// Device layout string. + protected override string GetDeviceLayoutName() + { + return kLayoutName; + } +#endif + /// /// Registers action maps to Unity XR. /// @@ -245,30 +274,30 @@ namespace VIVE.OpenXR.Tracker { // X / A Press new ActionConfig() - { - name = "primaryButton", - localizedName = "Primary Pressed", - type = ActionType.Binary, - usages = new List() - { - "PrimaryButton" - }, - bindings = new List() - { - new ActionBinding() - { - interactionPath = buttonX, - interactionProfileName = profile, - userPaths = new List() { leftWrist } - }, - new ActionBinding() - { - interactionPath = buttonA, - interactionProfileName = profile, - userPaths = new List() { rightWrist } - }, - } - }, + { + name = "primaryButton", + localizedName = "Primary Pressed", + type = ActionType.Binary, + usages = new List() + { + "PrimaryButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = buttonX, + interactionProfileName = profile, + userPaths = new List() { leftWrist } + }, + new ActionBinding() + { + interactionPath = buttonA, + interactionProfileName = profile, + userPaths = new List() { rightWrist } + }, + } + }, // Menu new ActionConfig() { diff --git a/com.htc.upm.vive.openxr/Runtime/Features/Tracker/XR/Scripts/ViveXRTracker.cs b/com.htc.upm.vive.openxr/Runtime/Features/Tracker/XR/Scripts/ViveXRTracker.cs index 0cbe7c9..2850a6f 100644 --- a/com.htc.upm.vive.openxr/Runtime/Features/Tracker/XR/Scripts/ViveXRTracker.cs +++ b/com.htc.upm.vive.openxr/Runtime/Features/Tracker/XR/Scripts/ViveXRTracker.cs @@ -37,6 +37,7 @@ namespace VIVE.OpenXR.Tracker /// #if UNITY_EDITOR [OpenXRFeature(UiName = "VIVE XR Tracker (Beta)", + Hidden = true, BuildTargetGroups = new[] { BuildTargetGroup.Android, BuildTargetGroup.Standalone }, Company = "HTC", Desc = "Support for enabling the vive xr tracker interaction profile. Will register the controller map for xr tracker if enabled.", @@ -48,6 +49,7 @@ namespace VIVE.OpenXR.Tracker #endif public class ViveXRTracker : OpenXRInteractionFeature { + #region Log const string LOG_TAG = "VIVE.OpenXR.Tracker.ViveXRTracker "; static StringBuilder m_sb = null; static StringBuilder sb { @@ -56,9 +58,9 @@ namespace VIVE.OpenXR.Tracker return m_sb; } } - static void DEBUG(StringBuilder msg) { Debug.Log(msg); } - static void WARNING(StringBuilder msg) { Debug.LogWarning(msg); } - static void ERROR(StringBuilder msg) { Debug.LogError(msg); } + static void DEBUG(StringBuilder msg) { Debug.LogFormat("{0} {1}", LOG_TAG, msg); } + static void ERROR(StringBuilder msg) { Debug.LogErrorFormat("{0} {1}", LOG_TAG, msg); } + #endregion private static ViveXRTracker m_Instance = null; @@ -70,7 +72,7 @@ namespace VIVE.OpenXR.Tracker /// /// The feature id string. This is used to give the feature a well known id for reference. /// - public const string featureId = "vive.wave.openxr.feature.xrtracker"; + public const string featureId = "vive.openxr.feature.xrtracker"; #region Tracker Product Name public const string kProductUltimateTracker = "VIVE Ultimate Tracker"; @@ -351,7 +353,7 @@ namespace VIVE.OpenXR.Tracker return m_sb; } } - void DEBUG(StringBuilder msg) { Debug.Log(msg); } + void DEBUG(StringBuilder msg) { Debug.LogFormat("{0} {1}", LOG_TAG, msg); } #endregion #region Interactions @@ -415,12 +417,6 @@ namespace VIVE.OpenXR.Tracker [Preserve, InputControl(aliases = new[] { "TrackpadClick", "trackpadClick" }, usage = "TrackpadButton")] public ButtonControl trackpadPress { get; private set; } - /// - /// A [ButtonControl](xref:UnityEngine.InputSystem.Controls.ButtonControl) that represents the OpenXR binding. - /// - [Preserve, InputControl(aliases = new[] { "TrackpadTouch" }, usage = "TrackpadTouch")] - public ButtonControl trackpadTouch { get; private set; } - /// /// A that represents the binding. /// @@ -451,11 +447,9 @@ namespace VIVE.OpenXR.Tracker gripPress = GetChildControl("gripPress"); triggerPress = GetChildControl("triggerPress"); trackpadPress = GetChildControl("trackpadPress"); - trackpadTouch = GetChildControl("trackpadTouch"); haptic = GetChildControl("haptic"); - sb.Clear().Append(LOG_TAG) - .Append("FinishSetup() device interfaceName: ").Append(description.interfaceName) + sb.Clear().Append("FinishSetup() device interfaceName: ").Append(description.interfaceName) .Append(", deviceClass: ").Append(description.deviceClass) .Append(", product: ").Append(description.product) .Append(", serial: ").Append(description.serial) @@ -471,14 +465,14 @@ namespace VIVE.OpenXR.Tracker /// we can simply call SetDeviceUsage(m_UltimateTrackerUsageMap[description.product]) /// to set assign the XrTrackerDevice with product name kProductUltimateTracker0 to the commonUsage kUltimateTrackerUsage0. InputSystem.SetDeviceUsage(this, m_UltimateTrackerUsageMap[description.product]); - sb.Clear().Append(LOG_TAG).Append("FinishSetup() usage: ").Append(m_UltimateTrackerUsageMap[description.product]); DEBUG(sb); + sb.Clear().Append("FinishSetup() usage: ").Append(m_UltimateTrackerUsageMap[description.product]); DEBUG(sb); #if DEBUG_CODE /// We cannot update the ActionMap outside the RegisterActionMapsWithRuntime method so ignore this code. if (inputActionIsTracked == null) { //string actionBindingIsTracked = "{LeftHand}/isTracked"; string actionBindingIsTracked = "<" + kLayoutName + ">{" + m_UltimateTrackerUsageMap[description.product] + "}/isTracked"; - sb.Clear().Append(LOG_TAG).Append("FinishSetup() ").Append(m_UltimateTrackerUsageMap[description.product]).Append(", action binding of IsTracked: ").Append(actionBindingIsTracked); + sb.Clear().Append("FinishSetup() ").Append(m_UltimateTrackerUsageMap[description.product]).Append(", action binding of IsTracked: ").Append(actionBindingIsTracked); DEBUG(sb); inputActionIsTracked = new InputAction( @@ -504,7 +498,7 @@ namespace VIVE.OpenXR.Tracker /// Updates the Usage (tracker role) when IsTracked becomes true. if (inputActionIsTracked.ReadValue() > 0 && !bRoleUpdated) { - sb.Clear().Append(LOG_TAG).Append("OnUpdate() Update the InputDevice with product: ").Append(description.product); DEBUG(sb); + sb.Clear().Append("OnUpdate() Update the InputDevice with product: ").Append(description.product); DEBUG(sb); if (m_UltimateTrackerUsageMap.ContainsKey(description.product)) { m_Instance.UpdateInputDeviceUltimateTracker(description.product); } @@ -532,7 +526,7 @@ namespace VIVE.OpenXR.Tracker m_XrInstanceCreated = true; m_XrInstance = xrInstance; m_Instance = this; - sb.Clear().Append(LOG_TAG).Append("OnInstanceCreate() ").Append(m_XrInstance); DEBUG(sb); + sb.Clear().Append("OnInstanceCreate() ").Append(m_XrInstance); DEBUG(sb); GetXrFunctionDelegates(m_XrInstance); return true; @@ -548,10 +542,12 @@ namespace VIVE.OpenXR.Tracker m_XrInstanceCreated = false; m_XrInstance = 0; } - sb.Clear().Append(LOG_TAG).Append("OnInstanceDestroy() ").Append(xrInstance); DEBUG(sb); + sb.Clear().Append("OnInstanceDestroy() ").Append(xrInstance); DEBUG(sb); } +#pragma warning disable private static bool m_XrSessionCreated = false; +#pragma warning enable private static XrSession m_XrSession = 0; /// /// Called when xrCreateSession is done. @@ -561,7 +557,7 @@ namespace VIVE.OpenXR.Tracker { m_XrSession = xrSession; m_XrSessionCreated = true; - sb.Clear().Append(LOG_TAG).Append("OnSessionCreate() ").Append(m_XrSession); DEBUG(sb); + sb.Clear().Append("OnSessionCreate() ").Append(m_XrSession); DEBUG(sb); } /// /// Called when xrDestroySession is done. @@ -569,7 +565,7 @@ namespace VIVE.OpenXR.Tracker /// The session ID to destroy. protected override void OnSessionDestroy(ulong xrSession) { - sb.Clear().Append(LOG_TAG).Append("OnSessionDestroy() ").Append(xrSession); DEBUG(sb); + sb.Clear().Append("OnSessionDestroy() ").Append(xrSession); DEBUG(sb); if (m_XrSession == xrSession) { m_XrSession = 0; @@ -585,12 +581,12 @@ namespace VIVE.OpenXR.Tracker /// protected override void RegisterDeviceLayout() { - sb.Clear().Append(LOG_TAG).Append("RegisterDeviceLayout() ").Append(kLayoutName).Append(", product: ").Append(@kProducts); DEBUG(sb); + sb.Clear().Append("RegisterDeviceLayout() ").Append(kLayoutName).Append(", product: ").Append(@kProducts); DEBUG(sb); InputSystem.RegisterLayout(typeof(XrTrackerDevice), - kLayoutName, - matches: new InputDeviceMatcher() - .WithInterface(XRUtilities.InterfaceMatchAnyVersion) - .WithProduct(@kProducts)); + kLayoutName, + matches: new InputDeviceMatcher() + .WithInterface(XRUtilities.InterfaceMatchAnyVersion) + .WithProduct(@kProducts)); } /// @@ -598,9 +594,29 @@ namespace VIVE.OpenXR.Tracker /// protected override void UnregisterDeviceLayout() { - sb.Clear().Append(LOG_TAG).Append("UnregisterDeviceLayout() ").Append(kLayoutName); DEBUG(sb); + sb.Clear().Append("UnregisterDeviceLayout() ").Append(kLayoutName); DEBUG(sb); InputSystem.RemoveLayout(kLayoutName); } + +#if UNITY_XR_OPENXR_1_9_1 + /// + /// Return interaction profile type. XrTrackerDevice profile is Device type. + /// + /// Interaction profile type. + protected override InteractionProfileType GetInteractionProfileType() + { + return typeof(XrTrackerDevice).IsSubclassOf(typeof(XRController)) ? InteractionProfileType.XRController : InteractionProfileType.Device; + } + + /// + /// Return device layer out string used for registering device XrTrackerDevice in InputSystem. + /// + /// Device layout string. + protected override string GetDeviceLayoutName() + { + return kLayoutName; + } +#endif #endregion #region OpenXR function delegates @@ -615,14 +631,14 @@ namespace VIVE.OpenXR.Tracker /// xrGetInstanceProcAddr if (xrGetInstanceProcAddr != null && xrGetInstanceProcAddr != IntPtr.Zero) { - sb.Clear().Append(LOG_TAG).Append("Get function pointer of xrGetInstanceProcAddr."); DEBUG(sb); + sb.Clear().Append("Get function pointer of xrGetInstanceProcAddr."); DEBUG(sb); XrGetInstanceProcAddr = Marshal.GetDelegateForFunctionPointer( xrGetInstanceProcAddr, typeof(OpenXRHelper.xrGetInstanceProcAddrDelegate)) as OpenXRHelper.xrGetInstanceProcAddrDelegate; } else { - sb.Clear().Append(LOG_TAG).Append("No function pointer of xrGetInstanceProcAddr"); ERROR(sb); + sb.Clear().Append("No function pointer of xrGetInstanceProcAddr"); ERROR(sb); return false; } @@ -633,20 +649,20 @@ namespace VIVE.OpenXR.Tracker { if (funcPtr != IntPtr.Zero) { - sb.Clear().Append(LOG_TAG).Append("Get function pointer of xrEnumerateInstanceExtensionProperties."); DEBUG(sb); + sb.Clear().Append("Get function pointer of xrEnumerateInstanceExtensionProperties."); DEBUG(sb); xrEnumerateInstanceExtensionProperties = Marshal.GetDelegateForFunctionPointer( funcPtr, typeof(OpenXRHelper.xrEnumerateInstanceExtensionPropertiesDelegate)) as OpenXRHelper.xrEnumerateInstanceExtensionPropertiesDelegate; } else { - sb.Clear().Append(LOG_TAG).Append("No function pointer of xrEnumerateInstanceExtensionProperties."); + sb.Clear().Append("No function pointer of xrEnumerateInstanceExtensionProperties."); ERROR(sb); } } else { - sb.Clear().Append(LOG_TAG).Append("No function pointer of xrEnumerateInstanceExtensionProperties"); + sb.Clear().Append("No function pointer of xrEnumerateInstanceExtensionProperties"); ERROR(sb); } @@ -655,20 +671,20 @@ namespace VIVE.OpenXR.Tracker { if (funcPtr != IntPtr.Zero) { - sb.Clear().Append(LOG_TAG).Append("Get function pointer of xrGetInputSourceLocalizedName."); DEBUG(sb); + sb.Clear().Append("Get function pointer of xrGetInputSourceLocalizedName."); DEBUG(sb); xrGetInputSourceLocalizedName = Marshal.GetDelegateForFunctionPointer( funcPtr, typeof(OpenXRHelper.xrGetInputSourceLocalizedNameDelegate)) as OpenXRHelper.xrGetInputSourceLocalizedNameDelegate; } else { - sb.Clear().Append(LOG_TAG).Append("No function pointer of xrGetInputSourceLocalizedName."); + sb.Clear().Append("No function pointer of xrGetInputSourceLocalizedName."); ERROR(sb); } } else { - sb.Clear().Append(LOG_TAG).Append("No function pointer of xrGetInputSourceLocalizedName"); + sb.Clear().Append("No function pointer of xrGetInputSourceLocalizedName"); ERROR(sb); } @@ -703,10 +719,6 @@ namespace VIVE.OpenXR.Tracker /// public const string trackpadClick = "/input/trackpad/click"; /// - /// Constant for a boolean interaction binding '.../input/trackpad/touch' OpenXR Input Binding. Used by input subsystem to bind actions to physical inputs. - /// - public const string trackpadTouch = "/input/trackpad/touch"; - /// /// Constant for a haptic interaction binding '.../output/haptic' OpenXR Input Binding. Used by input subsystem to bind actions to physical outputs. /// public const string haptic = "/output/haptic"; @@ -828,25 +840,6 @@ namespace VIVE.OpenXR.Tracker interactionProfileName = profile, } } - }, - // Trackpad Touch - new ActionConfig() - { - name = "trackpadTouch", - localizedName = "Trackpad Touch", - type = ActionType.Binary, - usages = new List() - { - "TrackpadTouch" - }, - bindings = new List() - { - new ActionBinding() - { - interactionPath = trackpadTouch, - interactionProfileName = profile, - } - } }, // Haptics new ActionConfig() @@ -980,25 +973,6 @@ namespace VIVE.OpenXR.Tracker interactionProfileName = profile, } } - }, - // Trackpad Touch - new ActionConfig() - { - name = "trackpadTouch", - localizedName = "Trackpad Touch", - type = ActionType.Binary, - usages = new List() - { - "TrackpadTouch" - }, - bindings = new List() - { - new ActionBinding() - { - interactionPath = trackpadTouch, - interactionProfileName = profile, - } - } }, // Haptics new ActionConfig() @@ -1132,25 +1106,6 @@ namespace VIVE.OpenXR.Tracker interactionProfileName = profile, } } - }, - // Trackpad Touch - new ActionConfig() - { - name = "trackpadTouch", - localizedName = "Trackpad Touch", - type = ActionType.Binary, - usages = new List() - { - "TrackpadTouch" - }, - bindings = new List() - { - new ActionBinding() - { - interactionPath = trackpadTouch, - interactionProfileName = profile, - } - } }, // Haptics new ActionConfig() @@ -1284,25 +1239,6 @@ namespace VIVE.OpenXR.Tracker interactionProfileName = profile, } } - }, - // Trackpad Touch - new ActionConfig() - { - name = "trackpadTouch", - localizedName = "Trackpad Touch", - type = ActionType.Binary, - usages = new List() - { - "TrackpadTouch" - }, - bindings = new List() - { - new ActionBinding() - { - interactionPath = trackpadTouch, - interactionProfileName = profile, - } - } }, // Haptics new ActionConfig() @@ -1437,21 +1373,136 @@ namespace VIVE.OpenXR.Tracker } } }, - // Trackpad Touch - new ActionConfig() + // Haptics + new ActionConfig() { - name = "trackpadTouch", - localizedName = "Trackpad Touch", - type = ActionType.Binary, + name = "haptic", + localizedName = "Haptic Output", + type = ActionType.Vibrate, + usages = new List() { "Haptic" }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = haptic, + interactionProfileName = profile, + } + } + } + } }, +#if UNITY_STANDALONE + { kProductUltimateTracker5, new List() + { + // Device Pose + new ActionConfig() + { + name = "devicePose", + localizedName = "Grip Pose", + type = ActionType.Pose, usages = new List() { - "TrackpadTouch" + "Device" }, bindings = new List() { new ActionBinding() { - interactionPath = trackpadTouch, + interactionPath = entityPose, + interactionProfileName = profile, + } + } + }, + // System + new ActionConfig() + { + name = "system", + localizedName = "System", + type = ActionType.Binary, + usages = new List() + { + "SystemButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = system, + interactionProfileName = profile, + }, + } + }, + // Menu + new ActionConfig() + { + name = "menu", + localizedName = "Menu", + type = ActionType.Binary, + usages = new List() + { + "MenuButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = menu, + interactionProfileName = profile, + }, + } + }, + // Grip Press + new ActionConfig() + { + name = "gripPress", + localizedName = "Grip Press", + type = ActionType.Binary, + usages = new List() + { + "GripButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = gripPress, + interactionProfileName = profile, + } + } + }, + // Trigger Press + new ActionConfig() + { + name = "triggerPress", + localizedName = "Trigger Press", + type = ActionType.Binary, + usages = new List() + { + "TriggerButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = triggerClick, + interactionProfileName = profile, + } + } + }, + // Trackpad Press + new ActionConfig() + { + name = "trackpadPress", + localizedName = "Trackpad Press", + type = ActionType.Binary, + usages = new List() + { + "TrackpadButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = trackpadClick, interactionProfileName = profile, } } @@ -1473,9 +1524,1872 @@ namespace VIVE.OpenXR.Tracker } } } }, + { kProductUltimateTracker6, new List() + { + // Device Pose + new ActionConfig() + { + name = "devicePose", + localizedName = "Grip Pose", + type = ActionType.Pose, + usages = new List() + { + "Device" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = entityPose, + interactionProfileName = profile, + } + } + }, + // System + new ActionConfig() + { + name = "system", + localizedName = "System", + type = ActionType.Binary, + usages = new List() + { + "SystemButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = system, + interactionProfileName = profile, + }, + } + }, + // Menu + new ActionConfig() + { + name = "menu", + localizedName = "Menu", + type = ActionType.Binary, + usages = new List() + { + "MenuButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = menu, + interactionProfileName = profile, + }, + } + }, + // Grip Press + new ActionConfig() + { + name = "gripPress", + localizedName = "Grip Press", + type = ActionType.Binary, + usages = new List() + { + "GripButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = gripPress, + interactionProfileName = profile, + } + } + }, + // Trigger Press + new ActionConfig() + { + name = "triggerPress", + localizedName = "Trigger Press", + type = ActionType.Binary, + usages = new List() + { + "TriggerButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = triggerClick, + interactionProfileName = profile, + } + } + }, + // Trackpad Press + new ActionConfig() + { + name = "trackpadPress", + localizedName = "Trackpad Press", + type = ActionType.Binary, + usages = new List() + { + "TrackpadButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = trackpadClick, + interactionProfileName = profile, + } + } + }, + // Haptics + new ActionConfig() + { + name = "haptic", + localizedName = "Haptic Output", + type = ActionType.Vibrate, + usages = new List() { "Haptic" }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = haptic, + interactionProfileName = profile, + } + } + } + } }, + { kProductUltimateTracker7, new List() + { + // Device Pose + new ActionConfig() + { + name = "devicePose", + localizedName = "Grip Pose", + type = ActionType.Pose, + usages = new List() + { + "Device" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = entityPose, + interactionProfileName = profile, + } + } + }, + // System + new ActionConfig() + { + name = "system", + localizedName = "System", + type = ActionType.Binary, + usages = new List() + { + "SystemButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = system, + interactionProfileName = profile, + }, + } + }, + // Menu + new ActionConfig() + { + name = "menu", + localizedName = "Menu", + type = ActionType.Binary, + usages = new List() + { + "MenuButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = menu, + interactionProfileName = profile, + }, + } + }, + // Grip Press + new ActionConfig() + { + name = "gripPress", + localizedName = "Grip Press", + type = ActionType.Binary, + usages = new List() + { + "GripButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = gripPress, + interactionProfileName = profile, + } + } + }, + // Trigger Press + new ActionConfig() + { + name = "triggerPress", + localizedName = "Trigger Press", + type = ActionType.Binary, + usages = new List() + { + "TriggerButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = triggerClick, + interactionProfileName = profile, + } + } + }, + // Trackpad Press + new ActionConfig() + { + name = "trackpadPress", + localizedName = "Trackpad Press", + type = ActionType.Binary, + usages = new List() + { + "TrackpadButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = trackpadClick, + interactionProfileName = profile, + } + } + }, + // Haptics + new ActionConfig() + { + name = "haptic", + localizedName = "Haptic Output", + type = ActionType.Vibrate, + usages = new List() { "Haptic" }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = haptic, + interactionProfileName = profile, + } + } + } + } }, + { kProductUltimateTracker8, new List() + { + // Device Pose + new ActionConfig() + { + name = "devicePose", + localizedName = "Grip Pose", + type = ActionType.Pose, + usages = new List() + { + "Device" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = entityPose, + interactionProfileName = profile, + } + } + }, + // System + new ActionConfig() + { + name = "system", + localizedName = "System", + type = ActionType.Binary, + usages = new List() + { + "SystemButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = system, + interactionProfileName = profile, + }, + } + }, + // Menu + new ActionConfig() + { + name = "menu", + localizedName = "Menu", + type = ActionType.Binary, + usages = new List() + { + "MenuButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = menu, + interactionProfileName = profile, + }, + } + }, + // Grip Press + new ActionConfig() + { + name = "gripPress", + localizedName = "Grip Press", + type = ActionType.Binary, + usages = new List() + { + "GripButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = gripPress, + interactionProfileName = profile, + } + } + }, + // Trigger Press + new ActionConfig() + { + name = "triggerPress", + localizedName = "Trigger Press", + type = ActionType.Binary, + usages = new List() + { + "TriggerButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = triggerClick, + interactionProfileName = profile, + } + } + }, + // Trackpad Press + new ActionConfig() + { + name = "trackpadPress", + localizedName = "Trackpad Press", + type = ActionType.Binary, + usages = new List() + { + "TrackpadButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = trackpadClick, + interactionProfileName = profile, + } + } + }, + // Haptics + new ActionConfig() + { + name = "haptic", + localizedName = "Haptic Output", + type = ActionType.Vibrate, + usages = new List() { "Haptic" }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = haptic, + interactionProfileName = profile, + } + } + } + } }, + { kProductUltimateTracker9, new List() + { + // Device Pose + new ActionConfig() + { + name = "devicePose", + localizedName = "Grip Pose", + type = ActionType.Pose, + usages = new List() + { + "Device" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = entityPose, + interactionProfileName = profile, + } + } + }, + // System + new ActionConfig() + { + name = "system", + localizedName = "System", + type = ActionType.Binary, + usages = new List() + { + "SystemButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = system, + interactionProfileName = profile, + }, + } + }, + // Menu + new ActionConfig() + { + name = "menu", + localizedName = "Menu", + type = ActionType.Binary, + usages = new List() + { + "MenuButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = menu, + interactionProfileName = profile, + }, + } + }, + // Grip Press + new ActionConfig() + { + name = "gripPress", + localizedName = "Grip Press", + type = ActionType.Binary, + usages = new List() + { + "GripButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = gripPress, + interactionProfileName = profile, + } + } + }, + // Trigger Press + new ActionConfig() + { + name = "triggerPress", + localizedName = "Trigger Press", + type = ActionType.Binary, + usages = new List() + { + "TriggerButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = triggerClick, + interactionProfileName = profile, + } + } + }, + // Trackpad Press + new ActionConfig() + { + name = "trackpadPress", + localizedName = "Trackpad Press", + type = ActionType.Binary, + usages = new List() + { + "TrackpadButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = trackpadClick, + interactionProfileName = profile, + } + } + }, + // Haptics + new ActionConfig() + { + name = "haptic", + localizedName = "Haptic Output", + type = ActionType.Vibrate, + usages = new List() { "Haptic" }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = haptic, + interactionProfileName = profile, + } + } + } + } }, + { kProductUltimateTracker10, new List() + { + // Device Pose + new ActionConfig() + { + name = "devicePose", + localizedName = "Grip Pose", + type = ActionType.Pose, + usages = new List() + { + "Device" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = entityPose, + interactionProfileName = profile, + } + } + }, + // System + new ActionConfig() + { + name = "system", + localizedName = "System", + type = ActionType.Binary, + usages = new List() + { + "SystemButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = system, + interactionProfileName = profile, + }, + } + }, + // Menu + new ActionConfig() + { + name = "menu", + localizedName = "Menu", + type = ActionType.Binary, + usages = new List() + { + "MenuButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = menu, + interactionProfileName = profile, + }, + } + }, + // Grip Press + new ActionConfig() + { + name = "gripPress", + localizedName = "Grip Press", + type = ActionType.Binary, + usages = new List() + { + "GripButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = gripPress, + interactionProfileName = profile, + } + } + }, + // Trigger Press + new ActionConfig() + { + name = "triggerPress", + localizedName = "Trigger Press", + type = ActionType.Binary, + usages = new List() + { + "TriggerButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = triggerClick, + interactionProfileName = profile, + } + } + }, + // Trackpad Press + new ActionConfig() + { + name = "trackpadPress", + localizedName = "Trackpad Press", + type = ActionType.Binary, + usages = new List() + { + "TrackpadButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = trackpadClick, + interactionProfileName = profile, + } + } + }, + // Haptics + new ActionConfig() + { + name = "haptic", + localizedName = "Haptic Output", + type = ActionType.Vibrate, + usages = new List() { "Haptic" }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = haptic, + interactionProfileName = profile, + } + } + } + } }, + { kProductUltimateTracker11, new List() + { + // Device Pose + new ActionConfig() + { + name = "devicePose", + localizedName = "Grip Pose", + type = ActionType.Pose, + usages = new List() + { + "Device" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = entityPose, + interactionProfileName = profile, + } + } + }, + // System + new ActionConfig() + { + name = "system", + localizedName = "System", + type = ActionType.Binary, + usages = new List() + { + "SystemButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = system, + interactionProfileName = profile, + }, + } + }, + // Menu + new ActionConfig() + { + name = "menu", + localizedName = "Menu", + type = ActionType.Binary, + usages = new List() + { + "MenuButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = menu, + interactionProfileName = profile, + }, + } + }, + // Grip Press + new ActionConfig() + { + name = "gripPress", + localizedName = "Grip Press", + type = ActionType.Binary, + usages = new List() + { + "GripButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = gripPress, + interactionProfileName = profile, + } + } + }, + // Trigger Press + new ActionConfig() + { + name = "triggerPress", + localizedName = "Trigger Press", + type = ActionType.Binary, + usages = new List() + { + "TriggerButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = triggerClick, + interactionProfileName = profile, + } + } + }, + // Trackpad Press + new ActionConfig() + { + name = "trackpadPress", + localizedName = "Trackpad Press", + type = ActionType.Binary, + usages = new List() + { + "TrackpadButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = trackpadClick, + interactionProfileName = profile, + } + } + }, + // Haptics + new ActionConfig() + { + name = "haptic", + localizedName = "Haptic Output", + type = ActionType.Vibrate, + usages = new List() { "Haptic" }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = haptic, + interactionProfileName = profile, + } + } + } + } }, + { kProductUltimateTracker12, new List() + { + // Device Pose + new ActionConfig() + { + name = "devicePose", + localizedName = "Grip Pose", + type = ActionType.Pose, + usages = new List() + { + "Device" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = entityPose, + interactionProfileName = profile, + } + } + }, + // System + new ActionConfig() + { + name = "system", + localizedName = "System", + type = ActionType.Binary, + usages = new List() + { + "SystemButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = system, + interactionProfileName = profile, + }, + } + }, + // Menu + new ActionConfig() + { + name = "menu", + localizedName = "Menu", + type = ActionType.Binary, + usages = new List() + { + "MenuButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = menu, + interactionProfileName = profile, + }, + } + }, + // Grip Press + new ActionConfig() + { + name = "gripPress", + localizedName = "Grip Press", + type = ActionType.Binary, + usages = new List() + { + "GripButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = gripPress, + interactionProfileName = profile, + } + } + }, + // Trigger Press + new ActionConfig() + { + name = "triggerPress", + localizedName = "Trigger Press", + type = ActionType.Binary, + usages = new List() + { + "TriggerButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = triggerClick, + interactionProfileName = profile, + } + } + }, + // Trackpad Press + new ActionConfig() + { + name = "trackpadPress", + localizedName = "Trackpad Press", + type = ActionType.Binary, + usages = new List() + { + "TrackpadButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = trackpadClick, + interactionProfileName = profile, + } + } + }, + // Haptics + new ActionConfig() + { + name = "haptic", + localizedName = "Haptic Output", + type = ActionType.Vibrate, + usages = new List() { "Haptic" }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = haptic, + interactionProfileName = profile, + } + } + } + } }, + { kProductUltimateTracker13, new List() + { + // Device Pose + new ActionConfig() + { + name = "devicePose", + localizedName = "Grip Pose", + type = ActionType.Pose, + usages = new List() + { + "Device" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = entityPose, + interactionProfileName = profile, + } + } + }, + // System + new ActionConfig() + { + name = "system", + localizedName = "System", + type = ActionType.Binary, + usages = new List() + { + "SystemButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = system, + interactionProfileName = profile, + }, + } + }, + // Menu + new ActionConfig() + { + name = "menu", + localizedName = "Menu", + type = ActionType.Binary, + usages = new List() + { + "MenuButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = menu, + interactionProfileName = profile, + }, + } + }, + // Grip Press + new ActionConfig() + { + name = "gripPress", + localizedName = "Grip Press", + type = ActionType.Binary, + usages = new List() + { + "GripButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = gripPress, + interactionProfileName = profile, + } + } + }, + // Trigger Press + new ActionConfig() + { + name = "triggerPress", + localizedName = "Trigger Press", + type = ActionType.Binary, + usages = new List() + { + "TriggerButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = triggerClick, + interactionProfileName = profile, + } + } + }, + // Trackpad Press + new ActionConfig() + { + name = "trackpadPress", + localizedName = "Trackpad Press", + type = ActionType.Binary, + usages = new List() + { + "TrackpadButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = trackpadClick, + interactionProfileName = profile, + } + } + }, + // Haptics + new ActionConfig() + { + name = "haptic", + localizedName = "Haptic Output", + type = ActionType.Vibrate, + usages = new List() { "Haptic" }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = haptic, + interactionProfileName = profile, + } + } + } + } }, + { kProductUltimateTracker14, new List() + { + // Device Pose + new ActionConfig() + { + name = "devicePose", + localizedName = "Grip Pose", + type = ActionType.Pose, + usages = new List() + { + "Device" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = entityPose, + interactionProfileName = profile, + } + } + }, + // System + new ActionConfig() + { + name = "system", + localizedName = "System", + type = ActionType.Binary, + usages = new List() + { + "SystemButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = system, + interactionProfileName = profile, + }, + } + }, + // Menu + new ActionConfig() + { + name = "menu", + localizedName = "Menu", + type = ActionType.Binary, + usages = new List() + { + "MenuButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = menu, + interactionProfileName = profile, + }, + } + }, + // Grip Press + new ActionConfig() + { + name = "gripPress", + localizedName = "Grip Press", + type = ActionType.Binary, + usages = new List() + { + "GripButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = gripPress, + interactionProfileName = profile, + } + } + }, + // Trigger Press + new ActionConfig() + { + name = "triggerPress", + localizedName = "Trigger Press", + type = ActionType.Binary, + usages = new List() + { + "TriggerButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = triggerClick, + interactionProfileName = profile, + } + } + }, + // Trackpad Press + new ActionConfig() + { + name = "trackpadPress", + localizedName = "Trackpad Press", + type = ActionType.Binary, + usages = new List() + { + "TrackpadButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = trackpadClick, + interactionProfileName = profile, + } + } + }, + // Haptics + new ActionConfig() + { + name = "haptic", + localizedName = "Haptic Output", + type = ActionType.Vibrate, + usages = new List() { "Haptic" }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = haptic, + interactionProfileName = profile, + } + } + } + } }, + { kProductUltimateTracker15, new List() + { + // Device Pose + new ActionConfig() + { + name = "devicePose", + localizedName = "Grip Pose", + type = ActionType.Pose, + usages = new List() + { + "Device" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = entityPose, + interactionProfileName = profile, + } + } + }, + // System + new ActionConfig() + { + name = "system", + localizedName = "System", + type = ActionType.Binary, + usages = new List() + { + "SystemButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = system, + interactionProfileName = profile, + }, + } + }, + // Menu + new ActionConfig() + { + name = "menu", + localizedName = "Menu", + type = ActionType.Binary, + usages = new List() + { + "MenuButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = menu, + interactionProfileName = profile, + }, + } + }, + // Grip Press + new ActionConfig() + { + name = "gripPress", + localizedName = "Grip Press", + type = ActionType.Binary, + usages = new List() + { + "GripButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = gripPress, + interactionProfileName = profile, + } + } + }, + // Trigger Press + new ActionConfig() + { + name = "triggerPress", + localizedName = "Trigger Press", + type = ActionType.Binary, + usages = new List() + { + "TriggerButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = triggerClick, + interactionProfileName = profile, + } + } + }, + // Trackpad Press + new ActionConfig() + { + name = "trackpadPress", + localizedName = "Trackpad Press", + type = ActionType.Binary, + usages = new List() + { + "TrackpadButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = trackpadClick, + interactionProfileName = profile, + } + } + }, + // Haptics + new ActionConfig() + { + name = "haptic", + localizedName = "Haptic Output", + type = ActionType.Vibrate, + usages = new List() { "Haptic" }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = haptic, + interactionProfileName = profile, + } + } + } + } }, + { kProductUltimateTracker16, new List() + { + // Device Pose + new ActionConfig() + { + name = "devicePose", + localizedName = "Grip Pose", + type = ActionType.Pose, + usages = new List() + { + "Device" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = entityPose, + interactionProfileName = profile, + } + } + }, + // System + new ActionConfig() + { + name = "system", + localizedName = "System", + type = ActionType.Binary, + usages = new List() + { + "SystemButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = system, + interactionProfileName = profile, + }, + } + }, + // Menu + new ActionConfig() + { + name = "menu", + localizedName = "Menu", + type = ActionType.Binary, + usages = new List() + { + "MenuButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = menu, + interactionProfileName = profile, + }, + } + }, + // Grip Press + new ActionConfig() + { + name = "gripPress", + localizedName = "Grip Press", + type = ActionType.Binary, + usages = new List() + { + "GripButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = gripPress, + interactionProfileName = profile, + } + } + }, + // Trigger Press + new ActionConfig() + { + name = "triggerPress", + localizedName = "Trigger Press", + type = ActionType.Binary, + usages = new List() + { + "TriggerButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = triggerClick, + interactionProfileName = profile, + } + } + }, + // Trackpad Press + new ActionConfig() + { + name = "trackpadPress", + localizedName = "Trackpad Press", + type = ActionType.Binary, + usages = new List() + { + "TrackpadButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = trackpadClick, + interactionProfileName = profile, + } + } + }, + // Haptics + new ActionConfig() + { + name = "haptic", + localizedName = "Haptic Output", + type = ActionType.Vibrate, + usages = new List() { "Haptic" }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = haptic, + interactionProfileName = profile, + } + } + } + } }, + { kProductUltimateTracker17, new List() + { + // Device Pose + new ActionConfig() + { + name = "devicePose", + localizedName = "Grip Pose", + type = ActionType.Pose, + usages = new List() + { + "Device" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = entityPose, + interactionProfileName = profile, + } + } + }, + // System + new ActionConfig() + { + name = "system", + localizedName = "System", + type = ActionType.Binary, + usages = new List() + { + "SystemButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = system, + interactionProfileName = profile, + }, + } + }, + // Menu + new ActionConfig() + { + name = "menu", + localizedName = "Menu", + type = ActionType.Binary, + usages = new List() + { + "MenuButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = menu, + interactionProfileName = profile, + }, + } + }, + // Grip Press + new ActionConfig() + { + name = "gripPress", + localizedName = "Grip Press", + type = ActionType.Binary, + usages = new List() + { + "GripButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = gripPress, + interactionProfileName = profile, + } + } + }, + // Trigger Press + new ActionConfig() + { + name = "triggerPress", + localizedName = "Trigger Press", + type = ActionType.Binary, + usages = new List() + { + "TriggerButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = triggerClick, + interactionProfileName = profile, + } + } + }, + // Trackpad Press + new ActionConfig() + { + name = "trackpadPress", + localizedName = "Trackpad Press", + type = ActionType.Binary, + usages = new List() + { + "TrackpadButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = trackpadClick, + interactionProfileName = profile, + } + } + }, + // Haptics + new ActionConfig() + { + name = "haptic", + localizedName = "Haptic Output", + type = ActionType.Vibrate, + usages = new List() { "Haptic" }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = haptic, + interactionProfileName = profile, + } + } + } + } }, + { kProductUltimateTracker18, new List() + { + // Device Pose + new ActionConfig() + { + name = "devicePose", + localizedName = "Grip Pose", + type = ActionType.Pose, + usages = new List() + { + "Device" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = entityPose, + interactionProfileName = profile, + } + } + }, + // System + new ActionConfig() + { + name = "system", + localizedName = "System", + type = ActionType.Binary, + usages = new List() + { + "SystemButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = system, + interactionProfileName = profile, + }, + } + }, + // Menu + new ActionConfig() + { + name = "menu", + localizedName = "Menu", + type = ActionType.Binary, + usages = new List() + { + "MenuButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = menu, + interactionProfileName = profile, + }, + } + }, + // Grip Press + new ActionConfig() + { + name = "gripPress", + localizedName = "Grip Press", + type = ActionType.Binary, + usages = new List() + { + "GripButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = gripPress, + interactionProfileName = profile, + } + } + }, + // Trigger Press + new ActionConfig() + { + name = "triggerPress", + localizedName = "Trigger Press", + type = ActionType.Binary, + usages = new List() + { + "TriggerButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = triggerClick, + interactionProfileName = profile, + } + } + }, + // Trackpad Press + new ActionConfig() + { + name = "trackpadPress", + localizedName = "Trackpad Press", + type = ActionType.Binary, + usages = new List() + { + "TrackpadButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = trackpadClick, + interactionProfileName = profile, + } + } + }, + // Haptics + new ActionConfig() + { + name = "haptic", + localizedName = "Haptic Output", + type = ActionType.Vibrate, + usages = new List() { "Haptic" }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = haptic, + interactionProfileName = profile, + } + } + } + } }, + { kProductUltimateTracker19, new List() + { + // Device Pose + new ActionConfig() + { + name = "devicePose", + localizedName = "Grip Pose", + type = ActionType.Pose, + usages = new List() + { + "Device" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = entityPose, + interactionProfileName = profile, + } + } + }, + // System + new ActionConfig() + { + name = "system", + localizedName = "System", + type = ActionType.Binary, + usages = new List() + { + "SystemButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = system, + interactionProfileName = profile, + }, + } + }, + // Menu + new ActionConfig() + { + name = "menu", + localizedName = "Menu", + type = ActionType.Binary, + usages = new List() + { + "MenuButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = menu, + interactionProfileName = profile, + }, + } + }, + // Grip Press + new ActionConfig() + { + name = "gripPress", + localizedName = "Grip Press", + type = ActionType.Binary, + usages = new List() + { + "GripButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = gripPress, + interactionProfileName = profile, + } + } + }, + // Trigger Press + new ActionConfig() + { + name = "triggerPress", + localizedName = "Trigger Press", + type = ActionType.Binary, + usages = new List() + { + "TriggerButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = triggerClick, + interactionProfileName = profile, + } + } + }, + // Trackpad Press + new ActionConfig() + { + name = "trackpadPress", + localizedName = "Trackpad Press", + type = ActionType.Binary, + usages = new List() + { + "TrackpadButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = trackpadClick, + interactionProfileName = profile, + } + } + }, + // Haptics + new ActionConfig() + { + name = "haptic", + localizedName = "Haptic Output", + type = ActionType.Vibrate, + usages = new List() { "Haptic" }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = haptic, + interactionProfileName = profile, + } + } + } + } }, +#endif }; private void UpdateInputActionPath(List in_actions, string in_name, string in_path) - { + { if (in_actions == null || in_actions.Count <= 0) { return; } string func = "UpdateInputActionPath() "; @@ -1485,17 +3399,17 @@ namespace VIVE.OpenXR.Tracker if (in_actions[i].name.Equals(in_name)) { for (int j = 0; j < in_actions[i].bindings.Count; j++) - { - sb.Clear().Append(LOG_TAG).Append(func).Append("Replace action path from ").Append(in_actions[i].bindings[j].interactionPath).Append(" to ").Append(in_path); DEBUG(sb); + { + sb.Clear().Append(func).Append("Replace action path from ").Append(in_actions[i].bindings[j].interactionPath).Append(" to ").Append(in_path); DEBUG(sb); in_actions[i].bindings[j].interactionPath = in_path; - } + } } } } private void RegisterActionMap(string in_name, string in_product, string in_sn, string in_path, List in_action) { - sb.Clear().Append(LOG_TAG).Append("RegisterActionMap() Added ActionMapConfig of ").Append(in_path) + sb.Clear().Append("RegisterActionMap() Added ActionMapConfig of ").Append(in_path) .Append(", localizedName = ").Append(in_product) .Append(" { name = ").Append(in_name) .Append(", desiredInteractionProfile = ").Append(profile) @@ -1529,14 +3443,14 @@ namespace VIVE.OpenXR.Tracker { if (OpenXRHelper.IsExtensionSupported(xrEnumerateInstanceExtensionProperties, kOpenxrExtensionString) != XrResult.XR_SUCCESS) { - sb.Clear().Append(LOG_TAG).Append("RegisterActionMapsWithRuntime() ").Append(kOpenxrExtensionString).Append(" is NOT supported."); ERROR(sb); + sb.Clear().Append("RegisterActionMapsWithRuntime() ").Append(kOpenxrExtensionString).Append(" is NOT supported."); ERROR(sb); return; } /// Updates m_UltimateTrackerPathMap. if (!EnumeratePath()) { - sb.Clear().Append(LOG_TAG).Append("RegisterActionMapsWithRuntime() EnumeratePath failed."); + sb.Clear().Append("RegisterActionMapsWithRuntime() EnumeratePath failed."); ERROR(sb); } @@ -1564,7 +3478,7 @@ namespace VIVE.OpenXR.Tracker for (int i = 0; i < trackerPaths.Length; i++) { string userPath = PathToString(trackerPaths[i]); - sb.Clear().Append(LOG_TAG).Append(func).Append("trackerPaths[").Append(i).Append("] ").Append(userPath); DEBUG(sb); + sb.Clear().Append(func).Append("trackerPaths[").Append(i).Append("] ").Append(userPath); DEBUG(sb); // Ultimate Tracker if (userPath.Contains("ultimate", StringComparison.OrdinalIgnoreCase) && ultimate_tracker_index < s_UltimateTrackerProduct.Length) @@ -1572,10 +3486,10 @@ namespace VIVE.OpenXR.Tracker string product = s_UltimateTrackerProduct[ultimate_tracker_index]; m_UltimateTrackerPathMap[product] = userPath; - sb.Clear().Append(LOG_TAG).Append(func).Append("Updates ").Append(product).Append(" path to ").Append(m_UltimateTrackerPathMap[product]); DEBUG(sb); + sb.Clear().Append(func).Append("Updates ").Append(product).Append(" path to ").Append(m_UltimateTrackerPathMap[product]); DEBUG(sb); m_UltimateTrackerSerialMap[product] = ConvertUserPathToSerialNumber(userPath); - sb.Clear().Append(LOG_TAG).Append(func).Append("Updates ").Append(product).Append(" serial number to ").Append(m_UltimateTrackerSerialMap[product]); DEBUG(sb); + sb.Clear().Append(func).Append("Updates ").Append(product).Append(" serial number to ").Append(m_UltimateTrackerSerialMap[product]); DEBUG(sb); ultimate_tracker_index++; @@ -1586,66 +3500,60 @@ namespace VIVE.OpenXR.Tracker { string fullPath = PathToString(inputPaths[p]); string actionPath = fullPath.Replace(userPath, ""); - sb.Clear().Append(LOG_TAG).Append(func).Append(userPath).Append(" inputPaths[").Append(p).Append("] ").Append(actionPath); DEBUG(sb); + sb.Clear().Append(func).Append(userPath).Append(" inputPaths[").Append(p).Append("] ").Append(actionPath); DEBUG(sb); // devicePose: "/input/entity_htc/pose" if (actionPath.Contains("pose")) { - sb.Clear().Append(LOG_TAG).Append(func).Append("Updates ").Append(product).Append(" action path of devicePose to ").Append(actionPath); DEBUG(sb); + sb.Clear().Append(func).Append("Updates ").Append(product).Append(" action path of devicePose to ").Append(actionPath); DEBUG(sb); UpdateInputActionPath(m_UltimateTrackerActionConfig[product], "devicePose", actionPath); } // system: "/input/system/click" if (actionPath.Contains("system") && actionPath.Contains("click")) - { - sb.Clear().Append(LOG_TAG).Append(func).Append("Updates ").Append(product).Append(" action path of system to ").Append(actionPath); DEBUG(sb); + { + sb.Clear().Append(func).Append("Updates ").Append(product).Append(" action path of system to ").Append(actionPath); DEBUG(sb); UpdateInputActionPath(m_UltimateTrackerActionConfig[product], "system", actionPath); - } + } // menu: "/input/menu/click" if (actionPath.Contains("menu") && actionPath.Contains("click")) { - sb.Clear().Append(LOG_TAG).Append(func).Append("Updates ").Append(product).Append(" action path of menu to ").Append(actionPath); DEBUG(sb); + sb.Clear().Append(func).Append("Updates ").Append(product).Append(" action path of menu to ").Append(actionPath); DEBUG(sb); UpdateInputActionPath(m_UltimateTrackerActionConfig[product], "menu", actionPath); } // gripPress: "/input/squeeze/click" if (actionPath.Contains("squeeze") && actionPath.Contains("click")) { - sb.Clear().Append(LOG_TAG).Append(func).Append("Updates ").Append(product).Append(" action path of gripPress to ").Append(actionPath); DEBUG(sb); + sb.Clear().Append(func).Append("Updates ").Append(product).Append(" action path of gripPress to ").Append(actionPath); DEBUG(sb); UpdateInputActionPath(m_UltimateTrackerActionConfig[product], "gripPress", actionPath); } // triggerPress: "/input/trigger/click" if (actionPath.Contains("trigger") && actionPath.Contains("click")) { - sb.Clear().Append(LOG_TAG).Append(func).Append("Updates ").Append(product).Append(" action path of triggerPress to ").Append(actionPath); DEBUG(sb); + sb.Clear().Append(func).Append("Updates ").Append(product).Append(" action path of triggerPress to ").Append(actionPath); DEBUG(sb); UpdateInputActionPath(m_UltimateTrackerActionConfig[product], "triggerPress", actionPath); } // trackpadPress: "/input/trackpad/click" if (actionPath.Contains("trackpad") && actionPath.Contains("click")) { - sb.Clear().Append(LOG_TAG).Append(func).Append("Updates ").Append(product).Append(" action path of trackpadPress to ").Append(actionPath); DEBUG(sb); + sb.Clear().Append(func).Append("Updates ").Append(product).Append(" action path of trackpadPress to ").Append(actionPath); DEBUG(sb); UpdateInputActionPath(m_UltimateTrackerActionConfig[product], "trackpadPress", actionPath); } - // trackpadTouch: "/input/trackpad/touch" - if (actionPath.Contains("trackpad") && actionPath.Contains("touch")) - { - sb.Clear().Append(LOG_TAG).Append(func).Append("Updates ").Append(product).Append(" action path of trackpadTouch to ").Append(actionPath); DEBUG(sb); - UpdateInputActionPath(m_UltimateTrackerActionConfig[product], "trackpadTouch", actionPath); - } // haptic: "/output/haptic" if (actionPath.Contains("haptic")) { - sb.Clear().Append(LOG_TAG).Append(func).Append("Updates ").Append(product).Append(" action path of haptic to ").Append(actionPath); DEBUG(sb); + sb.Clear().Append(func).Append("Updates ").Append(product).Append(" action path of haptic to ").Append(actionPath); DEBUG(sb); UpdateInputActionPath(m_UltimateTrackerActionConfig[product], "haptic", actionPath); } } } } } - } - else - { - sb.Clear().Append(LOG_TAG).Append(func).Append("GetUserPaths(").Append(profile).Append(") failed."); ERROR(sb); + } + else + { + sb.Clear().Append(func).Append("GetUserPaths(").Append(profile).Append(") failed."); ERROR(sb); return false; - } + } return true; @@ -1674,70 +3582,6 @@ namespace VIVE.OpenXR.Tracker return result; } - [Obsolete("This enumeration is deprecated. Please use XrInputSourceLocalizedNameFlags instead.")] - public enum InputSourceType : UInt64 - { - SerialNumber = XrInputSourceLocalizedNameFlags.XR_INPUT_SOURCE_LOCALIZED_NAME_SERIAL_NUMBER_BIT_HTC, - TrackerRole = XrInputSourceLocalizedNameFlags.XR_INPUT_SOURCE_LOCALIZED_NAME_USER_PATH_BIT, - } - [Obsolete("This function is deprecated. Please use OpenXRHelper.GetInputSourceName instead.")] - public static XrResult GetInputSourceName(XrPath path, InputSourceType sourceType, out string sourceName) - { - string func = "GetInputSourceName() "; - - sourceName = ""; - if (!m_XrSessionCreated || xrGetInputSourceLocalizedName == null) { return XrResult.XR_ERROR_VALIDATION_FAILURE; } - - string userPath = PathToString(path); - sb.Clear().Append(LOG_TAG).Append(func) - .Append("userPath: ").Append(userPath).Append(", flag: ").Append((UInt64)sourceType); DEBUG(sb); - - XrInputSourceLocalizedNameGetInfo nameInfo = new XrInputSourceLocalizedNameGetInfo( - XrStructureType.XR_TYPE_INPUT_SOURCE_LOCALIZED_NAME_GET_INFO, - IntPtr.Zero, path, (XrInputSourceLocalizedNameFlags)sourceType); - - UInt32 nameSizeIn = 0; - UInt32 nameSizeOut = 0; - char[] buffer = new char[0]; - - XrResult result = xrGetInputSourceLocalizedName(m_XrSession, ref nameInfo, nameSizeIn, ref nameSizeOut, buffer); - sb.Clear().Append(LOG_TAG).Append(func) - .Append("1.xrGetInputSourceLocalizedName(").Append(userPath).Append(") result: ").Append(result) - .Append(", flag: ").Append((UInt64)nameInfo.whichComponents) - .Append(", bufferCapacityInput: ").Append(nameSizeIn) - .Append(", bufferCountOutput: ").Append(nameSizeOut); - DEBUG(sb); - if (result == XrResult.XR_SUCCESS) - { - if (nameSizeOut < 1) - { - sb.Clear().Append(LOG_TAG).Append(func) - .Append("xrGetInputSourceLocalizedName(").Append(userPath).Append(")") - .Append(", flag: ").Append((UInt64)sourceType) - .Append("bufferCountOutput size is invalid!"); - ERROR(sb); - return XrResult.XR_ERROR_VALIDATION_FAILURE; - } - - nameSizeIn = nameSizeOut; - buffer = new char[nameSizeIn]; - - result = xrGetInputSourceLocalizedName(m_XrSession, ref nameInfo, nameSizeIn, ref nameSizeOut, buffer); - sb.Clear().Append(LOG_TAG).Append(func) - .Append("2.xrGetInputSourceLocalizedName(").Append(userPath).Append(") result: ").Append(result) - .Append(", flag: ").Append((UInt64)nameInfo.whichComponents) - .Append(", bufferCapacityInput: ").Append(nameSizeIn) - .Append(", bufferCountOutput: ").Append(nameSizeOut); - DEBUG(sb); - if (result == XrResult.XR_SUCCESS) - { - sourceName = new string(buffer).TrimEnd('\0'); - } - } - - return result; - } - #if DEBUG_CODE XrInputSourceLocalizedNameGetInfo nameInfo; private bool updateSerialNumber = true, updateUsage = false; @@ -1745,7 +3589,7 @@ namespace VIVE.OpenXR.Tracker { string func = "UpdateTrackerMaps() "; string s_path = PathToString(path); - sb.Clear().Append(LOG_TAG).Append(func).Append("product: ").Append(product).Append(", path: ").Append(s_path); DEBUG(sb); + sb.Clear().Append(func).Append("product: ").Append(product).Append(", path: ").Append(s_path); DEBUG(sb); // -------------------- Tracker Serial Number -------------------- if (updateSerialNumber) @@ -1761,7 +3605,7 @@ namespace VIVE.OpenXR.Tracker ref nameInfo, out string sn); - sb.Clear().Append(LOG_TAG).Append(func).Append("GetInputSourceName(").Append(s_path).Append(")") + sb.Clear().Append(func).Append("GetInputSourceName(").Append(s_path).Append(")") .Append(", sourceType: ").Append(nameInfo.whichComponents) .Append(", serial number: ").Append(sn) .Append(", result: ").Append(result); @@ -1778,7 +3622,7 @@ namespace VIVE.OpenXR.Tracker else serialMap[product] = sn; - sb.Clear().Append(LOG_TAG).Append(func).Append("Sets product ").Append(product).Append(" with serial number ").Append(serialMap[product]); DEBUG(sb); + sb.Clear().Append(func).Append("Sets product ").Append(product).Append(" with serial number ").Append(serialMap[product]); DEBUG(sb); } } // -------------------- Tracker Role -------------------- @@ -1795,7 +3639,7 @@ namespace VIVE.OpenXR.Tracker ref nameInfo, out string role); - sb.Clear().Append(LOG_TAG).Append(func).Append("GetInputSourceName(").Append(s_path).Append(")") + sb.Clear().Append(func).Append("GetInputSourceName(").Append(s_path).Append(")") .Append(", sourceType: ").Append(nameInfo.whichComponents) .Append(", role: ").Append(role) .Append(", result: ").Append(result); @@ -1812,7 +3656,7 @@ namespace VIVE.OpenXR.Tracker else roleMap[product] = role; - sb.Clear().Append(LOG_TAG).Append(func).Append("Sets product ").Append(product).Append(" with usage ").Append(roleMap[product]); DEBUG(sb); + sb.Clear().Append(func).Append("Sets product ").Append(product).Append(" with usage ").Append(roleMap[product]); DEBUG(sb); } } @@ -1828,7 +3672,7 @@ namespace VIVE.OpenXR.Tracker if (!IsUltimateTracker(product)) { return; } string func = "UpdateInputDeviceUltimateTracker() "; - sb.Clear().Append(LOG_TAG).Append(func) + sb.Clear().Append(func) .Append("product: ").Append(product) .Append(", serial number: ").Append(m_UltimateTrackerSerialMap[product]) .Append(", user path: ").Append(m_UltimateTrackerPathMap[product]) @@ -1839,7 +3683,7 @@ namespace VIVE.OpenXR.Tracker /// Updates tracker serial number (m_UltimateTrackerSerialMap) and role (m_UltimateTrackerUsageMap) if (UpdateTrackerMaps(product, path, ref m_UltimateTrackerSerialMap, ref m_UltimateTrackerUsageMap)) { - sb.Clear().Append(LOG_TAG).Append(func) + sb.Clear().Append(func) .Append("Maps of ").Append(product) .Append(" with user path ").Append(m_UltimateTrackerPathMap[product]).Append(" are updated."); DEBUG(sb); @@ -1850,7 +3694,7 @@ namespace VIVE.OpenXR.Tracker if (InputSystem.devices[i] is XrTrackerDevice && InputSystem.devices[i].description.product.Equals(product)) { - sb.Clear().Append(LOG_TAG).Append(func) + sb.Clear().Append(func) .Append("Removes the XrTrackerDevice product ").Append(product); DEBUG(sb); @@ -1861,7 +3705,7 @@ namespace VIVE.OpenXR.Tracker } if (foundProduct) { - sb.Clear().Append(LOG_TAG).Append(func).Append("Adds a XrTrackerDevice product ").Append(product); DEBUG(sb); + sb.Clear().Append(func).Append("Adds a XrTrackerDevice product ").Append(product); DEBUG(sb); RegisterActionMap( product: product, in_name: m_UltimateTrackerActionMap[product], diff --git a/com.htc.upm.vive.openxr/Runtime/Features/UserPresence.meta b/com.htc.upm.vive.openxr/Runtime/Features/UserPresence.meta new file mode 100644 index 0000000..c9a4be6 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Features/UserPresence.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 05b965860c000ce45ad62b0939b602d5 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Features/UserPresence/Documentation.meta b/com.htc.upm.vive.openxr/Runtime/Features/UserPresence/Documentation.meta new file mode 100644 index 0000000..87f5d49 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Features/UserPresence/Documentation.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5db32a7a9200d2642abc5f23c5e33984 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Features/UserPresence/Documentation/OpenXRExtensions.md b/com.htc.upm.vive.openxr/Runtime/Features/UserPresence/Documentation/OpenXRExtensions.md new file mode 100644 index 0000000..5c743ce --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Features/UserPresence/Documentation/OpenXRExtensions.md @@ -0,0 +1,16 @@ +# 12.38. XR_EXT_user_presence +## Name String + XR_EXT_user_presence +## Revision + 1 +## New Enum Constants +[XrStructureType](https://registry.khronos.org/OpenXR/specs/1.1/html/xrspec.html#XrStructureType) enumeration is extended with: +- XR_TYPE_EVENT_DATA_USER_PRESENCE_CHANGED_EXT +- XR_TYPE_SYSTEM_USER_PRESENCE_PROPERTIES_EXT +## New Structures +- [XrSystemUserPresencePropertiesEXT](https://registry.khronos.org/OpenXR/specs/1.1/html/xrspec.html#XrSystemUserPresencePropertiesEXT) +- [XrEventDataUserPresenceChangedEXT ](https://registry.khronos.org/OpenXR/specs/1.1/html/xrspec.html#XrEventDataUserPresenceChangedEXT) + +## VIVE Plugin + +Enable "VIVE XR User Presence" in "Project Settings > XR Plugin-in Management > OpenXR > Android Tab > OpenXR Feature Groups" to use the user presence feature provided by VIVE OpenXR plugin. diff --git a/com.htc.upm.vive.openxr/Runtime/Features/UserPresence/Documentation/OpenXRExtensions.md.meta b/com.htc.upm.vive.openxr/Runtime/Features/UserPresence/Documentation/OpenXRExtensions.md.meta new file mode 100644 index 0000000..cf64cc0 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Features/UserPresence/Documentation/OpenXRExtensions.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 4cf0d8092d0049c4abd5759298b85224 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Features/UserPresence/Scripts.meta b/com.htc.upm.vive.openxr/Runtime/Features/UserPresence/Scripts.meta new file mode 100644 index 0000000..a734760 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Features/UserPresence/Scripts.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 74669924917bad84397fc3c9ca50a853 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Features/UserPresence/Scripts/ViveUserPresence.cs b/com.htc.upm.vive.openxr/Runtime/Features/UserPresence/Scripts/ViveUserPresence.cs new file mode 100644 index 0000000..aad4d6c --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Features/UserPresence/Scripts/ViveUserPresence.cs @@ -0,0 +1,252 @@ +// Copyright HTC Corporation All Rights Reserved. + +using System; +using System.Runtime.InteropServices; +using System.Text; +using UnityEngine; +using UnityEngine.XR.OpenXR; +using UnityEngine.XR.OpenXR.Features; + +#if UNITY_EDITOR +using UnityEditor; +using UnityEditor.XR.OpenXR.Features; +#endif + +namespace VIVE.OpenXR.UserPresence +{ +#if UNITY_EDITOR + [OpenXRFeature(UiName = "VIVE XR User Presence", + BuildTargetGroups = new[] { BuildTargetGroup.Android }, + Company = "HTC", + Desc = "Support the User Presence extension.", + DocumentationLink = "..\\Documentation", + OpenxrExtensionStrings = kOpenxrExtensionString, + Version = "1.0.0", + FeatureId = featureId)] +#endif + public class ViveUserPresence : OpenXRFeature + { + #region Log + const string LOG_TAG = "VIVE.OpenXR.UserPresence.ViveUserPresence"; + StringBuilder m_sb = null; + StringBuilder sb { + get { + if (m_sb == null) { m_sb = new StringBuilder(); } + return m_sb; + } + } + void DEBUG(StringBuilder msg) { Debug.LogFormat("{0} {1}", LOG_TAG, msg); } + void WARNING(StringBuilder msg) { Debug.LogWarningFormat("{0} {1}", LOG_TAG, msg); } + void ERROR(StringBuilder msg) { Debug.LogErrorFormat("{0} {1}", LOG_TAG, msg); } + #endregion + + /// + /// OpenXR specification 12.39. XR_EXT_user_presence. + /// + public const string kOpenxrExtensionString = "XR_EXT_user_presence"; + /// + /// The feature id string. This is used to give the feature a well known id for reference. + /// + public const string featureId = "vive.openxr.feature.userpresence"; + + #region OpenXR Life Cycle + /// + protected override IntPtr HookGetInstanceProcAddr(IntPtr func) + { + sb.Clear().Append("HookGetInstanceProcAddr() xrPollEvent"); DEBUG(sb); + + ViveInterceptors.Instance.AddRequiredFunction("xrPollEvent"); + return ViveInterceptors.Instance.HookGetInstanceProcAddr(func); + } + + private bool m_XrInstanceCreated = false; + private XrInstance m_XrInstance = 0; + /// + /// Called when xrCreateInstance is done. + /// + /// The created instance. + /// True for valid XrInstance + protected override bool OnInstanceCreate(ulong xrInstance) + { + if (!OpenXRRuntime.IsExtensionEnabled(kOpenxrExtensionString)) + { + sb.Clear().Append("OnInstanceCreate() ").Append(kOpenxrExtensionString).Append(" is NOT enabled."); WARNING(sb); + return false; + } + + m_XrInstance = xrInstance; + m_XrInstanceCreated = true; + sb.Clear().Append("OnInstanceCreate() ").Append(m_XrInstance); DEBUG(sb); + + return GetXrFunctionDelegates(m_XrInstance); + } + /// + /// Called when xrDestroyInstance is done. + /// + /// The instance to destroy. + protected override void OnInstanceDestroy(ulong xrInstance) + { + sb.Clear().Append("OnInstanceDestroy() ").Append(xrInstance).Append(", current: ").Append(m_XrInstance); DEBUG(sb); + if (m_XrInstance == xrInstance) + { + m_XrInstanceCreated = false; + m_XrInstance = 0; + } + } + + private bool m_XrSessionCreated = false; + private XrSession m_XrSession = 0; + /// + /// Called when xrCreateSession is done. + /// + /// The created session ID. + protected override void OnSessionCreate(ulong xrSession) + { + m_XrSession = xrSession; + m_XrSessionCreated = true; + CheckUserPresenceSupport(); + sb.Clear().Append("OnSessionCreate() ").Append(m_XrSession).Append(", support User Presence: ").Append(SupportedUserPresence()); DEBUG(sb); + } + /// + /// Called when xrDestroySession is done. + /// + /// The session ID to destroy. + protected override void OnSessionDestroy(ulong xrSession) + { + sb.Clear().Append("OnSessionDestroy() ").Append(xrSession).Append(", current: ").Append(m_XrSession); DEBUG(sb); + if (m_XrSession == xrSession) + { + m_XrSessionCreated = false; + m_XrSession = 0; + } + } + + private XrSystemId m_XrSystemId = 0; + /// + /// Called when the XrSystemId retrieved by xrGetSystem is changed. + /// + /// The system id. + protected override void OnSystemChange(ulong xrSystem) + { + m_XrSystemId = xrSystem; + sb.Clear().Append("OnSystemChange() " + m_XrSystemId); DEBUG(sb); + } + #endregion + + #region OpenXR function delegates + OpenXRHelper.xrGetInstanceProcAddrDelegate XrGetInstanceProcAddr; + OpenXRHelper.xrGetSystemPropertiesDelegate xrGetSystemProperties; + /// + /// An application can call GetSystemProperties to retrieve information about the system such as vendor ID, system name, and graphics and tracking properties. + /// + /// Points to an instance of the XrSystemProperties structure, that will be filled with returned information. + /// XR_SUCCESS for success. + private XrResult GetSystemProperties(ref XrSystemProperties properties) + { + if (!m_XrSessionCreated) + { + sb.Clear().Append("GetSystemProperties() XR_ERROR_SESSION_LOST."); ERROR(sb); + return XrResult.XR_ERROR_SESSION_LOST; + } + if (!m_XrInstanceCreated) + { + sb.Clear().Append("GetSystemProperties() XR_ERROR_INSTANCE_LOST."); ERROR(sb); + return XrResult.XR_ERROR_INSTANCE_LOST; + } + + return xrGetSystemProperties(m_XrInstance, m_XrSystemId, ref properties); + } + + private bool GetXrFunctionDelegates(XrInstance xrInstance) + { + /// xrGetInstanceProcAddr + if (xrGetInstanceProcAddr != null && xrGetInstanceProcAddr != IntPtr.Zero) + { + sb.Clear().Append("Get function pointer of xrGetInstanceProcAddr."); DEBUG(sb); + XrGetInstanceProcAddr = Marshal.GetDelegateForFunctionPointer( + xrGetInstanceProcAddr, + typeof(OpenXRHelper.xrGetInstanceProcAddrDelegate)) as OpenXRHelper.xrGetInstanceProcAddrDelegate; + } + else + { + sb.Clear().Append("xrGetInstanceProcAddr"); ERROR(sb); + return false; + } + + IntPtr funcPtr = IntPtr.Zero; + /// xrGetSystemProperties + if (XrGetInstanceProcAddr(xrInstance, "xrGetSystemProperties", out funcPtr) == XrResult.XR_SUCCESS) + { + if (funcPtr != IntPtr.Zero) + { + sb.Clear().Append("Get function pointer of xrGetSystemProperties."); DEBUG(sb); + xrGetSystemProperties = Marshal.GetDelegateForFunctionPointer( + funcPtr, + typeof(OpenXRHelper.xrGetSystemPropertiesDelegate)) as OpenXRHelper.xrGetSystemPropertiesDelegate; + } + } + else + { + sb.Clear().Append("xrGetSystemProperties"); ERROR(sb); + return false; + } + + return true; + } + #endregion + + private bool m_SupportUserPresence = false; + XrSystemProperties systemProperties; + XrSystemUserPresencePropertiesEXT userPresenceProperties; + private void CheckUserPresenceSupport() + { + m_SupportUserPresence = false; + if (!m_XrSessionCreated) + { + sb.Clear().Append("CheckUserPresenceSupport() session is not created."); ERROR(sb); + return; + } + + userPresenceProperties.type = XrStructureType.XR_TYPE_SYSTEM_USER_PRESENCE_PROPERTIES_EXT; + systemProperties.type = XrStructureType.XR_TYPE_SYSTEM_PROPERTIES; + systemProperties.next = Marshal.AllocHGlobal(Marshal.SizeOf(userPresenceProperties)); + + long offset = 0; + if (IntPtr.Size == 4) + offset = systemProperties.next.ToInt32(); + else + offset = systemProperties.next.ToInt64(); + + IntPtr userPresencePropertiesPtr = new IntPtr(offset); + Marshal.StructureToPtr(userPresenceProperties, userPresencePropertiesPtr, false); + +#pragma warning disable 0618 + if (GetSystemProperties(ref systemProperties) == XrResult.XR_SUCCESS) +#pragma warning restore 0618 + { + if (IntPtr.Size == 4) + offset = systemProperties.next.ToInt32(); + else + offset = systemProperties.next.ToInt64(); + + userPresencePropertiesPtr = new IntPtr(offset); + userPresenceProperties = (XrSystemUserPresencePropertiesEXT)Marshal.PtrToStructure(userPresencePropertiesPtr, typeof(XrSystemUserPresencePropertiesEXT)); + + sb.Clear().Append("CheckUserPresenceSupport() userPresenceProperties.supportsUserPresence: ").Append((UInt32)userPresenceProperties.supportsUserPresence); DEBUG(sb); + m_SupportUserPresence = userPresenceProperties.supportsUserPresence > 0; + } + else + { + sb.Clear().Append("CheckUserPresenceSupport() GetSystemProperties failed."); ERROR(sb); + } + + Marshal.FreeHGlobal(systemProperties.next); + } + public bool SupportedUserPresence() { return m_SupportUserPresence; } + public bool IsUserPresent() + { + if (!SupportedUserPresence()) { return true; } // user is always present + return ViveInterceptors.Instance.IsUserPresent(); + } + } +} \ No newline at end of file diff --git a/com.htc.upm.vive.openxr/Runtime/Features/UserPresence/Scripts/ViveUserPresence.cs.meta b/com.htc.upm.vive.openxr/Runtime/Features/UserPresence/Scripts/ViveUserPresence.cs.meta new file mode 100644 index 0000000..15cd2b1 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Features/UserPresence/Scripts/ViveUserPresence.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2ee23cf0de5b808448a73058d233d254 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Features/UserPresence/Scripts/ViveUserPresenceHelper.cs b/com.htc.upm.vive.openxr/Runtime/Features/UserPresence/Scripts/ViveUserPresenceHelper.cs new file mode 100644 index 0000000..8632e45 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Features/UserPresence/Scripts/ViveUserPresenceHelper.cs @@ -0,0 +1,92 @@ +// Copyright HTC Corporation All Rights Reserved. + +using System; +using System.Runtime.InteropServices; + +namespace VIVE.OpenXR.UserPresence +{ + // -------------------- 12.39. XR_EXT_user_presence -------------------- + #region New Structures + /// + /// The application can use the XrSystemUserPresencePropertiesEXT event in xrGetSystemProperties to detect if the given system supports the sensing of user presence. + /// + [StructLayout(LayoutKind.Sequential)] + public struct XrSystemUserPresencePropertiesEXT + { + /// + /// The of this structure. + /// + public XrStructureType type; + /// + /// NULL or a pointer to the next structure in a structure chain. No such structures are defined in core OpenXR or this extension. + /// + public IntPtr next; + /// + /// An value that indicates whether the system supports user presence sensing. + /// + public XrBool32 supportsUserPresence; + } + + /// + /// The XrEventDataUserPresenceChangedEXT event is queued for retrieval using xrPollEvent when the user presence is changed, as well as when a session starts running.

+ /// Receiving XrEventDataUserPresenceChangedEXT with the isUserPresent is XR_TRUE indicates that the system has detected the presence of a user in the XR experience.For example, this may indicate that the user has put on the headset, or has entered the tracking area of a non-head-worn XR system.

+ /// Receiving XrEventDataUserPresenceChangedEXT with the isUserPresent is XR_FALSE indicates that the system has detected the absence of a user in the XR experience.For example, this may indicate that the user has removed the headset or has stepped away from the tracking area of a non-head-worn XR system.

+ /// The runtime must queue this event upon a successful call to the xrBeginSession function, regardless of the value of isUserPresent, so that the application can be in sync on the state when a session begins running.

+ /// The runtime must return a valid XrSession handle for a running session.

+ /// After the application calls xrEndSession, a running session is ended and the runtime must not enqueue any more user presence events.Therefore, the application will no longer observe any changes of the isUserPresent until another running session. + ///
+ [StructLayout(LayoutKind.Sequential)] + public struct XrEventDataUserPresenceChangedEXT + { + /// + /// The of this structure. + /// + public XrStructureType type; + /// + /// NULL or a pointer to the next structure in a structure chain. No such structures are defined in core OpenXR or this extension. + /// + public IntPtr next; + /// + /// The that is receiving the notification. + /// + public XrSession session; + /// + /// An value for new state of user presence after the change. + /// + public XrBool32 isUserPresent; + + /// + /// The XR_EXT_user_presence extension must be enabled prior to using XrEventDataUserPresenceChangedEXT. + /// + public XrEventDataUserPresenceChangedEXT(XrStructureType in_type, IntPtr in_next, XrSession in_session, XrBool32 in_present) + { + type = in_type; + next = in_next; + session = in_session; + isUserPresent = in_present; + } + /// + /// Retrieves the identity value of XrEventDataUserPresenceChangedEXT. + /// + public static XrEventDataUserPresenceChangedEXT identity { + get { + return new XrEventDataUserPresenceChangedEXT(XrStructureType.XR_TYPE_EVENT_DATA_USER_PRESENCE_CHANGED_EXT, IntPtr.Zero, 0, true); // user is default present + } + } + public static bool Get(XrEventDataBuffer eventDataBuffer, out XrEventDataUserPresenceChangedEXT eventDataUserPresenceChangedEXT) + { + eventDataUserPresenceChangedEXT = identity; + + if (eventDataBuffer.type == XrStructureType.XR_TYPE_EVENT_DATA_USER_PRESENCE_CHANGED_EXT) + { + eventDataUserPresenceChangedEXT.next = eventDataBuffer.next; + eventDataUserPresenceChangedEXT.session = BitConverter.ToUInt64(eventDataBuffer.varying, 0); + eventDataUserPresenceChangedEXT.isUserPresent = BitConverter.ToUInt32(eventDataBuffer.varying, 8); + return true; + } + + return false; + } + } + #endregion +} diff --git a/com.htc.upm.vive.openxr/Runtime/Features/UserPresence/Scripts/ViveUserPresenceHelper.cs.meta b/com.htc.upm.vive.openxr/Runtime/Features/UserPresence/Scripts/ViveUserPresenceHelper.cs.meta new file mode 100644 index 0000000..55b2153 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Features/UserPresence/Scripts/ViveUserPresenceHelper.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: fe60bb878e8f2df42b202a83e565ab7f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Models.meta b/com.htc.upm.vive.openxr/Runtime/Models.meta new file mode 100644 index 0000000..d316cfb --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Models.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 28039825564788440897a38a7adffbad +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Models/Controller.meta b/com.htc.upm.vive.openxr/Runtime/Models/Controller.meta new file mode 100644 index 0000000..cd2a47e --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Models/Controller.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 54ec593a7497fdc41959fdae3b3516a7 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Models/Controller/2.5.meta b/com.htc.upm.vive.openxr/Runtime/Models/Controller/2.5.meta new file mode 100644 index 0000000..827d6f8 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Models/Controller/2.5.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 48975db9205d6304583fcf982c242e32 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Models/Controller/2.5/Materials.meta b/com.htc.upm.vive.openxr/Runtime/Models/Controller/2.5/Materials.meta new file mode 100644 index 0000000..d6f98f0 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Models/Controller/2.5/Materials.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 49df4f9d6bb4e564c966f39cd84303c1 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Models/Controller/2.5/Materials/Ctrl_Battery.mat b/com.htc.upm.vive.openxr/Runtime/Models/Controller/2.5/Materials/Ctrl_Battery.mat new file mode 100644 index 0000000..c4fc2bf --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Models/Controller/2.5/Materials/Ctrl_Battery.mat @@ -0,0 +1,80 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Ctrl_Battery + m_Shader: {fileID: 10750, guid: 0000000000000000f000000000000000, type: 0} + m_ValidKeywords: [] + m_InvalidKeywords: [] + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: 081534a469226b94996f8a2a9c78be61, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _BumpScale: 1 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _UVSec: 0 + - _ZWrite: 1 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + m_BuildTextureStacks: [] diff --git a/com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Arts/VRMfile/VRM1/Female1/Female1_Hair2.mat.meta b/com.htc.upm.vive.openxr/Runtime/Models/Controller/2.5/Materials/Ctrl_Battery.mat.meta similarity index 79% rename from com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Arts/VRMfile/VRM1/Female1/Female1_Hair2.mat.meta rename to com.htc.upm.vive.openxr/Runtime/Models/Controller/2.5/Materials/Ctrl_Battery.mat.meta index 4de9ad7..84a2f95 100644 --- a/com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Arts/VRMfile/VRM1/Female1/Female1_Hair2.mat.meta +++ b/com.htc.upm.vive.openxr/Runtime/Models/Controller/2.5/Materials/Ctrl_Battery.mat.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 2da33923e42511f4180d426efa7c2915 +guid: 23da0c069ecaa0043a5b34d93901e0af NativeFormatImporter: externalObjects: {} mainObjectFileID: 2100000 diff --git a/com.htc.upm.vive.openxr/Runtime/Models/Controller/2.5/Materials/_DEFAULT_MTL.mat b/com.htc.upm.vive.openxr/Runtime/Models/Controller/2.5/Materials/_DEFAULT_MTL.mat new file mode 100644 index 0000000..3e41ac6 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Models/Controller/2.5/Materials/_DEFAULT_MTL.mat @@ -0,0 +1,85 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: _DEFAULT_MTL + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ValidKeywords: [] + m_InvalidKeywords: [] + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: 4f95bdb8d6c0a634997aeced88e52640, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _BumpScale: 1 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _UVSec: 0 + - _ZWrite: 1 + m_Colors: + - _Color: {r: 0.9063317, g: 0.9063317, b: 0.9063317, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} + m_BuildTextureStacks: [] diff --git a/com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Materials/Metal_M.mat.meta b/com.htc.upm.vive.openxr/Runtime/Models/Controller/2.5/Materials/_DEFAULT_MTL.mat.meta similarity index 79% rename from com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Materials/Metal_M.mat.meta rename to com.htc.upm.vive.openxr/Runtime/Models/Controller/2.5/Materials/_DEFAULT_MTL.mat.meta index 40e9f1f..f071e05 100644 --- a/com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Materials/Metal_M.mat.meta +++ b/com.htc.upm.vive.openxr/Runtime/Models/Controller/2.5/Materials/_DEFAULT_MTL.mat.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: c0eddc6f76ea4484b949a7a798f78c38 +guid: 1c9d256427720f8449c1ec38a2c1767b NativeFormatImporter: externalObjects: {} mainObjectFileID: 2100000 diff --git a/com.htc.upm.vive.openxr/Runtime/Models/Controller/2.5/Models.meta b/com.htc.upm.vive.openxr/Runtime/Models/Controller/2.5/Models.meta new file mode 100644 index 0000000..b9d4f98 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Models/Controller/2.5/Models.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7ea45dcb24599334cb37afc893dae3a8 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Models/Controller/2.5/Models/controller_L.fbx b/com.htc.upm.vive.openxr/Runtime/Models/Controller/2.5/Models/controller_L.fbx new file mode 100644 index 0000000..33ec1d5 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Models/Controller/2.5/Models/controller_L.fbx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c84fb123fc18bb436d4c7ad3f7e903a373bdc9b9c1514f3de090cce7d3ebd794 +size 2532227 diff --git a/com.htc.upm.vive.openxr/Runtime/Models/Controller/2.5/Models/controller_L.fbx.meta b/com.htc.upm.vive.openxr/Runtime/Models/Controller/2.5/Models/controller_L.fbx.meta new file mode 100644 index 0000000..7a0265d --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Models/Controller/2.5/Models/controller_L.fbx.meta @@ -0,0 +1,111 @@ +fileFormatVersion: 2 +guid: 1205485f8d5139f4f9d09bed56cc014d +ModelImporter: + serializedVersion: 21300 + internalIDToNameTable: [] + externalObjects: + - first: + type: UnityEngine:Material + assembly: UnityEngine.CoreModule + name: Default_Material + second: {fileID: 2100000, guid: 1c9d256427720f8449c1ec38a2c1767b, type: 2} + materials: + materialImportMode: 2 + materialName: 0 + materialSearch: 1 + materialLocation: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleCurves: 1 + optimizeGameObjects: 0 + removeConstantScaleCurves: 1 + motionNodeName: + rigImportErrors: + rigImportWarnings: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + importAnimatedCustomProperties: 0 + importConstraints: 0 + animationCompression: 1 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + extraUserProperties: [] + clipAnimations: [] + isReadable: 0 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + useSRGBMaterialColor: 1 + sortHierarchyByName: 1 + importVisibility: 1 + importBlendShapes: 1 + importCameras: 1 + importLights: 1 + nodeNameCollisionStrategy: 1 + fileIdsGeneration: 2 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + keepQuads: 0 + weldVertices: 1 + bakeAxisConversion: 0 + preserveHierarchy: 0 + skinWeightsMode: 0 + maxBonesPerVertex: 4 + minBoneWeight: 0.001 + optimizeBones: 1 + meshOptimizationFlags: -1 + indexFormat: 0 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVMarginMethod: 1 + secondaryUVMinLightmapResolution: 40 + secondaryUVMinObjectScale: 1 + secondaryUVPackMargin: 4 + useFileScale: 1 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + normalCalculationMode: 4 + legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0 + blendShapeNormalImportMode: 1 + normalSmoothingSource: 0 + referencedClips: [] + importAnimation: 1 + humanDescription: + serializedVersion: 3 + human: [] + skeleton: [] + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 0.05 + legStretch: 0.05 + feetSpacing: 0 + globalScale: 1 + rootMotionBoneName: + hasTranslationDoF: 0 + hasExtraRoot: 0 + skeletonHasParents: 1 + lastHumanDescriptionAvatarSource: {instanceID: 0} + autoGenerateAvatarMappingIfUnspecified: 1 + animationType: 2 + humanoidOversampling: 1 + avatarSetup: 0 + addHumanoidExtraRootOnlyWhenUsingAvatar: 1 + remapMaterialsIfMaterialImportModeIsNone: 0 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Models/Controller/2.5/Models/controller_R.fbx b/com.htc.upm.vive.openxr/Runtime/Models/Controller/2.5/Models/controller_R.fbx new file mode 100644 index 0000000..bc4d626 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Models/Controller/2.5/Models/controller_R.fbx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8de06739bc82724b700a1545d9ed450b8bdcf6af032940f97fc691663ce1e6b1 +size 2550978 diff --git a/com.htc.upm.vive.openxr/Runtime/Models/Controller/2.5/Models/controller_R.fbx.meta b/com.htc.upm.vive.openxr/Runtime/Models/Controller/2.5/Models/controller_R.fbx.meta new file mode 100644 index 0000000..3b171c7 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Models/Controller/2.5/Models/controller_R.fbx.meta @@ -0,0 +1,111 @@ +fileFormatVersion: 2 +guid: 4c587de662ad31e458a63282cb358c4f +ModelImporter: + serializedVersion: 21300 + internalIDToNameTable: [] + externalObjects: + - first: + type: UnityEngine:Material + assembly: UnityEngine.CoreModule + name: Default_Material + second: {fileID: 2100000, guid: 1c9d256427720f8449c1ec38a2c1767b, type: 2} + materials: + materialImportMode: 2 + materialName: 0 + materialSearch: 1 + materialLocation: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleCurves: 1 + optimizeGameObjects: 0 + removeConstantScaleCurves: 1 + motionNodeName: + rigImportErrors: + rigImportWarnings: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + importAnimatedCustomProperties: 0 + importConstraints: 0 + animationCompression: 1 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + extraUserProperties: [] + clipAnimations: [] + isReadable: 0 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + useSRGBMaterialColor: 1 + sortHierarchyByName: 1 + importVisibility: 1 + importBlendShapes: 1 + importCameras: 1 + importLights: 1 + nodeNameCollisionStrategy: 1 + fileIdsGeneration: 2 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + keepQuads: 0 + weldVertices: 1 + bakeAxisConversion: 0 + preserveHierarchy: 0 + skinWeightsMode: 0 + maxBonesPerVertex: 4 + minBoneWeight: 0.001 + optimizeBones: 1 + meshOptimizationFlags: -1 + indexFormat: 0 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVMarginMethod: 1 + secondaryUVMinLightmapResolution: 40 + secondaryUVMinObjectScale: 1 + secondaryUVPackMargin: 4 + useFileScale: 1 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + normalCalculationMode: 4 + legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0 + blendShapeNormalImportMode: 1 + normalSmoothingSource: 0 + referencedClips: [] + importAnimation: 1 + humanDescription: + serializedVersion: 3 + human: [] + skeleton: [] + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 0.05 + legStretch: 0.05 + feetSpacing: 0 + globalScale: 1 + rootMotionBoneName: + hasTranslationDoF: 0 + hasExtraRoot: 0 + skeletonHasParents: 1 + lastHumanDescriptionAvatarSource: {instanceID: 0} + autoGenerateAvatarMappingIfUnspecified: 1 + animationType: 2 + humanoidOversampling: 1 + avatarSetup: 0 + addHumanoidExtraRootOnlyWhenUsingAvatar: 1 + remapMaterialsIfMaterialImportModeIsNone: 0 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/ArtAssets/Textures.meta b/com.htc.upm.vive.openxr/Runtime/Models/Controller/2.5/Textures.meta similarity index 77% rename from com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/ArtAssets/Textures.meta rename to com.htc.upm.vive.openxr/Runtime/Models/Controller/2.5/Textures.meta index 84f672d..e0a63c0 100644 --- a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/ArtAssets/Textures.meta +++ b/com.htc.upm.vive.openxr/Runtime/Models/Controller/2.5/Textures.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: f9b4c633b1ebe044cb583eab6822fadd +guid: 7476d95fa4ccbb44685b5df06546b1b9 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/Common/Models/Controller/Texture/battery/TX_PanelBattery_status4.png b/com.htc.upm.vive.openxr/Runtime/Models/Controller/2.5/Textures/TX_PanelBattery_status4.png similarity index 100% rename from com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/Common/Models/Controller/Texture/battery/TX_PanelBattery_status4.png rename to com.htc.upm.vive.openxr/Runtime/Models/Controller/2.5/Textures/TX_PanelBattery_status4.png diff --git a/com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Arts/VRMfile/VRM1/Female1/Female1.Textures/Shader_NoneBlack.png.meta b/com.htc.upm.vive.openxr/Runtime/Models/Controller/2.5/Textures/TX_PanelBattery_status4.png.meta similarity index 96% rename from com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Arts/VRMfile/VRM1/Female1/Female1.Textures/Shader_NoneBlack.png.meta rename to com.htc.upm.vive.openxr/Runtime/Models/Controller/2.5/Textures/TX_PanelBattery_status4.png.meta index 667017f..d0430ac 100644 --- a/com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Arts/VRMfile/VRM1/Female1/Female1.Textures/Shader_NoneBlack.png.meta +++ b/com.htc.upm.vive.openxr/Runtime/Models/Controller/2.5/Textures/TX_PanelBattery_status4.png.meta @@ -1,12 +1,12 @@ fileFormatVersion: 2 -guid: 37d485fb3c77dec4e97d02654d5d0634 +guid: 081534a469226b94996f8a2a9c78be61 TextureImporter: internalIDToNameTable: [] externalObjects: {} serializedVersion: 12 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -51,7 +51,7 @@ TextureImporter: spriteBorder: {x: 0, y: 0, z: 0, w: 0} spriteGenerateFallbackPhysicsShape: 1 alphaUsage: 1 - alphaIsTransparency: 0 + alphaIsTransparency: 1 spriteTessellationDetail: -1 textureType: 0 textureShape: 1 @@ -67,7 +67,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 512 + maxTextureSize: 128 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/Common/Models/Controller/Texture/overlay.png b/com.htc.upm.vive.openxr/Runtime/Models/Controller/2.5/Textures/controller_lr.png similarity index 100% rename from com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/Common/Models/Controller/Texture/overlay.png rename to com.htc.upm.vive.openxr/Runtime/Models/Controller/2.5/Textures/controller_lr.png diff --git a/com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Arts/VRMfile/VRM1/Female1/Female1.Textures/_02.png.meta b/com.htc.upm.vive.openxr/Runtime/Models/Controller/2.5/Textures/controller_lr.png.meta similarity index 98% rename from com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Arts/VRMfile/VRM1/Female1/Female1.Textures/_02.png.meta rename to com.htc.upm.vive.openxr/Runtime/Models/Controller/2.5/Textures/controller_lr.png.meta index ce882a3..8805746 100644 --- a/com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Arts/VRMfile/VRM1/Female1/Female1.Textures/_02.png.meta +++ b/com.htc.upm.vive.openxr/Runtime/Models/Controller/2.5/Textures/controller_lr.png.meta @@ -1,12 +1,12 @@ fileFormatVersion: 2 -guid: d0de6f6e42c310645867487abe78c6ac +guid: 4f95bdb8d6c0a634997aeced88e52640 TextureImporter: internalIDToNameTable: [] externalObjects: {} serializedVersion: 12 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 diff --git a/com.htc.upm.vive.openxr/Runtime/Models/Controller/ControllerModelActions.cs b/com.htc.upm.vive.openxr/Runtime/Models/Controller/ControllerModelActions.cs new file mode 100644 index 0000000..5270735 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Models/Controller/ControllerModelActions.cs @@ -0,0 +1,118 @@ +// Copyright HTC Corporation All Rights Reserved. + +using System.Text; +using UnityEngine; +using UnityEngine.InputSystem; + +namespace VIVE.OpenXR.Models +{ + public class ControllerModelActions : MonoBehaviour + { + #region Log + const string LOG_TAG = "VIVE.OpenXR.Models.ControllerModelActions"; + StringBuilder m_sb = null; + StringBuilder sb { + get { + if (m_sb == null) { m_sb = new StringBuilder(); } + return m_sb; + } + } + void DEBUG(StringBuilder msg) { Debug.LogFormat("{0} {1}", LOG_TAG, msg); } + void ERROR(StringBuilder msg) { Debug.LogErrorFormat("{0} {1}", LOG_TAG, msg); } + #endregion + + #region Inspector + public bool isLeft = false; + public GameObject triggerButton = null; + public GameObject gripButton = null; + public GameObject thumbstickButton = null; + public GameObject primaryButton = null; + public GameObject secondaryButton = null; + + public InputAction trigger = null; + public InputAction grip = null; + public InputAction thumbstick = null; + public InputAction primaryClick = null; + public InputAction secondaryClick = null; + #endregion + + private Quaternion triggerRot = Quaternion.identity; + private Vector3 gripButtonPos = Vector3.zero; + private Vector3 primaryButtonPos = Vector3.zero; + private Vector3 secondaryButtonPos = Vector3.zero; + + void Start() + { + if (triggerButton != null) { triggerRot = triggerButton.transform.localRotation; } + if (gripButton != null) { gripButtonPos = gripButton.transform.localPosition; } + if (primaryButton != null) { primaryButtonPos = primaryButton.transform.localPosition; } + if (secondaryButton != null) { secondaryButtonPos = secondaryButton.transform.localPosition; } + + if (trigger != null) { trigger.Enable(); } + if (grip != null) { grip.Enable(); } + if (thumbstick != null) { thumbstick.Enable(); } + if (primaryClick != null) { primaryClick.Enable(); } + if (secondaryClick != null) { secondaryClick.Enable(); } + } + + void Update() + { + OnTrigger(); + OnGrip(); + OnThumbstick(); + OnPrimaryClick(); + OnSecondaryClick(); + } + + void OnTrigger() + { + if (OpenXRHelper.GetAnalog(trigger, out float value, out string msg)) + { + triggerButton.transform.localRotation = Quaternion.Euler(value * 15f, 0, 0); + } + else + { + triggerButton.transform.localRotation = triggerRot; + } + } + void OnGrip() + { + if (OpenXRHelper.GetAnalog(grip, out float value, out string msg)) + { + if (isLeft) + gripButton.transform.localPosition = gripButtonPos + Vector3.right * value * -0.002f; + else + gripButton.transform.localPosition = gripButtonPos + Vector3.left * value * -0.002f; + } + } + void OnThumbstick() + { + if (OpenXRHelper.GetVector2(thumbstick, out Vector2 value, out string msg)) + { + thumbstickButton.transform.localRotation = Quaternion.Euler(value.y * 25f, 0, value.x * -25f); + } + } + void OnPrimaryClick() + { + if (OpenXRHelper.GetAnalog(primaryClick, out float value, out string msg)) + { + primaryButton.transform.localPosition = primaryButtonPos + Vector3.down * (value > 0.5f ? 0.00125f : 0); + } + else + { + primaryButton.transform.localPosition = primaryButtonPos; + } + } + void OnSecondaryClick() + { + if (OpenXRHelper.GetAnalog(secondaryClick, out float value, out string msg)) + { + secondaryButton.transform.localPosition = secondaryButtonPos + Vector3.down * (value > 0.5f ? 0.00125f : 0); + } + else + { + secondaryButton.transform.localPosition = secondaryButtonPos; + } + } + } +} \ No newline at end of file diff --git a/com.htc.upm.vive.openxr/Runtime/Models/Controller/ControllerModelActions.cs.meta b/com.htc.upm.vive.openxr/Runtime/Models/Controller/ControllerModelActions.cs.meta new file mode 100644 index 0000000..2441b3a --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Models/Controller/ControllerModelActions.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7b221715b73f1a540b587cae4af7fcb8 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Models/Hand.meta b/com.htc.upm.vive.openxr/Runtime/Models/Hand.meta new file mode 100644 index 0000000..be606c8 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Models/Hand.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a77c8c057fb45da43b3513228731089c +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Models/Hand/2.5.meta b/com.htc.upm.vive.openxr/Runtime/Models/Hand/2.5.meta new file mode 100644 index 0000000..b1a17fd --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Models/Hand/2.5.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 92041f31dc9416b48a2029c48c6b6ffc +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Models/Hand/2.5/Lefthand.fbx b/com.htc.upm.vive.openxr/Runtime/Models/Hand/2.5/Lefthand.fbx new file mode 100644 index 0000000..36f77f7 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Models/Hand/2.5/Lefthand.fbx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dbb05d72de330af5731a3ac774089c9054012e1e9f3a25b63f10958571306e9e +size 2906979 diff --git a/com.htc.upm.vive.openxr/Runtime/Models/Hand/2.5/Lefthand.fbx.meta b/com.htc.upm.vive.openxr/Runtime/Models/Hand/2.5/Lefthand.fbx.meta new file mode 100644 index 0000000..c53690e --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Models/Hand/2.5/Lefthand.fbx.meta @@ -0,0 +1,111 @@ +fileFormatVersion: 2 +guid: 55e3f88cac20c634690f1452306eb523 +ModelImporter: + serializedVersion: 21300 + internalIDToNameTable: [] + externalObjects: + - first: + type: UnityEngine:Material + assembly: UnityEngine.CoreModule + name: Default_Material + second: {fileID: 2100000, guid: dc999998687fce943a2d62982cf3bb17, type: 2} + materials: + materialImportMode: 2 + materialName: 0 + materialSearch: 1 + materialLocation: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleCurves: 1 + optimizeGameObjects: 0 + removeConstantScaleCurves: 1 + motionNodeName: + rigImportErrors: + rigImportWarnings: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + importAnimatedCustomProperties: 0 + importConstraints: 0 + animationCompression: 1 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + extraUserProperties: [] + clipAnimations: [] + isReadable: 0 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + useSRGBMaterialColor: 1 + sortHierarchyByName: 1 + importVisibility: 1 + importBlendShapes: 1 + importCameras: 1 + importLights: 1 + nodeNameCollisionStrategy: 1 + fileIdsGeneration: 2 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + keepQuads: 0 + weldVertices: 1 + bakeAxisConversion: 0 + preserveHierarchy: 0 + skinWeightsMode: 0 + maxBonesPerVertex: 4 + minBoneWeight: 0.001 + optimizeBones: 1 + meshOptimizationFlags: -1 + indexFormat: 0 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVMarginMethod: 1 + secondaryUVMinLightmapResolution: 40 + secondaryUVMinObjectScale: 1 + secondaryUVPackMargin: 4 + useFileScale: 1 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + normalCalculationMode: 4 + legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0 + blendShapeNormalImportMode: 1 + normalSmoothingSource: 0 + referencedClips: [] + importAnimation: 1 + humanDescription: + serializedVersion: 3 + human: [] + skeleton: [] + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 0.05 + legStretch: 0.05 + feetSpacing: 0 + globalScale: 1 + rootMotionBoneName: + hasTranslationDoF: 0 + hasExtraRoot: 0 + skeletonHasParents: 1 + lastHumanDescriptionAvatarSource: {instanceID: 0} + autoGenerateAvatarMappingIfUnspecified: 1 + animationType: 2 + humanoidOversampling: 1 + avatarSetup: 0 + addHumanoidExtraRootOnlyWhenUsingAvatar: 1 + remapMaterialsIfMaterialImportModeIsNone: 0 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Models/Hand/2.5/Materials.meta b/com.htc.upm.vive.openxr/Runtime/Models/Hand/2.5/Materials.meta new file mode 100644 index 0000000..65dfdac --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Models/Hand/2.5/Materials.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: bb909cdbffc4cdc40887c53baeb6db76 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Models/Hand/2.5/Materials/Hand.mat b/com.htc.upm.vive.openxr/Runtime/Models/Hand/2.5/Materials/Hand.mat new file mode 100644 index 0000000..118efcb --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Models/Hand/2.5/Materials/Hand.mat @@ -0,0 +1,50 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Hand + m_Shader: {fileID: 4800000, guid: 1fe62d92a6498bd41994b44944d6b552, type: 3} + m_ValidKeywords: [] + m_InvalidKeywords: [] + m_LightmapFlags: 0 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _AlphaText: + m_Texture: {fileID: 2800000, guid: 76d4d2bc58547df45ab8ef0ed359a9f4, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _texcoord: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _texcoord3: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _Gradient_Blur: 0.2854134 + - _Gradient_level: 0.5225084 + - _Opacity: 0.45 + - _OutlineThickness: 0.001 + - __dirty: 1 + - _line_opacity: 0.5 + m_Colors: + - _ConColorA: {r: 0.1058824, g: 0.6901961, b: 0.9019608, a: 0} + - _ConColorB: {r: 1, g: 1, b: 1, a: 0} + - _ConGraColorA: {r: 1, g: 1, b: 1, a: 0} + - _ConGraColorB: {r: 1, g: 1, b: 1, a: 0} + - _GraColorA: {r: 1, g: 1, b: 1, a: 0} + - _GraColorB: {r: 1, g: 1, b: 1, a: 0} + m_BuildTextureStacks: [] diff --git a/com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Materials/Wood_M.mat.meta b/com.htc.upm.vive.openxr/Runtime/Models/Hand/2.5/Materials/Hand.mat.meta similarity index 79% rename from com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Materials/Wood_M.mat.meta rename to com.htc.upm.vive.openxr/Runtime/Models/Hand/2.5/Materials/Hand.mat.meta index bcec28d..0c43495 100644 --- a/com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Materials/Wood_M.mat.meta +++ b/com.htc.upm.vive.openxr/Runtime/Models/Hand/2.5/Materials/Hand.mat.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: ad898bf3866892e46a7dfe774004a22d +guid: dc999998687fce943a2d62982cf3bb17 NativeFormatImporter: externalObjects: {} mainObjectFileID: 2100000 diff --git a/com.htc.upm.vive.openxr/Runtime/Models/Hand/2.5/Righthand.fbx b/com.htc.upm.vive.openxr/Runtime/Models/Hand/2.5/Righthand.fbx new file mode 100644 index 0000000..7e08780 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Models/Hand/2.5/Righthand.fbx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:215314268721059f231135825883788caf71194a0e1f54f406fe2f8f35ad0f00 +size 2908411 diff --git a/com.htc.upm.vive.openxr/Runtime/Models/Hand/2.5/Righthand.fbx.meta b/com.htc.upm.vive.openxr/Runtime/Models/Hand/2.5/Righthand.fbx.meta new file mode 100644 index 0000000..15f2296 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Models/Hand/2.5/Righthand.fbx.meta @@ -0,0 +1,111 @@ +fileFormatVersion: 2 +guid: 5c9af3a1eed9bfd4884f627bc8417ae6 +ModelImporter: + serializedVersion: 21300 + internalIDToNameTable: [] + externalObjects: + - first: + type: UnityEngine:Material + assembly: UnityEngine.CoreModule + name: Default_Material + second: {fileID: 2100000, guid: dc999998687fce943a2d62982cf3bb17, type: 2} + materials: + materialImportMode: 2 + materialName: 0 + materialSearch: 1 + materialLocation: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleCurves: 1 + optimizeGameObjects: 0 + removeConstantScaleCurves: 1 + motionNodeName: + rigImportErrors: + rigImportWarnings: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + importAnimatedCustomProperties: 0 + importConstraints: 0 + animationCompression: 1 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + extraUserProperties: [] + clipAnimations: [] + isReadable: 0 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + useSRGBMaterialColor: 1 + sortHierarchyByName: 1 + importVisibility: 1 + importBlendShapes: 1 + importCameras: 1 + importLights: 1 + nodeNameCollisionStrategy: 1 + fileIdsGeneration: 2 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + keepQuads: 0 + weldVertices: 1 + bakeAxisConversion: 0 + preserveHierarchy: 0 + skinWeightsMode: 0 + maxBonesPerVertex: 4 + minBoneWeight: 0.001 + optimizeBones: 1 + meshOptimizationFlags: -1 + indexFormat: 0 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVMarginMethod: 1 + secondaryUVMinLightmapResolution: 40 + secondaryUVMinObjectScale: 1 + secondaryUVPackMargin: 4 + useFileScale: 1 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + normalCalculationMode: 4 + legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0 + blendShapeNormalImportMode: 1 + normalSmoothingSource: 0 + referencedClips: [] + importAnimation: 1 + humanDescription: + serializedVersion: 3 + human: [] + skeleton: [] + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 0.05 + legStretch: 0.05 + feetSpacing: 0 + globalScale: 1 + rootMotionBoneName: + hasTranslationDoF: 0 + hasExtraRoot: 0 + skeletonHasParents: 1 + lastHumanDescriptionAvatarSource: {instanceID: 0} + autoGenerateAvatarMappingIfUnspecified: 1 + animationType: 2 + humanoidOversampling: 1 + avatarSetup: 0 + addHumanoidExtraRootOnlyWhenUsingAvatar: 1 + remapMaterialsIfMaterialImportModeIsNone: 0 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Models/Hand/2.5/Shaders.meta b/com.htc.upm.vive.openxr/Runtime/Models/Hand/2.5/Shaders.meta new file mode 100644 index 0000000..24e54ab --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Models/Hand/2.5/Shaders.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6541b1cca7e65874aa164f80c6f23143 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Models/Hand/2.5/Shaders/handBlueGrafillOL.shader b/com.htc.upm.vive.openxr/Runtime/Models/Hand/2.5/Shaders/handBlueGrafillOL.shader new file mode 100644 index 0000000..6807234 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Models/Hand/2.5/Shaders/handBlueGrafillOL.shader @@ -0,0 +1,116 @@ +// Made with Amplify Shader Editor +Shader "Wave/Essence/Hand/Model" +{ + Properties + { + [HDR]_GraColorA("GradianColorA", Color) = (0.1058824,0.6901961,0.9019608,0) + [HDR]_GraColorB("GradianColorB", Color) = (1,1,1,0) + [HDR]_ConGraColorA("ContourColorA", Color) = (0.1058824,0.6901961,0.9019608,0) + [HDR]_ConGraColorB("ContourColorB", Color) = (1,1,1,0) + _Gradient_Blur("Gradient_Blur", Range(0 , 1)) = 0.2854134 + _Gradient_level("Gradient_level", Range(0 , 1)) = 0.5225084 + _Opacity("Opacity", Range(0 , 1)) = 0.45 + _line_opacity("line_opacity", Range(0 , 1)) = 0.5 + _OutlineThickness("OutlineThickness", Range(0 , 0.002)) = 0.001 + _AlphaText("AlphaText", 2D) = "white" {} + [HideInInspector] _texcoord3("", 2D) = "white" {} + [HideInInspector] _texcoord("", 2D) = "white" {} + [HideInInspector] __dirty("", Int) = 1 + } + + SubShader + { + Pass + { + ColorMask 0 + ZWrite On + } + + Tags{ "RenderType" = "Transparent" "Queue" = "Transparent+0"} + Cull Front + CGPROGRAM + #pragma target 3.0 + #pragma surface outlineSurf Outline nofog alpha:fade keepalpha noshadow noambient novertexlights nolightmap nodynlightmap nodirlightmap nometa noforwardadd vertex:outlineVertexDataFunc + + + + + struct Input + { + float2 uv3_texcoord3; + float2 uv_texcoord; + }; + uniform float _OutlineThickness; + uniform float4 _ConGraColorA; + uniform float4 _ConGraColorB; + uniform float _Gradient_level; + uniform float _Gradient_Blur; + uniform float _line_opacity; + uniform sampler2D _AlphaText; + + void outlineVertexDataFunc(inout appdata_full v, out Input o) + { + UNITY_INITIALIZE_OUTPUT(Input, o); + float outlineVar = _OutlineThickness; + v.vertex.xyz += (v.normal * outlineVar); + } + inline half4 LightingOutline(SurfaceOutput s, half3 lightDir, half atten) { return half4 (0,0,0, s.Alpha); } + void outlineSurf(Input i, inout SurfaceOutput o) + { + float clampResult114 = clamp((_Gradient_level + ((_Gradient_level - i.uv3_texcoord3.y) / _Gradient_Blur)) , 0.0 , 1.0); + float4 lerpResult100 = lerp(_ConGraColorA, _ConGraColorB, clampResult114); + float4 tex2DNode92 = tex2D(_AlphaText, i.uv_texcoord); + o.Emission = lerpResult100.rgb; + o.Alpha = (_line_opacity * tex2DNode92).r; + } + ENDCG + + + Tags{ "RenderType" = "Transparent" "Queue" = "Transparent+0" "IgnoreProjector" = "True" "IsEmissive" = "true" } + Cull Back + Blend SrcAlpha OneMinusSrcAlpha + + CGPROGRAM + #pragma target 3.0 + #pragma surface surf Unlit keepalpha noshadow vertex:vertexDataFunc + struct Input + { + float2 uv3_texcoord3; + float2 uv_texcoord; + }; + + uniform float4 _GraColorA; + uniform float4 _GraColorB; + uniform float _Gradient_level; + uniform float _Gradient_Blur; + uniform float _Opacity; + uniform sampler2D _AlphaText; + + void vertexDataFunc(inout appdata_full v, out Input o) + { + UNITY_INITIALIZE_OUTPUT(Input, o); + v.vertex.xyz += 0; + } + + inline half4 LightingUnlit(SurfaceOutput s, half3 lightDir, half atten) + { + return half4 (0, 0, 0, s.Alpha); + } + + void surf(Input i , inout SurfaceOutput o) + { + float clampResult114 = clamp((_Gradient_level + ((_Gradient_level - i.uv3_texcoord3.y) / _Gradient_Blur)) , 0.0 , 1.0); + float4 lerpResult100 = lerp(_GraColorA , _GraColorB , clampResult114); + o.Emission = lerpResult100.rgb; + float4 color104 = IsGammaSpace() ? float4(0,0,0,0) : float4(0,0,0,0); + float4 color102 = IsGammaSpace() ? float4(1,1,1,0) : float4(1,1,1,0); + float smoothstepResult103 = smoothstep(-0.05 , 1.0 , i.uv3_texcoord3.y); + float4 lerpResult105 = lerp(color104 , color102 , smoothstepResult103); + float4 tex2DNode92 = tex2D(_AlphaText, i.uv_texcoord); + o.Alpha = (lerpResult105 * _Opacity * tex2DNode92).r; + } + + ENDCG + } + CustomEditor "ASEMaterialInspector" +} diff --git a/com.htc.upm.vive.openxr/Runtime/Models/Hand/2.5/Shaders/handBlueGrafillOL.shader.meta b/com.htc.upm.vive.openxr/Runtime/Models/Hand/2.5/Shaders/handBlueGrafillOL.shader.meta new file mode 100644 index 0000000..a798d90 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Models/Hand/2.5/Shaders/handBlueGrafillOL.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 1fe62d92a6498bd41994b44944d6b552 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Models/Hand/2.5/Textures.meta b/com.htc.upm.vive.openxr/Runtime/Models/Hand/2.5/Textures.meta new file mode 100644 index 0000000..2d299f7 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Models/Hand/2.5/Textures.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f4acb42845551fe4b92933e1858633ad +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Models/Hand/2.5/Textures/Hand_alpha.png b/com.htc.upm.vive.openxr/Runtime/Models/Hand/2.5/Textures/Hand_alpha.png new file mode 100644 index 0000000..41e5285 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Models/Hand/2.5/Textures/Hand_alpha.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9200dd4b5df6a3b54b772702b0f65014adb75c81234553096f58f207977102de +size 325893 diff --git a/com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Arts/VRMfile/VRM1/Female1/Female1.Textures/N00_000_00_Face_00_out.png.meta b/com.htc.upm.vive.openxr/Runtime/Models/Hand/2.5/Textures/Hand_alpha.png.meta similarity index 97% rename from com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Arts/VRMfile/VRM1/Female1/Female1.Textures/N00_000_00_Face_00_out.png.meta rename to com.htc.upm.vive.openxr/Runtime/Models/Hand/2.5/Textures/Hand_alpha.png.meta index f597a51..d690cd3 100644 --- a/com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Arts/VRMfile/VRM1/Female1/Female1.Textures/N00_000_00_Face_00_out.png.meta +++ b/com.htc.upm.vive.openxr/Runtime/Models/Hand/2.5/Textures/Hand_alpha.png.meta @@ -1,12 +1,12 @@ fileFormatVersion: 2 -guid: 82b79a5098728914486ac605c91d7170 +guid: 76d4d2bc58547df45ab8ef0ed359a9f4 TextureImporter: internalIDToNameTable: [] externalObjects: {} serializedVersion: 12 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -63,7 +63,7 @@ TextureImporter: textureFormatSet: 0 ignorePngGamma: 0 applyGammaDecoding: 0 - cookieLightType: 0 + cookieLightType: 1 platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform diff --git a/com.htc.upm.vive.openxr/Runtime/Models/Hand/HandModelActions.cs b/com.htc.upm.vive.openxr/Runtime/Models/Hand/HandModelActions.cs new file mode 100644 index 0000000..09be440 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Models/Hand/HandModelActions.cs @@ -0,0 +1,136 @@ +// Copyright HTC Corporation All Rights Reserved. + +using System; +using System.Text; +using UnityEngine; +using VIVE.OpenXR.Hand; + +namespace VIVE.OpenXR.Models +{ + public class HandModelActions : MonoBehaviour + { + #region Log + const string LOG_TAG = "VIVE.OpenXR.Models.HandModelActions"; + StringBuilder m_sb = null; + StringBuilder sb + { + get + { + if (m_sb == null) { m_sb = new StringBuilder(); } + return m_sb; + } + } + void DEBUG(StringBuilder msg) { Debug.LogFormat("{0} {1}", LOG_TAG, msg); } + void ERROR(StringBuilder msg) { Debug.LogErrorFormat("{0} {1}", LOG_TAG, msg); } + #endregion + + #region Inspector + [SerializeField] private bool m_IsLeft = false; + + [SerializeField] private GameObject m_Wrist = null; + [SerializeField] private GameObject m_Palm = null; + + [SerializeField] private GameObject m_Thumb_Metacarpal = null; + [SerializeField] private GameObject m_Thumb_Proximal = null; + [SerializeField] private GameObject m_Thumb_Distal = null; + [SerializeField] private GameObject m_Thumb_Tip = null; + + [SerializeField] private GameObject m_Index_Metacarpal = null; + [SerializeField] private GameObject m_Index_Proximal = null; + [SerializeField] private GameObject m_Index_Intermediate = null; + [SerializeField] private GameObject m_Index_Distal = null; + [SerializeField] private GameObject m_Index_Tip = null; + + [SerializeField] private GameObject m_Middle_Metacarpal = null; + [SerializeField] private GameObject m_Middle_Proximal = null; + [SerializeField] private GameObject m_Middle_Intermediate = null; + [SerializeField] private GameObject m_Middle_Distal = null; + [SerializeField] private GameObject m_Middle_Tip = null; + + [SerializeField] private GameObject m_Ring_Metacarpal = null; + [SerializeField] private GameObject m_Ring_Proximal = null; + [SerializeField] private GameObject m_Ring_Intermediate = null; + [SerializeField] private GameObject m_Ring_Distal = null; + [SerializeField] private GameObject m_Ring_Tip = null; + + [SerializeField] private GameObject m_Little_Metacarpal = null; + [SerializeField] private GameObject m_Little_Proximal = null; + [SerializeField] private GameObject m_Little_Intermediate = null; + [SerializeField] private GameObject m_Little_Distal = null; + [SerializeField] private GameObject m_Little_Tip = null; + + [HideInInspector] + public bool ForceHidden = false; + #endregion + + private SkinnedMeshRenderer skinMeshRenderer = null; + private void Awake() + { + skinMeshRenderer = GetComponentInChildren(); + } + + private void Update() + { + if (skinMeshRenderer == null) { return; } + + if (!XR_EXT_hand_tracking.Interop.GetJointLocations(m_IsLeft, out XrHandJointLocationEXT[] handJointLocation)) + { + skinMeshRenderer.enabled = false; + return; + } + + skinMeshRenderer.enabled = !ForceHidden; + + UpdateJointPosition(handJointLocation[(int)XrHandJointEXT.XR_HAND_JOINT_WRIST_EXT], ref m_Wrist); + + UpdateJointRotation(handJointLocation[(int)XrHandJointEXT.XR_HAND_JOINT_WRIST_EXT], ref m_Wrist); + UpdateJointRotation(handJointLocation[(int)XrHandJointEXT.XR_HAND_JOINT_PALM_EXT], ref m_Palm); + + UpdateJointRotation(handJointLocation[(int)XrHandJointEXT.XR_HAND_JOINT_THUMB_METACARPAL_EXT], ref m_Thumb_Metacarpal); + UpdateJointRotation(handJointLocation[(int)XrHandJointEXT.XR_HAND_JOINT_THUMB_PROXIMAL_EXT], ref m_Thumb_Proximal); + UpdateJointRotation(handJointLocation[(int)XrHandJointEXT.XR_HAND_JOINT_THUMB_DISTAL_EXT], ref m_Thumb_Distal); + UpdateJointRotation(handJointLocation[(int)XrHandJointEXT.XR_HAND_JOINT_THUMB_TIP_EXT], ref m_Thumb_Tip); + + UpdateJointRotation(handJointLocation[(int)XrHandJointEXT.XR_HAND_JOINT_INDEX_METACARPAL_EXT], ref m_Index_Metacarpal); + UpdateJointRotation(handJointLocation[(int)XrHandJointEXT.XR_HAND_JOINT_INDEX_PROXIMAL_EXT], ref m_Index_Proximal); + UpdateJointRotation(handJointLocation[(int)XrHandJointEXT.XR_HAND_JOINT_INDEX_INTERMEDIATE_EXT], ref m_Index_Intermediate); + UpdateJointRotation(handJointLocation[(int)XrHandJointEXT.XR_HAND_JOINT_INDEX_DISTAL_EXT], ref m_Index_Distal); + UpdateJointRotation(handJointLocation[(int)XrHandJointEXT.XR_HAND_JOINT_INDEX_TIP_EXT], ref m_Index_Tip); + + UpdateJointRotation(handJointLocation[(int)XrHandJointEXT.XR_HAND_JOINT_MIDDLE_METACARPAL_EXT], ref m_Middle_Metacarpal); + UpdateJointRotation(handJointLocation[(int)XrHandJointEXT.XR_HAND_JOINT_MIDDLE_PROXIMAL_EXT], ref m_Middle_Proximal); + UpdateJointRotation(handJointLocation[(int)XrHandJointEXT.XR_HAND_JOINT_MIDDLE_INTERMEDIATE_EXT], ref m_Middle_Intermediate); + UpdateJointRotation(handJointLocation[(int)XrHandJointEXT.XR_HAND_JOINT_MIDDLE_DISTAL_EXT], ref m_Middle_Distal); + UpdateJointRotation(handJointLocation[(int)XrHandJointEXT.XR_HAND_JOINT_MIDDLE_TIP_EXT], ref m_Middle_Tip); + + UpdateJointRotation(handJointLocation[(int)XrHandJointEXT.XR_HAND_JOINT_RING_METACARPAL_EXT], ref m_Ring_Metacarpal); + UpdateJointRotation(handJointLocation[(int)XrHandJointEXT.XR_HAND_JOINT_RING_PROXIMAL_EXT], ref m_Ring_Proximal); + UpdateJointRotation(handJointLocation[(int)XrHandJointEXT.XR_HAND_JOINT_RING_INTERMEDIATE_EXT], ref m_Ring_Intermediate); + UpdateJointRotation(handJointLocation[(int)XrHandJointEXT.XR_HAND_JOINT_RING_DISTAL_EXT], ref m_Ring_Distal); + UpdateJointRotation(handJointLocation[(int)XrHandJointEXT.XR_HAND_JOINT_RING_TIP_EXT], ref m_Ring_Tip); + + UpdateJointRotation(handJointLocation[(int)XrHandJointEXT.XR_HAND_JOINT_LITTLE_METACARPAL_EXT], ref m_Little_Metacarpal); + UpdateJointRotation(handJointLocation[(int)XrHandJointEXT.XR_HAND_JOINT_LITTLE_PROXIMAL_EXT], ref m_Little_Proximal); + UpdateJointRotation(handJointLocation[(int)XrHandJointEXT.XR_HAND_JOINT_LITTLE_INTERMEDIATE_EXT], ref m_Little_Intermediate); + UpdateJointRotation(handJointLocation[(int)XrHandJointEXT.XR_HAND_JOINT_LITTLE_DISTAL_EXT], ref m_Little_Distal); + UpdateJointRotation(handJointLocation[(int)XrHandJointEXT.XR_HAND_JOINT_LITTLE_TIP_EXT], ref m_Little_Tip); + } + + private void UpdateJointPosition(XrHandJointLocationEXT pose, ref GameObject joint) + { + if (((UInt64)pose.locationFlags & (UInt64)XrSpaceLocationFlags.XR_SPACE_LOCATION_POSITION_TRACKED_BIT) != 0) + { + Vector3 pos = OpenXRHelper.ToUnityVector(pose.pose.position); + m_Wrist.transform.localPosition = pos; + } + } + private void UpdateJointRotation(XrHandJointLocationEXT pose, ref GameObject joint) + { + if (((UInt64)pose.locationFlags & (UInt64)XrSpaceLocationFlags.XR_SPACE_LOCATION_ORIENTATION_TRACKED_BIT) != 0) + { + Quaternion rot = OpenXRHelper.ToUnityQuaternion(pose.pose.orientation); + joint.transform.rotation = rot; + } + } + } +} \ No newline at end of file diff --git a/com.htc.upm.vive.openxr/Runtime/Models/Hand/HandModelActions.cs.meta b/com.htc.upm.vive.openxr/Runtime/Models/Hand/HandModelActions.cs.meta new file mode 100644 index 0000000..2c6cb8b --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Models/Hand/HandModelActions.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 916de3f5e8e977e4bb28c81a7b35921a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/OpenXRUtils.cs b/com.htc.upm.vive.openxr/Runtime/OpenXRUtils.cs index ccbe8e2..466ab51 100644 --- a/com.htc.upm.vive.openxr/Runtime/OpenXRUtils.cs +++ b/com.htc.upm.vive.openxr/Runtime/OpenXRUtils.cs @@ -10,132 +10,32 @@ using UnityEngine.XR; namespace VIVE.OpenXR { - public struct XrFoveationConfigurationHTC - { - public XrFoveationLevelHTC level; - public float clearFovDegree; - public XrVector2f focalCenterOffset; - } - public enum XrFoveationModeHTC - { - XR_FOVEATION_MODE_DISABLE_HTC = 0, - XR_FOVEATION_MODE_FIXED_HTC = 1, - XR_FOVEATION_MODE_DYNAMIC_HTC = 2, - XR_FOVEATION_MODE_CUSTOM_HTC = 3, - XR_FOVEATION_MODE_MAX_ENUM_HTC = 0x7FFFFFFF - } - public enum XrFoveationLevelHTC - { - XR_FOVEATION_LEVEL_NONE_HTC = 0, - XR_FOVEATION_LEVEL_LOW_HTC = 1, - XR_FOVEATION_LEVEL_MEDIUM_HTC = 2, - XR_FOVEATION_LEVEL_HIGH_HTC = 3, - XR_FOVEATION_LEVEL_MAX_ENUM_HTC = 0x7FFFFFFF - } - /// - /// Defines values, each of which corresponds to a specific OpenXR handle type. These values can be used to associate debug information with a particular type of object through one or more extensions. - /// - public enum XrObjectType + [Obsolete("Please use VIVE.OpenXR.Foveation.XrFoveationConfigurationHTC instead.")] + public struct XrFoveationConfigurationHTC { - XR_OBJECT_TYPE_UNKNOWN = 0, - XR_OBJECT_TYPE_INSTANCE = 1, - XR_OBJECT_TYPE_SESSION = 2, - XR_OBJECT_TYPE_SWAPCHAIN = 3, - XR_OBJECT_TYPE_SPACE = 4, - XR_OBJECT_TYPE_ACTION_SET = 5, - XR_OBJECT_TYPE_ACTION = 6, - XR_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000019000, - XR_OBJECT_TYPE_SPATIAL_ANCHOR_MSFT = 1000039000, - XR_OBJECT_TYPE_HAND_TRACKER_EXT = 1000051000, - XR_OBJECT_TYPE_SCENE_OBSERVER_MSFT = 1000097000, - XR_OBJECT_TYPE_SCENE_MSFT = 1000097001, - XR_OBJECT_TYPE_FACIAL_TRACKER_HTC = 1000104000, - XR_OBJECT_TYPE_FOVEATION_PROFILE_FB = 1000114000, - XR_OBJECT_TYPE_TRIANGLE_MESH_FB = 1000117000, - XR_OBJECT_TYPE_PASSTHROUGH_FB = 1000118000, - XR_OBJECT_TYPE_PASSTHROUGH_LAYER_FB = 1000118002, - XR_OBJECT_TYPE_GEOMETRY_INSTANCE_FB = 1000118004, - XR_OBJECT_TYPE_SPATIAL_ANCHOR_STORE_CONNECTION_MSFT = 1000142000, - XR_OBJECT_TYPE_MAX_ENUM = 0x7FFFFFFF + public XrFoveationLevelHTC level; + public float clearFovDegree; + public XrVector2f focalCenterOffset; } - /// - /// All return codes in the OpenXR Core API are reported via XrResult return values. - /// - public enum XrResult + [Obsolete("Please use VIVE.OpenXR.Foveation.XrFoveationModeHTC instead.")] + public enum XrFoveationModeHTC { - XR_SUCCESS = 0, - XR_TIMEOUT_EXPIRED = 1, - XR_SESSION_LOSS_PENDING = 3, - XR_EVENT_UNAVAILABLE = 4, - XR_SPACE_BOUNDS_UNAVAILABLE = 7, - XR_SESSION_NOT_FOCUSED = 8, - XR_FRAME_DISCARDED = 9, - XR_ERROR_VALIDATION_FAILURE = -1, - XR_ERROR_RUNTIME_FAILURE = -2, - XR_ERROR_OUT_OF_MEMORY = -3, - XR_ERROR_API_VERSION_UNSUPPORTED = -4, - XR_ERROR_INITIALIZATION_FAILED = -6, - XR_ERROR_FUNCTION_UNSUPPORTED = -7, - XR_ERROR_FEATURE_UNSUPPORTED = -8, - XR_ERROR_EXTENSION_NOT_PRESENT = -9, - XR_ERROR_LIMIT_REACHED = -10, - XR_ERROR_SIZE_INSUFFICIENT = -11, - XR_ERROR_HANDLE_INVALID = -12, - XR_ERROR_INSTANCE_LOST = -13, - XR_ERROR_SESSION_RUNNING = -14, - XR_ERROR_SESSION_NOT_RUNNING = -16, - XR_ERROR_SESSION_LOST = -17, - XR_ERROR_SYSTEM_INVALID = -18, - XR_ERROR_PATH_INVALID = -19, - XR_ERROR_PATH_COUNT_EXCEEDED = -20, - XR_ERROR_PATH_FORMAT_INVALID = -21, - XR_ERROR_PATH_UNSUPPORTED = -22, - XR_ERROR_LAYER_INVALID = -23, - XR_ERROR_LAYER_LIMIT_EXCEEDED = -24, - XR_ERROR_SWAPCHAIN_RECT_INVALID = -25, - XR_ERROR_SWAPCHAIN_FORMAT_UNSUPPORTED = -26, - XR_ERROR_ACTION_TYPE_MISMATCH = -27, - XR_ERROR_SESSION_NOT_READY = -28, - XR_ERROR_SESSION_NOT_STOPPING = -29, - XR_ERROR_TIME_INVALID = -30, - XR_ERROR_REFERENCE_SPACE_UNSUPPORTED = -31, - XR_ERROR_FILE_ACCESS_ERROR = -32, - XR_ERROR_FILE_CONTENTS_INVALID = -33, - XR_ERROR_FORM_FACTOR_UNSUPPORTED = -34, - XR_ERROR_FORM_FACTOR_UNAVAILABLE = -35, - XR_ERROR_API_LAYER_NOT_PRESENT = -36, - XR_ERROR_CALL_ORDER_INVALID = -37, - XR_ERROR_GRAPHICS_DEVICE_INVALID = -38, - XR_ERROR_POSE_INVALID = -39, - XR_ERROR_INDEX_OUT_OF_RANGE = -40, - XR_ERROR_VIEW_CONFIGURATION_TYPE_UNSUPPORTED = -41, - XR_ERROR_ENVIRONMENT_BLEND_MODE_UNSUPPORTED = -42, - XR_ERROR_NAME_DUPLICATED = -44, - XR_ERROR_NAME_INVALID = -45, - XR_ERROR_ACTIONSET_NOT_ATTACHED = -46, - XR_ERROR_ACTIONSETS_ALREADY_ATTACHED = -47, - XR_ERROR_LOCALIZED_NAME_DUPLICATED = -48, - XR_ERROR_LOCALIZED_NAME_INVALID = -49, - XR_ERROR_GRAPHICS_REQUIREMENTS_CALL_MISSING = -50, - XR_ERROR_RUNTIME_UNAVAILABLE = -51, - XR_ERROR_ANDROID_THREAD_SETTINGS_ID_INVALID_KHR = -1000003000, - XR_ERROR_ANDROID_THREAD_SETTINGS_FAILURE_KHR = -1000003001, - XR_ERROR_CREATE_SPATIAL_ANCHOR_FAILED_MSFT = -1000039001, - XR_ERROR_SECONDARY_VIEW_CONFIGURATION_TYPE_NOT_ENABLED_MSFT = -1000053000, - XR_ERROR_CONTROLLER_MODEL_KEY_INVALID_MSFT = -1000055000, - XR_ERROR_REPROJECTION_MODE_UNSUPPORTED_MSFT = -1000066000, - XR_ERROR_COMPUTE_NEW_SCENE_NOT_COMPLETED_MSFT = -1000097000, - XR_ERROR_SCENE_COMPONENT_ID_INVALID_MSFT = -1000097001, - XR_ERROR_SCENE_COMPONENT_TYPE_MISMATCH_MSFT = -1000097002, - XR_ERROR_SCENE_MESH_BUFFER_ID_INVALID_MSFT = -1000097003, - XR_ERROR_SCENE_COMPUTE_FEATURE_INCOMPATIBLE_MSFT = -1000097004, - XR_ERROR_SCENE_COMPUTE_CONSISTENCY_MISMATCH_MSFT = -1000097005, - XR_ERROR_DISPLAY_REFRESH_RATE_UNSUPPORTED_FB = -1000101000, - XR_ERROR_COLOR_SPACE_UNSUPPORTED_FB = -1000108000, - XR_ERROR_SPATIAL_ANCHOR_NAME_NOT_FOUND_MSFT = -1000142001, - XR_ERROR_SPATIAL_ANCHOR_NAME_INVALID_MSFT = -1000142002, - XR_RESULT_MAX_ENUM = 0x7FFFFFFF + XR_FOVEATION_MODE_DISABLE_HTC = 0, + XR_FOVEATION_MODE_FIXED_HTC = 1, + XR_FOVEATION_MODE_DYNAMIC_HTC = 2, + XR_FOVEATION_MODE_CUSTOM_HTC = 3, + XR_FOVEATION_MODE_MAX_ENUM_HTC = 0x7FFFFFFF } + [Obsolete("Please use VIVE.OpenXR.Foveation.XrFoveationLevelHTC instead.")] + public enum XrFoveationLevelHTC + { + XR_FOVEATION_LEVEL_NONE_HTC = 0, + XR_FOVEATION_LEVEL_LOW_HTC = 1, + XR_FOVEATION_LEVEL_MEDIUM_HTC = 2, + XR_FOVEATION_LEVEL_HIGH_HTC = 3, + XR_FOVEATION_LEVEL_MAX_ENUM_HTC = 0x7FFFFFFF + } + /// /// Any parameter that is a structure containing a type member must have a value of type which is a valid XrStructureType value matching the type of the structure. /// @@ -224,6 +124,10 @@ namespace VIVE.OpenXR XR_TYPE_EYE_GAZE_SAMPLE_TIME_EXT = 1000030001, XR_TYPE_VISIBILITY_MASK_KHR = 1000031000, XR_TYPE_EVENT_DATA_VISIBILITY_MASK_CHANGED_KHR = 1000031001, + XR_TYPE_PASSTHROUGH_CREATE_INFO_HTC = 1000317001, + XR_TYPE_PASSTHROUGH_COLOR_HTC = 1000317002, + XR_TYPE_PASSTHROUGH_MESH_TRANSFORM_INFO_HTC = 1000317003, + XR_TYPE_COMPOSITION_LAYER_PASSTHROUGH_HTC = 1000317004, XR_TYPE_SESSION_CREATE_INFO_OVERLAY_EXTX = 1000033000, XR_TYPE_EVENT_DATA_MAIN_SESSION_VISIBILITY_CHANGED_EXTX = 1000033003, XR_TYPE_COMPOSITION_LAYER_COLOR_SCALE_BIAS_KHR = 1000034000, @@ -232,6 +136,10 @@ namespace VIVE.OpenXR XR_TYPE_COMPOSITION_LAYER_IMAGE_LAYOUT_FB = 1000040000, XR_TYPE_COMPOSITION_LAYER_ALPHA_BLEND_FB = 1000041001, XR_TYPE_VIEW_CONFIGURATION_DEPTH_RANGE_EXT = 1000046000, + /// Provided by XR_EXT_user_presence. + XR_TYPE_EVENT_DATA_USER_PRESENCE_CHANGED_EXT = 1000470000, + /// Provided by XR_EXT_user_presence. + XR_TYPE_SYSTEM_USER_PRESENCE_PROPERTIES_EXT = 1000470001, XR_TYPE_GRAPHICS_BINDING_EGL_MNDX = 1000048004, XR_TYPE_SPATIAL_GRAPH_NODE_SPACE_CREATE_INFO_MSFT = 1000049000, XR_TYPE_SYSTEM_HAND_TRACKING_PROPERTIES_EXT = 1000051000, @@ -312,25 +220,35 @@ namespace VIVE.OpenXR XR_TYPE_GRAPHICS_BINDING_VULKAN2_KHR = XR_TYPE_GRAPHICS_BINDING_VULKAN_KHR, XR_TYPE_SWAPCHAIN_IMAGE_VULKAN2_KHR = XR_TYPE_SWAPCHAIN_IMAGE_VULKAN_KHR, XR_TYPE_GRAPHICS_REQUIREMENTS_VULKAN2_KHR = XR_TYPE_GRAPHICS_REQUIREMENTS_VULKAN_KHR, - XR_TYPE_PLANE_DETECTOR_CREATE_INFO_EXT = 1000429001, - XR_TYPE_PLANE_DETECTOR_BEGIN_INFO_EXT = 1000429002, - XR_TYPE_PLANE_DETECTOR_GET_INFO_EXT = 1000429003, - XR_TYPE_PLANE_DETECTOR_LOCATIONS_EXT = 1000429004, - XR_TYPE_PLANE_DETECTOR_LOCATION_EXT = 1000429005, - XR_TYPE_PLANE_DETECTOR_POLYGON_BUFFER_EXT = 1000429006, + XR_TYPE_PLANE_DETECTOR_CREATE_INFO_EXT = 1000429001, + XR_TYPE_PLANE_DETECTOR_BEGIN_INFO_EXT = 1000429002, + XR_TYPE_PLANE_DETECTOR_GET_INFO_EXT = 1000429003, + XR_TYPE_PLANE_DETECTOR_LOCATIONS_EXT = 1000429004, + XR_TYPE_PLANE_DETECTOR_LOCATION_EXT = 1000429005, + XR_TYPE_PLANE_DETECTOR_POLYGON_BUFFER_EXT = 1000429006, XR_TYPE_SYSTEM_PLANE_DETECTION_PROPERTIES_EXT = 1000429007, - XR_TYPE_PASSTHROUGH_CREATE_INFO_HTC = 1000317001, - XR_TYPE_PASSTHROUGH_COLOR_HTC = 1000317002, - XR_TYPE_PASSTHROUGH_MESH_TRANSFORM_INFO_HTC = 1000317003, - XR_TYPE_COMPOSITION_LAYER_PASSTHROUGH_HTC = 1000317004, XR_TYPE_SYSTEM_ANCHOR_PROPERTIES_HTC = 1000319000, XR_TYPE_SPATIAL_ANCHOR_CREATE_INFO_HTC = 1000319001, - XR_TYPE_PERSISTED_ANCHOR_COLLECTION_CREATE_INFO_HTC = 1000320000, - XR_TYPE_SPATIAL_ANCHOR_PERSIST_INFO_HTC = 1000320001, - XR_TYPE_SPATIAL_ANCHOR_FROM_PERSISTED_ANCHOR_CREATE_INFO_HTC = 1000320002, - XR_TYPE_PERSISTED_ANCHOR_PROPERTIES_GET_INFO_HTC = 1000320003, + + XR_TYPE_PERSISTED_ANCHOR_COLLECTION_ACQUIRE_INFO_HTC = 1000324000, + XR_TYPE_PERSISTED_ANCHOR_COLLECTION_CREATE_COMPLETION_HTC = 1000324001, + XR_TYPE_SPATIAL_ANCHOR_PERSIST_INFO_HTC = 1000324002, + XR_TYPE_SPATIAL_ANCHOR_FROM_PERSISTED_ANCHOR_CREATE_INFO_HTC = 1000324003, + XR_TYPE_SPATIAL_ANCHOR_FROM_PERSISTED_ANCHOR_CREATE_COMPLETION_HTC = 1000324004, + XR_TYPE_PERSISTED_ANCHOR_PROPERTIES_GET_INFO_HTC = 1000324005, + + XR_TYPE_FUTURE_CANCEL_INFO_EXT = 1000469000, + XR_TYPE_FUTURE_POLL_INFO_EXT = 1000469001, + XR_TYPE_FUTURE_COMPLETION_EXT = 1000469002, + XR_TYPE_FUTURE_POLL_RESULT_EXT = 1000469003, + XR_TYPE_COMPOSITION_LAYER_SPACE_WARP_INFO_FB = 1000171000, XR_TYPE_SYSTEM_SPACE_WARP_PROPERTIES_FB = 1000171001, + + XR_TYPE_SYSTEM_COMPOSITION_LAYER_EXTRA_SETTINGS_PROPERTIES_HTC = 1000323000, + XR_TYPE_COMPOSITION_LAYER_SHARPENING_SETTING_HTC = 1000323001, + XR_TYPE_COMPOSITION_LAYER_SUPER_SAMPLING_SETTING_HTC = 1000323002, + XR_TYPE_EYE_TRACKER_CREATE_INFO_HTC = 1000326001, XR_TYPE_EYE_GAZE_DATA_INFO_HTC = 1000326002, XR_TYPE_EYE_GAZE_DATA_HTC = 1000326003, @@ -342,1027 +260,129 @@ namespace VIVE.OpenXR XR_TYPE_EYE_GEOMETRIC_DATA_INFO_HTC = 1000326009, XR_TYPE_EYE_GEOMETRIC_DATA_HTC = 1000326010, XR_TYPE_SINGLE_EYE_GEOMETRIC_DATA_HTC = 1000326011, + + XR_TYPE_SYSTEM_PASSTHROUGH_CONFIGURATION_PROPERTIES_HTC = 1000328000, + XR_TYPE_PASSTHROUGH_CONFIGURATION_BASE_HEADER_HTC = 1000328001, + XR_TYPE_PASSTHROUGH_CONFIGURATION_IMAGE_RATE_HTC = 1000328002, + XR_TYPE_PASSTHROUGH_CONFIGURATION_IMAGE_QUALITY_HTC = 1000328003, + XR_TYPE_EVENT_DATA_PASSTHROUGH_CONFIGURATION_IMAGE_RATE_CHANGED_HTC = 1000328050, + XR_TYPE_EVENT_DATA_PASSTHROUGH_CONFIGURATION_IMAGE_QUALITY_CHANGED_HTC = 1000328051, + // Provided by XR_HTC_frame_synchronization + XR_TYPE_FRAME_SYNCHRONIZATION_SESSION_BEGIN_INFO_HTC = 1000329000, XR_STRUCTURE_TYPE_MAX_ENUM = 0x7FFFFFFF } + + #region 2. Fundamentals /// - /// Runtimes implement well-known reference spaces from XrReferenceSpaceType if they support tracking of that kind. + /// All return codes in the OpenXR Core API are reported via XrResult return values. /// - public enum XrReferenceSpaceType + public enum XrResult { - /// - /// The VIEW space tracks the view origin used to generate view transforms for the primary viewer (or centroid of view origins if stereo), with +Y up, +X to the right, and -Z forward. This space points in the forward direction for the viewer without incorporating the user’s eye orientation, and is not gravity-aligned. - /// - /// VIEW space is primarily useful when projecting from the user’s perspective into another space to obtain a targeting ray, or when rendering small head-locked content such as a reticle. Content rendered in VIEW space will stay at a fixed point on head-mounted displays and may be uncomfortable to view if too large. To obtain the ideal view and projection transforms to use each frame for rendering world content, applications should call xrLocateViews instead of using this space. - /// - /// Runtimes must support this reference space. - /// - XR_REFERENCE_SPACE_TYPE_VIEW = 1, - /// - /// The LOCAL reference space establishes a world-locked origin, gravity-aligned to exclude pitch and roll, with +Y up, +X to the right, and -Z forward. This space locks in both its initial position and orientation, which the runtime may define to be either the initial position at application launch or some other calibrated zero position. - /// - /// LOCAL space is useful when an application needs to render seated-scale content that is not positioned relative to the physical floor. - /// - /// When a user needs to recenter LOCAL space, a runtime may offer some system-level recentering interaction that is transparent to the application, but which causes the current leveled head space to become the new LOCAL space. When such a recentering occurs, the runtime must queue the XrEventDataReferenceSpaceChangePending event, with the recentered LOCAL space origin only taking effect for xrLocateSpace or xrLocateViews calls whose XrTime parameter is greater than or equal to the changeTime provided in that event. - /// - /// When views, controllers or other spaces experience tracking loss relative to the LOCAL space, runtimes should continue to provide inferred or last-known position and orientation values. These inferred poses can, for example, be based on neck model updates, inertial dead reckoning, or a last-known position, so long as it is still reasonable for the application to use that pose. While a runtime is providing position data, it must continue to set XR_SPACE_LOCATION_POSITION_VALID_BIT and XR_VIEW_STATE_POSITION_VALID_BIT but it can clear XR_SPACE_LOCATION_POSITION_TRACKED_BIT and XR_VIEW_STATE_POSITION_TRACKED_BIT to indicate that the position is inferred or last-known in this way. - /// - /// When tracking is recovered, runtimes should snap the pose of other spaces back into position relative to the LOCAL space’s original origin. - /// - /// Runtimes must support this reference space. - /// - XR_REFERENCE_SPACE_TYPE_LOCAL = 2, - /// - /// The STAGE reference space is a runtime-defined flat, rectangular space that is empty and can be walked around on. The origin is on the floor at the center of the rectangle, with +Y up, and the X and Z axes aligned with the rectangle edges. The runtime may not be able to locate spaces relative to the STAGE reference space if the user has not yet defined one within the runtime-specific UI. Applications can use xrGetReferenceSpaceBoundsRect to determine the extents of the STAGE reference space’s XZ bounds rectangle, if defined. - /// - /// STAGE space is useful when an application needs to render standing-scale content (no bounds) or room-scale content (with bounds) that is relative to the physical floor. - /// - /// When the user redefines the origin or bounds of the current STAGE space, or the runtime otherwise switches to a new STAGE definition, the runtime must queue the XrEventDataReferenceSpaceChangePending event, with the new STAGE space origin only taking effect for xrLocateSpace or xrLocateViews calls whose XrTime parameter is greater than or equal to the changeTime provided in that event. - /// - /// When views, controllers or other spaces experience tracking loss relative to the STAGE space, runtimes should continue to provide inferred or last-known position and orientation values. These inferred poses can, for example, be based on neck model updates, inertial dead reckoning, or a last-known position, so long as it is still reasonable for the application to use that pose. While a runtime is providing position data, it must continue to set XR_SPACE_LOCATION_POSITION_VALID_BIT and XR_VIEW_STATE_POSITION_VALID_BIT but it can clear XR_SPACE_LOCATION_POSITION_TRACKED_BIT and XR_VIEW_STATE_POSITION_TRACKED_BIT to indicate that the position is inferred or last-known in this way. - /// - /// When tracking is recovered, runtimes should snap the pose of other spaces back into position relative to the STAGE space’s original origin. - /// - XR_REFERENCE_SPACE_TYPE_STAGE = 3, - XR_REFERENCE_SPACE_TYPE_UNBOUNDED_MSFT = 1000038000, - XR_REFERENCE_SPACE_TYPE_COMBINED_EYE_VARJO = 1000121000, - XR_REFERENCE_SPACE_TYPE_MAX_ENUM = 0x7FFFFFFF + XR_SUCCESS = 0, + XR_TIMEOUT_EXPIRED = 1, + XR_SESSION_LOSS_PENDING = 3, + XR_EVENT_UNAVAILABLE = 4, + XR_SPACE_BOUNDS_UNAVAILABLE = 7, + XR_SESSION_NOT_FOCUSED = 8, + XR_FRAME_DISCARDED = 9, + XR_ERROR_VALIDATION_FAILURE = -1, + XR_ERROR_RUNTIME_FAILURE = -2, + XR_ERROR_OUT_OF_MEMORY = -3, + XR_ERROR_API_VERSION_UNSUPPORTED = -4, + XR_ERROR_INITIALIZATION_FAILED = -6, + XR_ERROR_FUNCTION_UNSUPPORTED = -7, + XR_ERROR_FEATURE_UNSUPPORTED = -8, + XR_ERROR_EXTENSION_NOT_PRESENT = -9, + XR_ERROR_LIMIT_REACHED = -10, + XR_ERROR_SIZE_INSUFFICIENT = -11, + XR_ERROR_HANDLE_INVALID = -12, + XR_ERROR_INSTANCE_LOST = -13, + XR_ERROR_SESSION_RUNNING = -14, + XR_ERROR_SESSION_NOT_RUNNING = -16, + XR_ERROR_SESSION_LOST = -17, + XR_ERROR_SYSTEM_INVALID = -18, + XR_ERROR_PATH_INVALID = -19, + XR_ERROR_PATH_COUNT_EXCEEDED = -20, + XR_ERROR_PATH_FORMAT_INVALID = -21, + XR_ERROR_PATH_UNSUPPORTED = -22, + XR_ERROR_LAYER_INVALID = -23, + XR_ERROR_LAYER_LIMIT_EXCEEDED = -24, + XR_ERROR_SWAPCHAIN_RECT_INVALID = -25, + XR_ERROR_SWAPCHAIN_FORMAT_UNSUPPORTED = -26, + XR_ERROR_ACTION_TYPE_MISMATCH = -27, + XR_ERROR_SESSION_NOT_READY = -28, + XR_ERROR_SESSION_NOT_STOPPING = -29, + XR_ERROR_TIME_INVALID = -30, + XR_ERROR_REFERENCE_SPACE_UNSUPPORTED = -31, + XR_ERROR_FILE_ACCESS_ERROR = -32, + XR_ERROR_FILE_CONTENTS_INVALID = -33, + XR_ERROR_FORM_FACTOR_UNSUPPORTED = -34, + XR_ERROR_FORM_FACTOR_UNAVAILABLE = -35, + XR_ERROR_API_LAYER_NOT_PRESENT = -36, + XR_ERROR_CALL_ORDER_INVALID = -37, + XR_ERROR_GRAPHICS_DEVICE_INVALID = -38, + XR_ERROR_POSE_INVALID = -39, + XR_ERROR_INDEX_OUT_OF_RANGE = -40, + XR_ERROR_VIEW_CONFIGURATION_TYPE_UNSUPPORTED = -41, + XR_ERROR_ENVIRONMENT_BLEND_MODE_UNSUPPORTED = -42, + XR_ERROR_NAME_DUPLICATED = -44, + XR_ERROR_NAME_INVALID = -45, + XR_ERROR_ACTIONSET_NOT_ATTACHED = -46, + XR_ERROR_ACTIONSETS_ALREADY_ATTACHED = -47, + XR_ERROR_LOCALIZED_NAME_DUPLICATED = -48, + XR_ERROR_LOCALIZED_NAME_INVALID = -49, + XR_ERROR_GRAPHICS_REQUIREMENTS_CALL_MISSING = -50, + XR_ERROR_RUNTIME_UNAVAILABLE = -51, + XR_ERROR_ANDROID_THREAD_SETTINGS_ID_INVALID_KHR = -1000003000, + XR_ERROR_ANDROID_THREAD_SETTINGS_FAILURE_KHR = -1000003001, + XR_ERROR_CREATE_SPATIAL_ANCHOR_FAILED_MSFT = -1000039001, + XR_ERROR_SECONDARY_VIEW_CONFIGURATION_TYPE_NOT_ENABLED_MSFT = -1000053000, + XR_ERROR_CONTROLLER_MODEL_KEY_INVALID_MSFT = -1000055000, + XR_ERROR_REPROJECTION_MODE_UNSUPPORTED_MSFT = -1000066000, + XR_ERROR_COMPUTE_NEW_SCENE_NOT_COMPLETED_MSFT = -1000097000, + XR_ERROR_SCENE_COMPONENT_ID_INVALID_MSFT = -1000097001, + XR_ERROR_SCENE_COMPONENT_TYPE_MISMATCH_MSFT = -1000097002, + XR_ERROR_SCENE_MESH_BUFFER_ID_INVALID_MSFT = -1000097003, + XR_ERROR_SCENE_COMPUTE_FEATURE_INCOMPATIBLE_MSFT = -1000097004, + XR_ERROR_SCENE_COMPUTE_CONSISTENCY_MISMATCH_MSFT = -1000097005, + XR_ERROR_DISPLAY_REFRESH_RATE_UNSUPPORTED_FB = -1000101000, + XR_ERROR_COLOR_SPACE_UNSUPPORTED_FB = -1000108000, + XR_ERROR_SPATIAL_ANCHOR_NAME_NOT_FOUND_MSFT = -1000142001, + XR_ERROR_SPATIAL_ANCHOR_NAME_INVALID_MSFT = -1000142002, + XR_ERROR_PERSISTED_ANCHOR_NAME_NOT_FOUND_HTC = -1000324000, + XR_ERROR_PERSISTED_ANCHOR_DUPLICATED_HTC = -1000324001, + XR_ERROR_FUTURE_PENDING_EXT = -1000469001, + XR_ERROR_FUTURE_INVALID_EXT = -1000469002, + XR_RESULT_MAX_ENUM = 0x7FFFFFFF } /// - /// The XrEyeVisibility enum selects which of the viewer’s eyes to display a layer. + /// Defines values, each of which corresponds to a specific OpenXR handle type. These values can be used to associate debug information with a particular type of object through one or more extensions. /// - public enum XrEyeVisibility + public enum XrObjectType { - /// - /// Displays the layer to both eyes. - /// - XR_EYE_VISIBILITY_BOTH = 0, - /// - /// Displays the layer to the viewer’s physical left eye. - /// - XR_EYE_VISIBILITY_LEFT = 1, - /// - /// Displays the layer to the viewer’s physical right eye. - /// - XR_EYE_VISIBILITY_RIGHT = 2, - XR_EYE_VISIBILITY_MAX_ENUM = 0x7FFFFFFF - } - /// - /// The possible blend modes are specified by the XrEnvironmentBlendMode enumeration. - /// - public enum XrEnvironmentBlendMode - { - /// - /// The composition layers will be displayed with no view of the physical world behind them. The composited image will be interpreted as an RGB image, ignoring the composited alpha channel. This is the typical mode for VR experiences, although this mode can also be supported on devices that support video passthrough. - /// - XR_ENVIRONMENT_BLEND_MODE_OPAQUE = 1, - /// - /// The composition layers will be additively blended with the real world behind the display. The composited image will be interpreted as an RGB image, ignoring the composited alpha channel during the additive blending. This will cause black composited pixels to appear transparent. This is the typical mode for an AR experience on a see-through headset with an additive display, although this mode can also be supported on devices that support video passthrough. - /// - XR_ENVIRONMENT_BLEND_MODE_ADDITIVE = 2, - /// - /// The composition layers will be alpha-blended with the real world behind the display. The composited image will be interpreted as an RGBA image, with the composited alpha channel determining each pixel’s level of blending with the real world behind the display. This is the typical mode for an AR experience on a phone or headset that supports video passthrough. - /// - XR_ENVIRONMENT_BLEND_MODE_ALPHA_BLEND = 3, - XR_ENVIRONMENT_BLEND_MODE_MAX_ENUM = 0x7FFFFFFF - } - /// - /// The XrSessionState enumerates the possible session lifecycle states. - /// - public enum XrSessionState - { - /// - /// An unknown state. The runtime must not return this value in an XrEventDataSessionStateChanged event. - /// - XR_SESSION_STATE_UNKNOWN = 0, - /// - /// The initial state after calling xrCreateSession or returned to after calling xrCreateSession. - /// - XR_SESSION_STATE_IDLE = 1, - /// - /// The application is ready to call xrBeginSession and sync its frame loop with the runtime. - /// - XR_SESSION_STATE_READY = 2, - /// - /// The application has synced its frame loop with the runtime but is not visible to the user. - /// - XR_SESSION_STATE_SYNCHRONIZED = 3, - /// - /// The application has synced its frame loop with the runtime and is visible to the user but cannot receive XR input. - /// - XR_SESSION_STATE_VISIBLE = 4, - /// - /// The application has synced its frame loop with the runtime, is visible to the user and can receive XR input. - /// - XR_SESSION_STATE_FOCUSED = 5, - /// - /// The application should exit its frame loop and call xrEndSession. - /// - XR_SESSION_STATE_STOPPING = 6, - /// - /// The session is in the process of being lost. The application should destroy the current session and can optionally recreate it. - /// - XR_SESSION_STATE_LOSS_PENDING = 7, - /// - /// The application should end its XR experience and not automatically restart it. - /// - XR_SESSION_STATE_EXITING = 8, - XR_SESSION_STATE_MAX_ENUM = 0x7FFFFFFF - } - public struct XrVector2f - { - public float x; - public float y; - public XrVector2f(float in_w, float in_y) - { - x = in_w; - y = in_y; - } - } - /// - /// A three-dimensional vector is defined by the XrVector3f structure. - /// - public struct XrVector3f - { - /// - /// The x coordinate of the vector. - /// - public float x; - /// - /// The y coordinate of the vector. - /// - public float y; - /// - /// The z coordinate of the vector. - /// - public float z; - /// The x coordinate of the vector. - /// The y coordinate of the vector. - /// The z coordinate of the vector. - public XrVector3f(float in_x, float in_y, float in_z) - { - x = in_x; - y = in_y; - z = in_z; - } - public static XrVector3f Zero => new XrVector3f(0, 0, 0); - public static XrVector3f One => new XrVector3f(1, 1, 1); - public static XrVector3f Up => new XrVector3f(0, 1, 0); - public static XrVector3f Forward => new XrVector3f(0, 0, 1); - public static XrVector3f Right => new XrVector3f(1, 0, 0); - - } - /// - /// Rotation is represented by a unit quaternion defined by the XrQuaternionf structure. - /// - public struct XrQuaternionf - { - /// - /// The x coordinate of the quaternion. - /// - public float x; - /// - /// The y coordinate of the quaternion. - /// - public float y; - /// - /// The z coordinate of the quaternion. - /// - public float z; - /// - /// The w coordinate of the quaternion. - /// - public float w; - /// The x coordinate of the quaternion. - /// The y coordinate of the quaternion. - /// The z coordinate of the quaternion. - /// The w coordinate of the quaternion. - public XrQuaternionf(float in_x, float in_y, float in_z, float in_w) - { - x = in_x; - y = in_y; - z = in_z; - w = in_w; - } - public static XrQuaternionf Identity => new XrQuaternionf(0, 0, 0, 1); - } - /// - /// Unless otherwise specified, colors are encoded as linear (not with sRGB nor other gamma compression) values with individual components being in the range of 0.0 through 1.0, and without the RGB components being premultiplied by the alpha component. - /// - /// If color encoding is specified as being premultiplied by the alpha component, the RGB components are set to zero if the alpha component is zero. - /// - public struct XrColor4f - { - /// - /// The red component of the color. - /// - public float r; - /// - /// The green component of the color. - /// - public float g; - /// - /// The blue component of the color. - /// - public float b; - /// - /// The alpha component of the color. - /// - public float a; - /// The red component of the color. - /// The green component of the color. - /// The blue component of the color. - /// The alpha component of the color. - public XrColor4f(float in_r, float in_g, float in_b, float in_a) - { - r = in_r; - g = in_g; - b = in_b; - a = in_a; - } - } - /// - /// A two-dimensional floating-point extent is defined by XrExtent2Df. - /// - public struct XrExtent2Df - { - /// - /// The floating-point width of the extent. - /// - public float width; - /// - /// The floating-point height of the extent. - /// - public float height; - /// The floating-point width of the extent. - /// The floating-point height of the extent. - public XrExtent2Df(float in_width, float in_height) - { - width = in_width; - height = in_height; - } - } - /// - /// A rectangle with integer values is defined by the XrRect2Di. - /// - public struct XrRect2Di - { - /// - /// The XrOffset2Di specifying the integer rectangle offset. - /// - public XrOffset2Di offset; - /// - /// The XrExtent2Di specifying the integer rectangle extent. - /// - public XrExtent2Di extent; - /// The XrOffset2Di specifying the integer rectangle offset. - /// The XrExtent2Di specifying the integer rectangle extent. - public XrRect2Di(XrOffset2Di in_offset, XrExtent2Di in_extent) - { - offset = in_offset; - extent = in_extent; - } - } - /// - /// A two-dimensional integer extent is defined by the XrExtent2Di. - /// - public struct XrExtent2Di - { - /// - /// The integer width of the extent. - /// - public int width; - /// - /// The integer height of the extent. - /// - public int height; - /// The integer width of the extent. - /// The integer height of the extent. - public XrExtent2Di(int in_width, int in_height) - { - width = in_width; - height = in_height; - } - } - /// - /// An integer offset is defined by the XrOffset2Di. - /// - public struct XrOffset2Di - { - /// - /// The integer offset in the x direction. - /// - public int x; - /// - /// The integer offset in the y direction. - /// - public int y; - /// The integer offset in the x direction. - /// The integer offset in the y direction. - public XrOffset2Di(int in_x, int in_y) - { - x = in_x; - y = in_y; - } - } - /// - /// A pose is defined by the XrPosef structure. - /// - public struct XrPosef - { - /// - /// An XrQuaternionf representing the orientation within a space. - /// - public XrQuaternionf orientation; - /// - /// An XrVector3f representing position within a space. - /// - public XrVector3f position; - public XrPosef(XrQuaternionf in_orientation, XrVector3f in_position) - { - orientation = in_orientation; - position = in_position; - } - public static XrPosef Identity => new XrPosef(XrQuaternionf.Identity, XrVector3f.Zero); - } - - /// - /// Field of view (FoV) is defined by the XrFovf structure. - /// - public struct XrFovf - { - public float angleLeft; - public float angleRight; - public float angleUp; - public float angleDown; - } - - /// - /// Boolean values used by OpenXR are of type XrBool32 and are 32-bits wide as suggested by the name. - /// - public struct XrBool32 : IEquatable - { - private readonly UInt32 value; - - public XrBool32(UInt32 u) - { - value = u; - } - - public static implicit operator UInt32(XrBool32 equatable) - { - return equatable.value; - } - public static implicit operator XrBool32(UInt32 u) - { - return new XrBool32(u); - } - public static implicit operator bool(XrBool32 equatable) - { - return equatable.value > 0; - } - public static implicit operator XrBool32(bool b) - { - return b ? new XrBool32(1) : new XrBool32(0); - } - - public bool Equals(XrBool32 other) - { - return value == other.value; - } - public bool Equals(UInt32 other) - { - return value == other; - } - public override bool Equals(object obj) - { - return obj is XrBool32 && Equals((XrBool32)obj); - } - - public override int GetHashCode() - { - return value.GetHashCode(); - } - - public override string ToString() - { - return value.ToString(); - } - - public static bool operator ==(XrBool32 a, XrBool32 b) { return a.Equals(b); } - public static bool operator !=(XrBool32 a, XrBool32 b) { return !a.Equals(b); } - public static bool operator >=(XrBool32 a, XrBool32 b) { return a.value >= b.value; } - public static bool operator <=(XrBool32 a, XrBool32 b) { return a.value <= b.value; } - public static bool operator >(XrBool32 a, XrBool32 b) { return a.value > b.value; } - public static bool operator <(XrBool32 a, XrBool32 b) { return a.value < b.value; } - public static XrBool32 operator +(XrBool32 a, XrBool32 b) { return a.value + b.value; } - public static XrBool32 operator -(XrBool32 a, XrBool32 b) { return a.value - b.value; } - public static XrBool32 operator *(XrBool32 a, XrBool32 b) { return a.value * b.value; } - public static XrBool32 operator /(XrBool32 a, XrBool32 b) - { - if (b.value == 0) - { - throw new DivideByZeroException(); - } - return a.value / b.value; - } - - } - /// - /// Bitmasks are passed to many functions and structures to compactly represent options and are stored in memory defined by the XrFlags64 type. But the API does not use the XrFlags64 type directly. Instead, a Xr*Flags type is used which is an alias of the XrFlags64 type. The API also defines a set of constant bit definitions used to set the bitmasks. - /// - public struct XrFlags64 : IEquatable - { - private readonly UInt64 value; - - public XrFlags64(UInt64 u) - { - value = u; - } - - public static implicit operator UInt64(XrFlags64 equatable) - { - return equatable.value; - } - public static implicit operator XrFlags64(UInt64 u) - { - return new XrFlags64(u); - } - - public bool Equals(XrFlags64 other) - { - return value == other.value; - } - public bool Equals(UInt64 other) - { - return value == other; - } - public override bool Equals(object obj) - { - return obj is XrFlags64 && Equals((XrFlags64)obj); - } - - public override int GetHashCode() - { - return value.GetHashCode(); - } - - public override string ToString() - { - return value.ToString(); - } - - public static bool operator ==(XrFlags64 a, XrFlags64 b) { return a.Equals(b); } - public static bool operator !=(XrFlags64 a, XrFlags64 b) { return !a.Equals(b); } - public static bool operator >=(XrFlags64 a, XrFlags64 b) { return a.value >= b.value; } - public static bool operator <=(XrFlags64 a, XrFlags64 b) { return a.value <= b.value; } - public static bool operator >(XrFlags64 a, XrFlags64 b) { return a.value > b.value; } - public static bool operator <(XrFlags64 a, XrFlags64 b) { return a.value < b.value; } - public static XrFlags64 operator +(XrFlags64 a, XrFlags64 b) { return a.value + b.value; } - public static XrFlags64 operator -(XrFlags64 a, XrFlags64 b) { return a.value - b.value; } - public static XrFlags64 operator *(XrFlags64 a, XrFlags64 b) { return a.value * b.value; } - public static XrFlags64 operator /(XrFlags64 a, XrFlags64 b) - { - if (b.value == 0) - { - throw new DivideByZeroException(); - } - return a.value / b.value; - } - - } - /// - /// An OpenXR instance is an object that allows an OpenXR application to communicate with an OpenXR runtime. The application accomplishes this communication by calling xrCreateInstance and receiving a handle to the resulting XrInstance object. - /// - /// The XrInstance object stores and tracks OpenXR-related application state, without storing any such state in the application’s global address space. This allows the application to create multiple instances as well as safely encapsulate the application’s OpenXR state since this object is opaque to the application. OpenXR runtimes may limit the number of simultaneous XrInstance objects that may be created and used, but they must support the creation and usage of at least one XrInstance object per process. - /// - public struct XrInstance : IEquatable - { - private readonly ulong value; - - public XrInstance(ulong u) - { - value = u; - } - - public static implicit operator ulong(XrInstance equatable) - { - return equatable.value; - } - public static implicit operator XrInstance(ulong u) - { - return new XrInstance(u); - } - - public bool Equals(XrInstance other) - { - return value == other.value; - } - public bool Equals(ulong other) - { - return value == other; - } - public override bool Equals(object obj) - { - return obj is XrInstance && Equals((XrInstance)obj); - } - - public override int GetHashCode() - { - return value.GetHashCode(); - } - - public override string ToString() - { - return value.ToString(); - } - - public static bool operator ==(XrInstance a, XrInstance b) { return a.Equals(b); } - public static bool operator !=(XrInstance a, XrInstance b) { return !a.Equals(b); } - public static bool operator >=(XrInstance a, XrInstance b) { return a.value >= b.value; } - public static bool operator <=(XrInstance a, XrInstance b) { return a.value <= b.value; } - public static bool operator >(XrInstance a, XrInstance b) { return a.value > b.value; } - public static bool operator <(XrInstance a, XrInstance b) { return a.value < b.value; } - public static XrInstance operator +(XrInstance a, XrInstance b) { return a.value + b.value; } - public static XrInstance operator -(XrInstance a, XrInstance b) { return a.value - b.value; } - public static XrInstance operator *(XrInstance a, XrInstance b) { return a.value * b.value; } - public static XrInstance operator /(XrInstance a, XrInstance b) - { - if (b.value == 0) - { - throw new DivideByZeroException(); - } - return a.value / b.value; - } - - } - /// - /// A session represents an application’s intention to display XR content to the user. - /// - /// Refer to Session Lifecycle for more details. - /// - public struct XrSession : IEquatable - { - private readonly ulong value; - - public XrSession(ulong u) - { - value = u; - } - - public static implicit operator ulong(XrSession equatable) - { - return equatable.value; - } - public static implicit operator XrSession(ulong u) - { - return new XrSession(u); - } - - public bool Equals(XrSession other) - { - return value == other.value; - } - public bool Equals(ulong other) - { - return value == other; - } - public override bool Equals(object obj) - { - return obj is XrSession && Equals((XrSession)obj); - } - - public override int GetHashCode() - { - return value.GetHashCode(); - } - - public override string ToString() - { - return value.ToString(); - } - - public static bool operator ==(XrSession a, XrSession b) { return a.Equals(b); } - public static bool operator !=(XrSession a, XrSession b) { return !a.Equals(b); } - public static bool operator >=(XrSession a, XrSession b) { return a.value >= b.value; } - public static bool operator <=(XrSession a, XrSession b) { return a.value <= b.value; } - public static bool operator >(XrSession a, XrSession b) { return a.value > b.value; } - public static bool operator <(XrSession a, XrSession b) { return a.value < b.value; } - public static XrSession operator +(XrSession a, XrSession b) { return a.value + b.value; } - public static XrSession operator -(XrSession a, XrSession b) { return a.value - b.value; } - public static XrSession operator *(XrSession a, XrSession b) { return a.value * b.value; } - public static XrSession operator /(XrSession a, XrSession b) - { - if (b.value == 0) - { - throw new DivideByZeroException(); - } - return a.value / b.value; - } - - } - /// - /// Across both virtual reality and augmented reality, XR applications have a core need to map the location of virtual objects to the corresponding real-world locations where they will be rendered. Spaces allow applications to explicitly create and specify the frames of reference in which they choose to track the real world, and then determine how those frames of reference move relative to one another over time. - /// - /// Spaces are represented by XrSpace handles, which the application creates and then uses in API calls. Whenever an application calls a function that returns coordinates, it provides an XrSpace to specify the frame of reference in which those coordinates will be expressed. Similarly, when providing coordinates to a function, the application specifies which XrSpace the runtime should use to interpret those coordinates. - /// - /// OpenXR defines a set of well-known reference spaces that applications use to bootstrap their spatial reasoning. These reference spaces are: VIEW, LOCAL and STAGE. Each reference space has a well-defined meaning, which establishes where its origin is positioned and how its axes are oriented. - /// - /// Runtimes whose tracking systems improve their understanding of the world over time may track spaces independently. For example, even though a LOCAL space and a STAGE space each map their origin to a static position in the world, a runtime with an inside-out tracking system may introduce slight adjustments to the origin of each space on a continuous basis to keep each origin in place. - /// - /// Beyond well-known reference spaces, runtimes expose other independently-tracked spaces, such as a pose action space that tracks the pose of a motion controller over time. - /// - /// When one or both spaces are tracking a dynamic object, passing in an updated time to xrLocateSpace each frame will result in an updated relative pose. For example, the location of the left hand’s pose action space in the STAGE reference space will change each frame as the user’s hand moves relative to the stage’s predefined origin on the floor. In other XR APIs, it is common to report the "pose" of an object relative to some presumed underlying global space. This API is careful to not explicitly define such an underlying global space, because it does not apply to all systems. Some systems will support no STAGE space, while others may support a STAGE space that switches between various physical stages with dynamic availability. To satisfy this wide variability, "poses" are always described as the relationship between two spaces. - /// - /// Some devices improve their understanding of the world as the device is used. The location returned by xrLocateSpace in later frames may change over time, even for spaces that track static objects, as either the target space or base space adjusts its origin. - /// - /// Composition layers submitted by the application include an XrSpace for the runtime to use to position that layer over time. Composition layers whose XrSpace is relative to the VIEW reference space are implicitly "head-locked", even if they may not be "display-locked" for non-head-mounted form factors. - /// - public struct XrSpace : IEquatable - { - private readonly ulong value; - - public XrSpace(ulong u) - { - value = u; - } - - public static implicit operator ulong(XrSpace equatable) - { - return equatable.value; - } - public static implicit operator XrSpace(ulong u) - { - return new XrSpace(u); - } - - public bool Equals(XrSpace other) - { - return value == other.value; - } - public bool Equals(ulong other) - { - return value == other; - } - public override bool Equals(object obj) - { - return obj is XrSpace && Equals((XrSpace)obj); - } - - public override int GetHashCode() - { - return value.GetHashCode(); - } - - public override string ToString() - { - return value.ToString(); - } - - public static bool operator ==(XrSpace a, XrSpace b) { return a.Equals(b); } - public static bool operator !=(XrSpace a, XrSpace b) { return !a.Equals(b); } - public static bool operator >=(XrSpace a, XrSpace b) { return a.value >= b.value; } - public static bool operator <=(XrSpace a, XrSpace b) { return a.value <= b.value; } - public static bool operator >(XrSpace a, XrSpace b) { return a.value > b.value; } - public static bool operator <(XrSpace a, XrSpace b) { return a.value < b.value; } - public static XrSpace operator +(XrSpace a, XrSpace b) { return a.value + b.value; } - public static XrSpace operator -(XrSpace a, XrSpace b) { return a.value - b.value; } - public static XrSpace operator *(XrSpace a, XrSpace b) { return a.value * b.value; } - public static XrSpace operator /(XrSpace a, XrSpace b) - { - if (b.value == 0) - { - throw new DivideByZeroException(); - } - return a.value / b.value; - } - - } - /// - /// The XrPath is an atom that connects an application with a single path, within the context of a single instance. There is a bijective mapping between well-formed path strings and atoms in use. This atom is used — in place of the path name string it corresponds to — to retrieve state and perform other operations. - /// - /// As an XrPath is only shorthand for a well-formed path string, they have no explicit life cycle. - /// - /// Lifetime is implicitly managed by the XrInstance.An XrPath must not be used unless it is received at execution time from the runtime in the context of a particular XrInstance. Therefore, with the exception of XR_NULL_PATH, XrPath values must not be specified as constant values in applications: the corresponding path string should be used instead.During the lifetime of a given XrInstance, the XrPath associated with that instance with any given well-formed path must not vary, and similarly the well-formed path string that corresponds to a given XrPath in that instance must not vary.An XrPath that is received from one XrInstance may not be used with another. Such an invalid use may be detected and result in an error being returned, or it may result in undefined behavior. - /// - /// Well-written applications should typically use a small, bounded set of paths in practice.However, the runtime should support looking up the XrPath for a large number of path strings for maximum compatibility. Runtime implementers should keep in mind that applications supporting diverse systems may look up path strings in a quantity exceeding the number of non-empty entities predicted or provided by any one runtime’s own path tree model, and this is not inherently an error. However, system resources are finite and thus runtimes may signal exhaustion of resources dedicated to these associations under certain conditions. - /// - /// When discussing the behavior of runtimes at these limits, a new XrPath refers to an XrPath value that, as of some point in time, has neither been received by the application nor tracked internally by the runtime.In this case, since an application has not yet received the value of such an XrPath, the runtime has not yet made any assertions about its association with any path string. In this context, new only refers to the fact that the mapping has not necessarily been made constant for a given value/path string pair for the remaining life of the associated instance by being revealed to the application.It does not necessarily imply creation of the entity, if any, referred to by such a path.Similarly, it does not imply the absence of such an entity prior to that point. Entities in the path tree have varied lifetime that is independent from the duration of the mapping from path string to XrPath. - /// - /// For flexibility, the runtime may internally track or otherwise make constant, in instance or larger scope, any mapping of a path string to an XrPath value even before an application would otherwise receive that value, thus making it no longer new by the above definition. - /// - /// When the runtime’s resources to track the path string-XrPath mapping are exhausted, and the application makes an API call that would have otherwise retrieved a new XrPath as defined above, the runtime must return XR_ERROR_PATH_COUNT_EXCEEDED.This includes both explicit calls to xrStringToPath as well as other calls that retrieve an XrPath in any other way. - /// - public struct XrPath : IEquatable - { - private readonly UInt64 value; - - public XrPath(UInt64 u) - { - value = u; - } - - public static implicit operator UInt64(XrPath equatable) - { - return equatable.value; - } - public static implicit operator XrPath(UInt64 u) - { - return new XrPath(u); - } - - public bool Equals(XrPath other) - { - return value == other.value; - } - public bool Equals(UInt64 other) - { - return value == other; - } - public override bool Equals(object obj) - { - return obj is XrPath && Equals((XrPath)obj); - } - - public override int GetHashCode() - { - return value.GetHashCode(); - } - - public override string ToString() - { - return value.ToString(); - } - - public static bool operator ==(XrPath a, XrPath b) { return a.Equals(b); } - public static bool operator !=(XrPath a, XrPath b) { return !a.Equals(b); } - public static bool operator >=(XrPath a, XrPath b) { return a.value >= b.value; } - public static bool operator <=(XrPath a, XrPath b) { return a.value <= b.value; } - public static bool operator >(XrPath a, XrPath b) { return a.value > b.value; } - public static bool operator <(XrPath a, XrPath b) { return a.value < b.value; } - public static XrPath operator +(XrPath a, XrPath b) { return a.value + b.value; } - public static XrPath operator -(XrPath a, XrPath b) { return a.value - b.value; } - public static XrPath operator *(XrPath a, XrPath b) { return a.value * b.value; } - public static XrPath operator /(XrPath a, XrPath b) - { - if (b.value == 0) - { - throw new DivideByZeroException(); - } - return a.value / b.value; - } - - } - /// - /// Action sets are application-defined collections of actions. They are attached to a given XrSession with a xrAttachSessionActionSets call. They are enabled or disabled by the application via xrSyncActions depending on the current application context. For example, a game may have one set of actions that apply to controlling a character and another set for navigating a menu system. When these actions are grouped into two XrActionSet handles they can be selectively enabled and disabled using a single function call. - /// - public struct XrActionSet : IEquatable - { - private readonly UInt64 value; - - public XrActionSet(UInt64 u) - { - value = u; - } - - public static implicit operator UInt64(XrActionSet equatable) - { - return equatable.value; - } - public static implicit operator XrActionSet(UInt64 u) - { - return new XrActionSet(u); - } - - public bool Equals(XrActionSet other) - { - return value == other.value; - } - public bool Equals(UInt64 other) - { - return value == other; - } - public override bool Equals(object obj) - { - return obj is XrActionSet && Equals((XrActionSet)obj); - } - - public override int GetHashCode() - { - return value.GetHashCode(); - } - - public override string ToString() - { - return value.ToString(); - } - - public static bool operator ==(XrActionSet a, XrActionSet b) { return a.Equals(b); } - public static bool operator !=(XrActionSet a, XrActionSet b) { return !a.Equals(b); } - public static bool operator >=(XrActionSet a, XrActionSet b) { return a.value >= b.value; } - public static bool operator <=(XrActionSet a, XrActionSet b) { return a.value <= b.value; } - public static bool operator >(XrActionSet a, XrActionSet b) { return a.value > b.value; } - public static bool operator <(XrActionSet a, XrActionSet b) { return a.value < b.value; } - public static XrActionSet operator +(XrActionSet a, XrActionSet b) { return a.value + b.value; } - public static XrActionSet operator -(XrActionSet a, XrActionSet b) { return a.value - b.value; } - public static XrActionSet operator *(XrActionSet a, XrActionSet b) { return a.value * b.value; } - public static XrActionSet operator /(XrActionSet a, XrActionSet b) - { - if (b.value == 0) - { - throw new DivideByZeroException(); - } - return a.value / b.value; - } - - } - /// - /// Action handles are used to refer to individual actions when retrieving action data, creating action spaces, or sending haptic events. - /// - public struct XrAction : IEquatable - { - private readonly UInt64 value; - - public XrAction(UInt64 u) - { - value = u; - } - - public static implicit operator UInt64(XrAction equatable) - { - return equatable.value; - } - public static implicit operator XrAction(UInt64 u) - { - return new XrAction(u); - } - - public bool Equals(XrAction other) - { - return value == other.value; - } - public bool Equals(UInt64 other) - { - return value == other; - } - public override bool Equals(object obj) - { - return obj is XrAction && Equals((XrAction)obj); - } - - public override int GetHashCode() - { - return value.GetHashCode(); - } - - public override string ToString() - { - return value.ToString(); - } - - public static bool operator ==(XrAction a, XrAction b) { return a.Equals(b); } - public static bool operator !=(XrAction a, XrAction b) { return !a.Equals(b); } - public static bool operator >=(XrAction a, XrAction b) { return a.value >= b.value; } - public static bool operator <=(XrAction a, XrAction b) { return a.value <= b.value; } - public static bool operator >(XrAction a, XrAction b) { return a.value > b.value; } - public static bool operator <(XrAction a, XrAction b) { return a.value < b.value; } - public static XrAction operator +(XrAction a, XrAction b) { return a.value + b.value; } - public static XrAction operator -(XrAction a, XrAction b) { return a.value - b.value; } - public static XrAction operator *(XrAction a, XrAction b) { return a.value * b.value; } - public static XrAction operator /(XrAction a, XrAction b) - { - if (b.value == 0) - { - throw new DivideByZeroException(); - } - return a.value / b.value; - } - - } - - - /// - /// Flag bits for XrSpaceLocationFlags. - /// - [Flags] - public enum XrSpaceLocationFlags : UInt64 - { - /// - /// XrSpaceLocationFlags bitmask 0x00000001 indicates the XrSpace's orientation is valid. - /// - XR_SPACE_LOCATION_ORIENTATION_VALID_BIT = 0x00000001, - /// - /// XrSpaceLocationFlags bitmask 0x00000002 indicates the XrSpace's position is valid. - /// - XR_SPACE_LOCATION_POSITION_VALID_BIT = 0x00000002, - /// - /// XrSpaceLocationFlags bitmask 0x00000004 indicates the XrSpace's orientation is tracked. - /// - XR_SPACE_LOCATION_ORIENTATION_TRACKED_BIT = 0x00000004, - /// - /// XrSpaceLocationFlags bitmask 0x00000008 indicates the XrSpace's position is tracked - /// - XR_SPACE_LOCATION_POSITION_TRACKED_BIT = 0x00000008, - } - - public struct XrSpaceLocation - { - public XrStructureType type; - public System.IntPtr next; - public XrSpaceLocationFlags locationFlags; - public XrPosef pose; - } - - [Flags] - public enum XrInputSourceLocalizedNameFlags : UInt64 - { - /// - /// XrInputSourceLocalizedNameFlags bitmask 0x00000001 indicates that the runtime must include the user path portion of the string in the result, if available. E.g. Left Hand. - /// - XR_INPUT_SOURCE_LOCALIZED_NAME_USER_PATH_BIT = 0x00000001, - /// - /// XrInputSourceLocalizedNameFlags bitmask 0x00000002 indicates that the runtime must include the interaction profile portion of the string in the result, if available. E.g. Vive Controller. - /// - XR_INPUT_SOURCE_LOCALIZED_NAME_INTERACTION_PROFILE_BIT = 0x00000002, - /// - /// XrInputSourceLocalizedNameFlags bitmask 0x00000004 indicates that the runtime must include the input component portion of the string in the result, if available. E.g. Trigger. - /// - XR_INPUT_SOURCE_LOCALIZED_NAME_COMPONENT_BIT = 0x00000004, - - XR_INPUT_SOURCE_LOCALIZED_NAME_SERIAL_NUMBER_BIT_HTC = 0x1000000000000000, - } - - public enum XrActionType : UInt64 - { - XR_ACTION_TYPE_BOOLEAN_INPUT = 1, - XR_ACTION_TYPE_FLOAT_INPUT = 2, - XR_ACTION_TYPE_VECTOR2F_INPUT = 3, - XR_ACTION_TYPE_POSE_INPUT = 4, - XR_ACTION_TYPE_VIBRATION_OUTPUT = 100, - XR_ACTION_TYPE_MAX_ENUM = 0x7FFFFFFF - } - - /// - /// An XrSystemId is an opaque atom used by the runtime to identify a system. The value XR_NULL_SYSTEM_ID is considered an invalid system. - /// - public struct XrSystemId : IEquatable - { - private readonly ulong value; - - public XrSystemId(ulong u) - { - value = u; - } - - public static implicit operator ulong(XrSystemId equatable) - { - return equatable.value; - } - public static implicit operator XrSystemId(ulong u) - { - return new XrSystemId(u); - } - - public bool Equals(XrSystemId other) - { - return value == other.value; - } - public bool Equals(ulong other) - { - return value == other; - } - public override bool Equals(object obj) - { - return obj is XrSystemId && Equals((XrSystemId)obj); - } - - public override int GetHashCode() - { - return value.GetHashCode(); - } - - public override string ToString() - { - return value.ToString(); - } - - public static bool operator ==(XrSystemId a, XrSystemId b) { return a.Equals(b); } - public static bool operator !=(XrSystemId a, XrSystemId b) { return !a.Equals(b); } - public static bool operator >=(XrSystemId a, XrSystemId b) { return a.value >= b.value; } - public static bool operator <=(XrSystemId a, XrSystemId b) { return a.value <= b.value; } - public static bool operator >(XrSystemId a, XrSystemId b) { return a.value > b.value; } - public static bool operator <(XrSystemId a, XrSystemId b) { return a.value < b.value; } - public static XrSystemId operator +(XrSystemId a, XrSystemId b) { return a.value + b.value; } - public static XrSystemId operator -(XrSystemId a, XrSystemId b) { return a.value - b.value; } - public static XrSystemId operator *(XrSystemId a, XrSystemId b) { return a.value * b.value; } - public static XrSystemId operator /(XrSystemId a, XrSystemId b) - { - if (b.value == 0) - { - throw new DivideByZeroException(); - } - return a.value / b.value; - } - + XR_OBJECT_TYPE_UNKNOWN = 0, + XR_OBJECT_TYPE_INSTANCE = 1, + XR_OBJECT_TYPE_SESSION = 2, + XR_OBJECT_TYPE_SWAPCHAIN = 3, + XR_OBJECT_TYPE_SPACE = 4, + XR_OBJECT_TYPE_ACTION_SET = 5, + XR_OBJECT_TYPE_ACTION = 6, + XR_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000019000, + XR_OBJECT_TYPE_SPATIAL_ANCHOR_MSFT = 1000039000, + XR_OBJECT_TYPE_HAND_TRACKER_EXT = 1000051000, + XR_OBJECT_TYPE_SCENE_OBSERVER_MSFT = 1000097000, + XR_OBJECT_TYPE_SCENE_MSFT = 1000097001, + XR_OBJECT_TYPE_FACIAL_TRACKER_HTC = 1000104000, + XR_OBJECT_TYPE_FOVEATION_PROFILE_FB = 1000114000, + XR_OBJECT_TYPE_TRIANGLE_MESH_FB = 1000117000, + XR_OBJECT_TYPE_PASSTHROUGH_FB = 1000118000, + XR_OBJECT_TYPE_PASSTHROUGH_LAYER_FB = 1000118002, + XR_OBJECT_TYPE_GEOMETRY_INSTANCE_FB = 1000118004, + XR_ERROR_PERSISTED_ANCHOR_NAME_NOT_FOUND_HTC = -1000324000, + XR_ERROR_PERSISTED_ANCHOR_DUPLICATED_HTC = -1000324001, + XR_ERROR_FUTURE_PENDING_EXT = -1000469001, + XR_ERROR_FUTURE_INVALID_EXT = -1000469002, + XR_OBJECT_TYPE_MAX_ENUM = 0x7FFFFFFF } /// /// XrTime is a base value type that represents time as a signed 64-bit integer, representing the monotonically-increasing count of nanoseconds that have elapsed since a runtime-chosen epoch. XrTime always represents the time elasped since that constant epoch, rather than a duration or a time point relative to some moving epoch such as vsync time, etc. @@ -1427,8 +447,7 @@ namespace VIVE.OpenXR } } /// - /// The difference between two timepoints is a duration, and thus the difference between two XrTime values is an XrDuration value. - /// + /// The difference between two timepoints is a duration, and thus the difference between two XrTime values is an XrDuration value.

/// Functions that refer to durations use XrDuration as opposed to XrTime. ///
public struct XrDuration : IEquatable @@ -1490,72 +509,1004 @@ namespace VIVE.OpenXR return a.value / b.value; } } + /// + /// Unless otherwise specified, colors are encoded as linear (not with sRGB nor other gamma compression) values with individual components being in the range of 0.0 through 1.0, and without the RGB components being premultiplied by the alpha component.

+ /// If color encoding is specified as being premultiplied by the alpha component, the RGB components are set to zero if the alpha component is zero. + ///
+ public struct XrColor4f + { + /// + /// The red component of the color. + /// + public float r; + /// + /// The green component of the color. + /// + public float g; + /// + /// The blue component of the color. + /// + public float b; + /// + /// The alpha component of the color. + /// + public float a; + /// The red component of the color. + /// The green component of the color. + /// The blue component of the color. + /// The alpha component of the color. + public XrColor4f(float in_r, float in_g, float in_b, float in_a) + { + r = in_r; + g = in_g; + b = in_b; + a = in_a; + } + } - public struct XrSwapchain : IEquatable - { - private readonly ulong value; + #region 2.18. Coordinate System + /// + /// A two-dimensional vector is defined by the XrVector2f structure. + /// + public struct XrVector2f + { + public float x; + public float y; + public XrVector2f(float in_w, float in_y) + { + x = in_w; + y = in_y; + } + } + /// + /// A three-dimensional vector is defined by the XrVector3f structure. + /// + public struct XrVector3f + { + /// + /// The x coordinate of the vector. + /// + public float x; + /// + /// The y coordinate of the vector. + /// + public float y; + /// + /// The z coordinate of the vector. + /// + public float z; + /// The x coordinate of the vector. + /// The y coordinate of the vector. + /// The z coordinate of the vector. + public XrVector3f(float in_x, float in_y, float in_z) + { + x = in_x; + y = in_y; + z = in_z; + } + public static XrVector3f Zero => new XrVector3f(0, 0, 0); + public static XrVector3f One => new XrVector3f(1, 1, 1); + public static XrVector3f Up => new XrVector3f(0, 1, 0); + public static XrVector3f Forward => new XrVector3f(0, 0, 1); + public static XrVector3f Right => new XrVector3f(1, 0, 0); - public XrSwapchain(ulong u) - { - value = u; - } + } + /// + /// Rotation is represented by a unit quaternion defined by the XrQuaternionf structure. + /// + public struct XrQuaternionf + { + /// + /// The x coordinate of the quaternion. + /// + public float x; + /// + /// The y coordinate of the quaternion. + /// + public float y; + /// + /// The z coordinate of the quaternion. + /// + public float z; + /// + /// The w coordinate of the quaternion. + /// + public float w; + /// The x coordinate of the quaternion. + /// The y coordinate of the quaternion. + /// The z coordinate of the quaternion. + /// The w coordinate of the quaternion. + public XrQuaternionf(float in_x, float in_y, float in_z, float in_w) + { + x = in_x; + y = in_y; + z = in_z; + w = in_w; + } + public static XrQuaternionf Identity => new XrQuaternionf(0, 0, 0, 1); + } + /// + /// A pose is defined by the XrPosef structure. + /// + public struct XrPosef + { + /// + /// An XrQuaternionf representing the orientation within a space. + /// + public XrQuaternionf orientation; + /// + /// An XrVector3f representing position within a space. + /// + public XrVector3f position; + public XrPosef(XrQuaternionf in_orientation, XrVector3f in_position) + { + orientation = in_orientation; + position = in_position; + } + public static XrPosef Identity => new XrPosef(XrQuaternionf.Identity, XrVector3f.Zero); + } + #endregion - public static implicit operator ulong(XrSwapchain xrBool) - { - return xrBool.value; - } - public static implicit operator XrSwapchain(ulong u) - { - return new XrSwapchain(u); - } + #region 2.19. Common Data Types + /// + /// An integer offset is defined by the XrOffset2Di. + /// + public struct XrOffset2Di + { + /// + /// The integer offset in the x direction. + /// + public int x; + /// + /// The integer offset in the y direction. + /// + public int y; + /// The integer offset in the x direction. + /// The integer offset in the y direction. + public XrOffset2Di(int in_x, int in_y) + { + x = in_x; + y = in_y; + } + } + /// + /// A two-dimensional floating-point extent is defined by XrExtent2Df. + /// + public struct XrExtent2Df + { + /// + /// The floating-point width of the extent. + /// + public float width; + /// + /// The floating-point height of the extent. + /// + public float height; + /// The floating-point width of the extent. + /// The floating-point height of the extent. + public XrExtent2Df(float in_width, float in_height) + { + width = in_width; + height = in_height; + } + } + /// + /// A two-dimensional integer extent is defined by the XrExtent2Di. + /// + public struct XrExtent2Di + { + /// + /// The integer width of the extent. + /// + public int width; + /// + /// The integer height of the extent. + /// + public int height; + /// The integer width of the extent. + /// The integer height of the extent. + public XrExtent2Di(int in_width, int in_height) + { + width = in_width; + height = in_height; + } + } + /// + /// A rectangle with integer values is defined by the XrRect2Di. + /// + public struct XrRect2Di + { + /// + /// The XrOffset2Di specifying the integer rectangle offset. + /// + public XrOffset2Di offset; + /// + /// The XrExtent2Di specifying the integer rectangle extent. + /// + public XrExtent2Di extent; + /// The XrOffset2Di specifying the integer rectangle offset. + /// The XrExtent2Di specifying the integer rectangle extent. + public XrRect2Di(XrOffset2Di in_offset, XrExtent2Di in_extent) + { + offset = in_offset; + extent = in_extent; + } + } + #endregion - public bool Equals(XrSwapchain other) - { - return value == other.value; - } - public bool Equals(ulong other) - { - return value == other; - } - public override bool Equals(object obj) - { - return obj is XrSwapchain && Equals((XrSwapchain)obj); - } + /// + /// Field of view (FoV) is defined by the XrFovf structure. + /// + public struct XrFovf + { + public float angleLeft; + public float angleRight; + public float angleUp; + public float angleDown; + } + /// + /// Boolean values used by OpenXR are of type XrBool32 and are 32-bits wide as suggested by the name. + /// + public struct XrBool32 : IEquatable + { + private readonly UInt32 value; - public override int GetHashCode() - { - return value.GetHashCode(); - } + public XrBool32(UInt32 u) + { + value = u; + } - public override string ToString() - { - return value.ToString(); - } + public static implicit operator UInt32(XrBool32 equatable) + { + return equatable.value; + } + public static implicit operator XrBool32(UInt32 u) + { + return new XrBool32(u); + } + public static implicit operator bool(XrBool32 equatable) + { + return equatable.value > 0; + } + public static implicit operator XrBool32(bool b) + { + return b ? new XrBool32(1) : new XrBool32(0); + } - public static bool operator ==(XrSwapchain a, XrSwapchain b) { return a.Equals(b); } - public static bool operator !=(XrSwapchain a, XrSwapchain b) { return !a.Equals(b); } - public static bool operator >=(XrSwapchain a, XrSwapchain b) { return a.value >= b.value; } - public static bool operator <=(XrSwapchain a, XrSwapchain b) { return a.value <= b.value; } - public static bool operator >(XrSwapchain a, XrSwapchain b) { return a.value > b.value; } - public static bool operator <(XrSwapchain a, XrSwapchain b) { return a.value < b.value; } - public static XrSwapchain operator +(XrSwapchain a, XrSwapchain b) { return a.value + b.value; } - public static XrSwapchain operator -(XrSwapchain a, XrSwapchain b) { return a.value - b.value; } - public static XrSwapchain operator *(XrSwapchain a, XrSwapchain b) { return a.value * b.value; } - public static XrSwapchain operator /(XrSwapchain a, XrSwapchain b) - { - if (b.value == 0) - { - throw new DivideByZeroException(); - } - return a.value / b.value; - } + public bool Equals(XrBool32 other) + { + return value == other.value; + } + public bool Equals(UInt32 other) + { + return value == other; + } + public override bool Equals(object obj) + { + return obj is XrBool32 && Equals((XrBool32)obj); + } - } + public override int GetHashCode() + { + return value.GetHashCode(); + } - /// - /// There are currently no session creation flags. This is reserved for future use. - /// - public struct XrSessionCreateFlags : IEquatable + public override string ToString() + { + return value.ToString(); + } + + public static bool operator ==(XrBool32 a, XrBool32 b) { return a.Equals(b); } + public static bool operator !=(XrBool32 a, XrBool32 b) { return !a.Equals(b); } + public static bool operator >=(XrBool32 a, XrBool32 b) { return a.value >= b.value; } + public static bool operator <=(XrBool32 a, XrBool32 b) { return a.value <= b.value; } + public static bool operator >(XrBool32 a, XrBool32 b) { return a.value > b.value; } + public static bool operator <(XrBool32 a, XrBool32 b) { return a.value < b.value; } + public static XrBool32 operator +(XrBool32 a, XrBool32 b) { return a.value + b.value; } + public static XrBool32 operator -(XrBool32 a, XrBool32 b) { return a.value - b.value; } + public static XrBool32 operator *(XrBool32 a, XrBool32 b) { return a.value * b.value; } + public static XrBool32 operator /(XrBool32 a, XrBool32 b) + { + if (b.value == 0) + { + throw new DivideByZeroException(); + } + return a.value / b.value; + } + + } + + #region 2.22.1. Event Polling + /// + /// The XrEventDataBuffer is a structure passed to xrPollEvent large enough to contain any returned event data element. The maximum size is specified by XR_MAX_EVENT_DATA_SIZE.

+ /// An application can set(or reset) only the type member and clear the next member of an XrEventDataBuffer before passing it as an input to xrPollEvent.The runtime must ignore the contents of the varying field and overwrite it without reading it.

+ /// A pointer to an XrEventDataBuffer may be type-cast to an XrEventDataBaseHeader pointer, or a pointer to any other appropriate event data based on the type parameter. + ///
+ [StructLayout(LayoutKind.Sequential, Pack = 8)] + public struct XrEventDataBuffer + { + public XrStructureType type; + public IntPtr next; + [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4000)] + public byte[] varying; + } + #endregion + #endregion + + #region 4. Instance + /// + /// An OpenXR instance is an object that allows an OpenXR application to communicate with an OpenXR runtime. The application accomplishes this communication by calling xrCreateInstance and receiving a handle to the resulting XrInstance object.

+ /// The XrInstance object stores and tracks OpenXR-related application state, without storing any such state in the application’s global address space. This allows the application to create multiple instances as well as safely encapsulate the application’s OpenXR state since this object is opaque to the application. OpenXR runtimes may limit the number of simultaneous XrInstance objects that may be created and used, but they must support the creation and usage of at least one XrInstance object per process.

+ ///
+ public struct XrInstance : IEquatable + { + private readonly ulong value; + + public XrInstance(ulong u) + { + value = u; + } + + public static implicit operator ulong(XrInstance equatable) + { + return equatable.value; + } + public static implicit operator XrInstance(ulong u) + { + return new XrInstance(u); + } + + public bool Equals(XrInstance other) + { + return value == other.value; + } + public bool Equals(ulong other) + { + return value == other; + } + public override bool Equals(object obj) + { + return obj is XrInstance && Equals((XrInstance)obj); + } + + public override int GetHashCode() + { + return value.GetHashCode(); + } + + public override string ToString() + { + return value.ToString(); + } + + public static bool operator ==(XrInstance a, XrInstance b) { return a.Equals(b); } + public static bool operator !=(XrInstance a, XrInstance b) { return !a.Equals(b); } + public static bool operator >=(XrInstance a, XrInstance b) { return a.value >= b.value; } + public static bool operator <=(XrInstance a, XrInstance b) { return a.value <= b.value; } + public static bool operator >(XrInstance a, XrInstance b) { return a.value > b.value; } + public static bool operator <(XrInstance a, XrInstance b) { return a.value < b.value; } + public static XrInstance operator +(XrInstance a, XrInstance b) { return a.value + b.value; } + public static XrInstance operator -(XrInstance a, XrInstance b) { return a.value - b.value; } + public static XrInstance operator *(XrInstance a, XrInstance b) { return a.value * b.value; } + public static XrInstance operator /(XrInstance a, XrInstance b) + { + if (b.value == 0) + { + throw new DivideByZeroException(); + } + return a.value / b.value; + } + + } + + #region 4.1. API Layers and Extensions + /// + /// See XrExtensionProperties for more detail. + /// + [StructLayout(LayoutKind.Sequential, Pack = 8)] + public struct XrExtensionProperties + { + public XrStructureType type; + public IntPtr next; + [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 128)] + public string extensionName; + public UInt32 extensionVersion; + } + #endregion + + /// + /// Bitmasks are passed to many functions and structures to compactly represent options and are stored in memory defined by the XrFlags64 type. But the API does not use the XrFlags64 type directly. Instead, a Xr*Flags type is used which is an alias of the XrFlags64 type. The API also defines a set of constant bit definitions used to set the bitmasks. + /// + public struct XrFlags64 : IEquatable + { + private readonly UInt64 value; + + public XrFlags64(UInt64 u) + { + value = u; + } + + public static implicit operator UInt64(XrFlags64 equatable) + { + return equatable.value; + } + public static implicit operator XrFlags64(UInt64 u) + { + return new XrFlags64(u); + } + + public bool Equals(XrFlags64 other) + { + return value == other.value; + } + public bool Equals(UInt64 other) + { + return value == other; + } + public override bool Equals(object obj) + { + return obj is XrFlags64 && Equals((XrFlags64)obj); + } + + public override int GetHashCode() + { + return value.GetHashCode(); + } + + public override string ToString() + { + return value.ToString(); + } + + public static bool operator ==(XrFlags64 a, XrFlags64 b) { return a.Equals(b); } + public static bool operator !=(XrFlags64 a, XrFlags64 b) { return !a.Equals(b); } + public static bool operator >=(XrFlags64 a, XrFlags64 b) { return a.value >= b.value; } + public static bool operator <=(XrFlags64 a, XrFlags64 b) { return a.value <= b.value; } + public static bool operator >(XrFlags64 a, XrFlags64 b) { return a.value > b.value; } + public static bool operator <(XrFlags64 a, XrFlags64 b) { return a.value < b.value; } + public static XrFlags64 operator +(XrFlags64 a, XrFlags64 b) { return a.value + b.value; } + public static XrFlags64 operator -(XrFlags64 a, XrFlags64 b) { return a.value - b.value; } + public static XrFlags64 operator *(XrFlags64 a, XrFlags64 b) { return a.value * b.value; } + public static XrFlags64 operator /(XrFlags64 a, XrFlags64 b) + { + if (b.value == 0) + { + throw new DivideByZeroException(); + } + return a.value / b.value; + } + + } + #endregion + + #region 5. System + /// + /// An XrSystemId is an opaque atom used by the runtime to identify a system. The value XR_NULL_SYSTEM_ID is considered an invalid system. + /// + public struct XrSystemId : IEquatable + { + private readonly ulong value; + + public XrSystemId(ulong u) + { + value = u; + } + + public static implicit operator ulong(XrSystemId equatable) + { + return equatable.value; + } + public static implicit operator XrSystemId(ulong u) + { + return new XrSystemId(u); + } + + public bool Equals(XrSystemId other) + { + return value == other.value; + } + public bool Equals(ulong other) + { + return value == other; + } + public override bool Equals(object obj) + { + return obj is XrSystemId && Equals((XrSystemId)obj); + } + + public override int GetHashCode() + { + return value.GetHashCode(); + } + + public override string ToString() + { + return value.ToString(); + } + + public static bool operator ==(XrSystemId a, XrSystemId b) { return a.Equals(b); } + public static bool operator !=(XrSystemId a, XrSystemId b) { return !a.Equals(b); } + public static bool operator >=(XrSystemId a, XrSystemId b) { return a.value >= b.value; } + public static bool operator <=(XrSystemId a, XrSystemId b) { return a.value <= b.value; } + public static bool operator >(XrSystemId a, XrSystemId b) { return a.value > b.value; } + public static bool operator <(XrSystemId a, XrSystemId b) { return a.value < b.value; } + public static XrSystemId operator +(XrSystemId a, XrSystemId b) { return a.value + b.value; } + public static XrSystemId operator -(XrSystemId a, XrSystemId b) { return a.value - b.value; } + public static XrSystemId operator *(XrSystemId a, XrSystemId b) { return a.value * b.value; } + public static XrSystemId operator /(XrSystemId a, XrSystemId b) + { + if (b.value == 0) + { + throw new DivideByZeroException(); + } + return a.value / b.value; + } + + } + + #region 5.3. System Properties + /// + /// A structure indicates the system properties. + /// + [StructLayout(LayoutKind.Sequential)] + public struct XrSystemProperties + { + /// + /// The XrStructureType of this structure. + /// + public XrStructureType type; + /// + /// NULL or a pointer to the next structure in a structure chain. No such structures are defined in core OpenXR. + /// + public IntPtr next; + /// + /// The XrSystemId identifies the system. + /// + public XrSystemId systemId; + /// + /// A unique identifier for the vendor of the system. + /// + public UInt32 vendorId; + /// + /// A string contains the name of the system. + /// + [MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)] + public char[] systemName; //char systemName[XR_MAX_SYSTEM_NAME_SIZE]; + /// + /// An XrSystemGraphicsProperties structure specifying the system graphics properties. + /// + public XrSystemGraphicsProperties graphicsProperties; + /// + /// An XrSystemTrackingProperties structure specifying system tracking properties. + /// + public XrSystemTrackingProperties trackingProperties; + } + /// + /// A structure indicates the system graphics properties. + /// + public struct XrSystemGraphicsProperties + { + /// + /// The maximum swapchain image pixel height supported by this system. + /// + public uint maxSwapchainImageHeight; + /// + /// The maximum swapchain image pixel width supported by this system. + /// + public uint maxSwapchainImageWidth; + /// + /// The maximum number of composition layers supported by this system. The runtime must support at least XR_MIN_COMPOSITION_LAYERS_SUPPORTED layers. + /// + public uint maxLayerCount; + } + /// + /// A structure indicates the system tracking properties. + /// + public struct XrSystemTrackingProperties + { + /// + /// Set to XR_TRUE to indicate the system supports orientational tracking of the view pose(s), XR_FALSE otherwise. + /// + public uint orientationTracking; + /// + /// Set to XR_TRUE to indicate the system supports positional tracking of the view pose(s), XR_FALSE otherwise. + /// + public uint positionTracking; + } + #endregion + #endregion + + #region 6. Path Tree and Semantic Paths + /// + /// The XrPath is an atom that connects an application with a single path, within the context of a single instance. There is a bijective mapping between well-formed path strings and atoms in use. This atom is used — in place of the path name string it corresponds to — to retrieve state and perform other operations.

+ /// As an XrPath is only shorthand for a well-formed path string, they have no explicit life cycle.

+ /// Lifetime is implicitly managed by the XrInstance.An XrPath must not be used unless it is received at execution time from the runtime in the context of a particular XrInstance. Therefore, with the exception of XR_NULL_PATH, XrPath values must not be specified as constant values in applications: the corresponding path string should be used instead.During the lifetime of a given XrInstance, the XrPath associated with that instance with any given well-formed path must not vary, and similarly the well-formed path string that corresponds to a given XrPath in that instance must not vary.An XrPath that is received from one XrInstance may not be used with another. Such an invalid use may be detected and result in an error being returned, or it may result in undefined behavior.

+ /// Well-written applications should typically use a small, bounded set of paths in practice.However, the runtime should support looking up the XrPath for a large number of path strings for maximum compatibility. Runtime implementers should keep in mind that applications supporting diverse systems may look up path strings in a quantity exceeding the number of non-empty entities predicted or provided by any one runtime’s own path tree model, and this is not inherently an error. However, system resources are finite and thus runtimes may signal exhaustion of resources dedicated to these associations under certain conditions.

+ /// When discussing the behavior of runtimes at these limits, a new XrPath refers to an XrPath value that, as of some point in time, has neither been received by the application nor tracked internally by the runtime.In this case, since an application has not yet received the value of such an XrPath, the runtime has not yet made any assertions about its association with any path string. In this context, new only refers to the fact that the mapping has not necessarily been made constant for a given value/path string pair for the remaining life of the associated instance by being revealed to the application.It does not necessarily imply creation of the entity, if any, referred to by such a path.Similarly, it does not imply the absence of such an entity prior to that point. Entities in the path tree have varied lifetime that is independent from the duration of the mapping from path string to XrPath.

+ /// For flexibility, the runtime may internally track or otherwise make constant, in instance or larger scope, any mapping of a path string to an XrPath value even before an application would otherwise receive that value, thus making it no longer new by the above definition.

+ /// When the runtime’s resources to track the path string-XrPath mapping are exhausted, and the application makes an API call that would have otherwise retrieved a new XrPath as defined above, the runtime must return XR_ERROR_PATH_COUNT_EXCEEDED.This includes both explicit calls to xrStringToPath as well as other calls that retrieve an XrPath in any other way. + ///
+ public struct XrPath : IEquatable + { + private readonly UInt64 value; + + public XrPath(UInt64 u) + { + value = u; + } + + public static implicit operator UInt64(XrPath equatable) + { + return equatable.value; + } + public static implicit operator XrPath(UInt64 u) + { + return new XrPath(u); + } + + public bool Equals(XrPath other) + { + return value == other.value; + } + public bool Equals(UInt64 other) + { + return value == other; + } + public override bool Equals(object obj) + { + return obj is XrPath && Equals((XrPath)obj); + } + + public override int GetHashCode() + { + return value.GetHashCode(); + } + + public override string ToString() + { + return value.ToString(); + } + + public static bool operator ==(XrPath a, XrPath b) { return a.Equals(b); } + public static bool operator !=(XrPath a, XrPath b) { return !a.Equals(b); } + public static bool operator >=(XrPath a, XrPath b) { return a.value >= b.value; } + public static bool operator <=(XrPath a, XrPath b) { return a.value <= b.value; } + public static bool operator >(XrPath a, XrPath b) { return a.value > b.value; } + public static bool operator <(XrPath a, XrPath b) { return a.value < b.value; } + public static XrPath operator +(XrPath a, XrPath b) { return a.value + b.value; } + public static XrPath operator -(XrPath a, XrPath b) { return a.value - b.value; } + public static XrPath operator *(XrPath a, XrPath b) { return a.value * b.value; } + public static XrPath operator /(XrPath a, XrPath b) + { + if (b.value == 0) + { + throw new DivideByZeroException(); + } + return a.value / b.value; + } + + } + #endregion + + #region 7. Spaces + /// + /// Across both virtual reality and augmented reality, XR applications have a core need to map the location of virtual objects to the corresponding real-world locations where they will be rendered. Spaces allow applications to explicitly create and specify the frames of reference in which they choose to track the real world, and then determine how those frames of reference move relative to one another over time.

+ /// Spaces are represented by XrSpace handles, which the application creates and then uses in API calls. Whenever an application calls a function that returns coordinates, it provides an XrSpace to specify the frame of reference in which those coordinates will be expressed. Similarly, when providing coordinates to a function, the application specifies which XrSpace the runtime should use to interpret those coordinates.

+ /// OpenXR defines a set of well-known reference spaces that applications use to bootstrap their spatial reasoning. These reference spaces are: VIEW, LOCAL and STAGE. Each reference space has a well-defined meaning, which establishes where its origin is positioned and how its axes are oriented.

+ /// Runtimes whose tracking systems improve their understanding of the world over time may track spaces independently. For example, even though a LOCAL space and a STAGE space each map their origin to a static position in the world, a runtime with an inside-out tracking system may introduce slight adjustments to the origin of each space on a continuous basis to keep each origin in place.

+ /// Beyond well-known reference spaces, runtimes expose other independently-tracked spaces, such as a pose action space that tracks the pose of a motion controller over time.

+ /// When one or both spaces are tracking a dynamic object, passing in an updated time to xrLocateSpace each frame will result in an updated relative pose. For example, the location of the left hand’s pose action space in the STAGE reference space will change each frame as the user’s hand moves relative to the stage’s predefined origin on the floor. In other XR APIs, it is common to report the "pose" of an object relative to some presumed underlying global space. This API is careful to not explicitly define such an underlying global space, because it does not apply to all systems. Some systems will support no STAGE space, while others may support a STAGE space that switches between various physical stages with dynamic availability. To satisfy this wide variability, "poses" are always described as the relationship between two spaces.

+ /// Some devices improve their understanding of the world as the device is used. The location returned by xrLocateSpace in later frames may change over time, even for spaces that track static objects, as either the target space or base space adjusts its origin.

+ /// Composition layers submitted by the application include an XrSpace for the runtime to use to position that layer over time. Composition layers whose XrSpace is relative to the VIEW reference space are implicitly "head-locked", even if they may not be "display-locked" for non-head-mounted form factors. + ///
+ public struct XrSpace : IEquatable + { + private readonly ulong value; + + public XrSpace(ulong u) + { + value = u; + } + + public static implicit operator ulong(XrSpace equatable) + { + return equatable.value; + } + public static implicit operator XrSpace(ulong u) + { + return new XrSpace(u); + } + + public bool Equals(XrSpace other) + { + return value == other.value; + } + public bool Equals(ulong other) + { + return value == other; + } + public override bool Equals(object obj) + { + return obj is XrSpace && Equals((XrSpace)obj); + } + + public override int GetHashCode() + { + return value.GetHashCode(); + } + + public override string ToString() + { + return value.ToString(); + } + + public static bool operator ==(XrSpace a, XrSpace b) { return a.Equals(b); } + public static bool operator !=(XrSpace a, XrSpace b) { return !a.Equals(b); } + public static bool operator >=(XrSpace a, XrSpace b) { return a.value >= b.value; } + public static bool operator <=(XrSpace a, XrSpace b) { return a.value <= b.value; } + public static bool operator >(XrSpace a, XrSpace b) { return a.value > b.value; } + public static bool operator <(XrSpace a, XrSpace b) { return a.value < b.value; } + public static XrSpace operator +(XrSpace a, XrSpace b) { return a.value + b.value; } + public static XrSpace operator -(XrSpace a, XrSpace b) { return a.value - b.value; } + public static XrSpace operator *(XrSpace a, XrSpace b) { return a.value * b.value; } + public static XrSpace operator /(XrSpace a, XrSpace b) + { + if (b.value == 0) + { + throw new DivideByZeroException(); + } + return a.value / b.value; + } + + } + + #region 7.1. Reference Spaces + /// + /// Runtimes implement well-known reference spaces from XrReferenceSpaceType if they support tracking of that kind. + /// + public enum XrReferenceSpaceType + { + /// + /// The VIEW space tracks the view origin used to generate view transforms for the primary viewer (or centroid of view origins if stereo), with +Y up, +X to the right, and -Z forward. This space points in the forward direction for the viewer without incorporating the user’s eye orientation, and is not gravity-aligned. + /// + /// VIEW space is primarily useful when projecting from the user’s perspective into another space to obtain a targeting ray, or when rendering small head-locked content such as a reticle. Content rendered in VIEW space will stay at a fixed point on head-mounted displays and may be uncomfortable to view if too large. To obtain the ideal view and projection transforms to use each frame for rendering world content, applications should call xrLocateViews instead of using this space. + /// + /// Runtimes must support this reference space. + /// + XR_REFERENCE_SPACE_TYPE_VIEW = 1, + /// + /// The LOCAL reference space establishes a world-locked origin, gravity-aligned to exclude pitch and roll, with +Y up, +X to the right, and -Z forward. This space locks in both its initial position and orientation, which the runtime may define to be either the initial position at application launch or some other calibrated zero position. + /// + /// LOCAL space is useful when an application needs to render seated-scale content that is not positioned relative to the physical floor. + /// + /// When a user needs to recenter LOCAL space, a runtime may offer some system-level recentering interaction that is transparent to the application, but which causes the current leveled head space to become the new LOCAL space. When such a recentering occurs, the runtime must queue the XrEventDataReferenceSpaceChangePending event, with the recentered LOCAL space origin only taking effect for xrLocateSpace or xrLocateViews calls whose XrTime parameter is greater than or equal to the changeTime provided in that event. + /// + /// When views, controllers or other spaces experience tracking loss relative to the LOCAL space, runtimes should continue to provide inferred or last-known position and orientation values. These inferred poses can, for example, be based on neck model updates, inertial dead reckoning, or a last-known position, so long as it is still reasonable for the application to use that pose. While a runtime is providing position data, it must continue to set XR_SPACE_LOCATION_POSITION_VALID_BIT and XR_VIEW_STATE_POSITION_VALID_BIT but it can clear XR_SPACE_LOCATION_POSITION_TRACKED_BIT and XR_VIEW_STATE_POSITION_TRACKED_BIT to indicate that the position is inferred or last-known in this way. + /// + /// When tracking is recovered, runtimes should snap the pose of other spaces back into position relative to the LOCAL space’s original origin. + /// + /// Runtimes must support this reference space. + /// + XR_REFERENCE_SPACE_TYPE_LOCAL = 2, + /// + /// The STAGE reference space is a runtime-defined flat, rectangular space that is empty and can be walked around on. The origin is on the floor at the center of the rectangle, with +Y up, and the X and Z axes aligned with the rectangle edges. The runtime may not be able to locate spaces relative to the STAGE reference space if the user has not yet defined one within the runtime-specific UI. Applications can use xrGetReferenceSpaceBoundsRect to determine the extents of the STAGE reference space’s XZ bounds rectangle, if defined. + /// + /// STAGE space is useful when an application needs to render standing-scale content (no bounds) or room-scale content (with bounds) that is relative to the physical floor. + /// + /// When the user redefines the origin or bounds of the current STAGE space, or the runtime otherwise switches to a new STAGE definition, the runtime must queue the XrEventDataReferenceSpaceChangePending event, with the new STAGE space origin only taking effect for xrLocateSpace or xrLocateViews calls whose XrTime parameter is greater than or equal to the changeTime provided in that event. + /// + /// When views, controllers or other spaces experience tracking loss relative to the STAGE space, runtimes should continue to provide inferred or last-known position and orientation values. These inferred poses can, for example, be based on neck model updates, inertial dead reckoning, or a last-known position, so long as it is still reasonable for the application to use that pose. While a runtime is providing position data, it must continue to set XR_SPACE_LOCATION_POSITION_VALID_BIT and XR_VIEW_STATE_POSITION_VALID_BIT but it can clear XR_SPACE_LOCATION_POSITION_TRACKED_BIT and XR_VIEW_STATE_POSITION_TRACKED_BIT to indicate that the position is inferred or last-known in this way. + /// + /// When tracking is recovered, runtimes should snap the pose of other spaces back into position relative to the STAGE space’s original origin. + /// + XR_REFERENCE_SPACE_TYPE_STAGE = 3, + XR_REFERENCE_SPACE_TYPE_UNBOUNDED_MSFT = 1000038000, + XR_REFERENCE_SPACE_TYPE_COMBINED_EYE_VARJO = 1000121000, + XR_REFERENCE_SPACE_TYPE_MAX_ENUM = 0x7FFFFFFF + } + #endregion + + #region 7.3.2. xrCreateReferenceSpace + /// + /// A structure indicates the space. + /// + public struct XrReferenceSpaceCreateInfo + { + /// + /// The XrStructureType of this structure. + /// + public XrStructureType type; + /// + /// NULL or a pointer to the next structure in a structure chain. No such structures are defined in core OpenXR. + /// + public IntPtr next; + /// + /// The chosen XrReferenceSpaceType. + /// + public XrReferenceSpaceType referenceSpaceType; + /// + /// An XrPosef defining the position and orientation of the new space’s origin within the natural reference frame of the reference space. + /// + public XrPosef poseInReferenceSpace; + } + #endregion + + #region 7.4.1. xrLocateSpace + /// + /// See XrSpaceLocation for more detail. + /// + public struct XrSpaceLocation + { + public XrStructureType type; + public System.IntPtr next; + public XrSpaceLocationFlags locationFlags; + public XrPosef pose; + } + + /// + /// Flag bits for XrSpaceLocationFlags. + /// + [Flags] + public enum XrSpaceLocationFlags : UInt64 + { + /// + /// XrSpaceLocationFlags bitmask 0x00000001 indicates the XrSpace's orientation is valid. + /// + XR_SPACE_LOCATION_ORIENTATION_VALID_BIT = 0x00000001, + /// + /// XrSpaceLocationFlags bitmask 0x00000002 indicates the XrSpace's position is valid. + /// + XR_SPACE_LOCATION_POSITION_VALID_BIT = 0x00000002, + /// + /// XrSpaceLocationFlags bitmask 0x00000004 indicates the XrSpace's orientation is tracked. + /// + XR_SPACE_LOCATION_ORIENTATION_TRACKED_BIT = 0x00000004, + /// + /// XrSpaceLocationFlags bitmask 0x00000008 indicates the XrSpace's position is tracked + /// + XR_SPACE_LOCATION_POSITION_TRACKED_BIT = 0x00000008, + } + /// + /// Flag bits for XrSpaceVelocityFlags. + /// + [Flags] + public enum XrSpaceVelocityFlags : UInt64 + { + /// + /// Indicates the linear velocity is valid. + /// + XR_SPACE_VELOCITY_LINEAR_VALID_BIT = 0x00000001, + /// + /// Indicates the angular velocity is valid. + /// + XR_SPACE_VELOCITY_ANGULAR_VALID_BIT = 0x00000002, + } + #endregion + #endregion + + #region 8.1. Primary View Configurations + /// + /// The application selects its primary view configuration type when calling xrBeginSession, and that configuration remains constant for the lifetime of the session, until xrEndSession is called. + /// The number of views and the semantic meaning of each view index within a given view configuration is well-defined, specified below for all core view configurations. + /// + public enum XrViewConfigurationType : UInt32 + { + /// + /// One view representing the form factor’s one primary display. For example, an AR phone’s screen. This configuration requires one element in XrViewConfigurationProperties and one projection in each XrCompositionLayerProjection layer. + /// + XR_VIEW_CONFIGURATION_TYPE_PRIMARY_MONO = 1, + /// + /// Two views representing the form factor’s two primary displays, which map to a left-eye and right-eye view. This configuration requires two views in XrViewConfigurationProperties and two views in each XrCompositionLayerProjection layer. View index 0 must represent the left eye and view index 1 must represent the right eye. + /// + XR_VIEW_CONFIGURATION_TYPE_PRIMARY_STEREO = 2, + // Provided by XR_VERSION_1_1 + /// + /// Four views representing the form factor’s primary stereo displays. This view configuration type represents a hardware independent way of providing foveated rendering. The view configuration adds two foveated inset views for the left and right eye separately to the already defined two views specified in the XR_VIEW_CONFIGURATION_TYPE_PRIMARY_STEREO view configuration. View index 0 must represent the left eye and view index 1 must represent the right eye as specified in XR_VIEW_CONFIGURATION_TYPE_PRIMARY_STEREO view configuration, and view index 2 must represent the left eye inset view and view index 3 must represent the right eye inset view. The new inset view 2 and view 3 must, after applying the pose and FoV projection to same plane, be contained within view 0 and 1 respectively. The inset views may have a higher resolution with respect to the same field of view as the corresponding wide FoV view for each eye. The runtime may blend between the views at the edges, so the application must not omit the inner field of view from being rendered in the outer view. The fov returned by xrLocateViews for each inset view relative to the corresponding outer stereo view may change at run-time, the pose for inset view and stereo view for each eye respectively must have the same values. + /// + XR_VIEW_CONFIGURATION_TYPE_PRIMARY_STEREO_WITH_FOVEATED_INSET = 1000037000, + // Provided by XR_MSFT_first_person_observer + XR_VIEW_CONFIGURATION_TYPE_SECONDARY_MONO_FIRST_PERSON_OBSERVER_MSFT = 1000054000, + // Provided by XR_VARJO_quad_views + XR_VIEW_CONFIGURATION_TYPE_PRIMARY_QUAD_VARJO = XR_VIEW_CONFIGURATION_TYPE_PRIMARY_STEREO_WITH_FOVEATED_INSET, + XR_VIEW_CONFIGURATION_TYPE_MAX_ENUM = 0x7FFFFFFF + } + #endregion + + #region 9. Session + /// + /// A session represents an application’s intention to display XR content to the user.

+ /// Refer to Session Lifecycle for more details. + ///
+ public struct XrSession : IEquatable + { + private readonly ulong value; + + public XrSession(ulong u) + { + value = u; + } + + public static implicit operator ulong(XrSession equatable) + { + return equatable.value; + } + public static implicit operator XrSession(ulong u) + { + return new XrSession(u); + } + + public bool Equals(XrSession other) + { + return value == other.value; + } + public bool Equals(ulong other) + { + return value == other; + } + public override bool Equals(object obj) + { + return obj is XrSession && Equals((XrSession)obj); + } + + public override int GetHashCode() + { + return value.GetHashCode(); + } + + public override string ToString() + { + return value.ToString(); + } + + public static bool operator ==(XrSession a, XrSession b) { return a.Equals(b); } + public static bool operator !=(XrSession a, XrSession b) { return !a.Equals(b); } + public static bool operator >=(XrSession a, XrSession b) { return a.value >= b.value; } + public static bool operator <=(XrSession a, XrSession b) { return a.value <= b.value; } + public static bool operator >(XrSession a, XrSession b) { return a.value > b.value; } + public static bool operator <(XrSession a, XrSession b) { return a.value < b.value; } + public static XrSession operator +(XrSession a, XrSession b) { return a.value + b.value; } + public static XrSession operator -(XrSession a, XrSession b) { return a.value - b.value; } + public static XrSession operator *(XrSession a, XrSession b) { return a.value * b.value; } + public static XrSession operator /(XrSession a, XrSession b) + { + if (b.value == 0) + { + throw new DivideByZeroException(); + } + return a.value / b.value; + } + + } + + #region 9.2. Session Creation + /// + /// A structure contains information about how to create the session. + /// + [StructLayout(LayoutKind.Sequential)] + public struct XrSessionCreateInfo + { + /// + /// The XrStructureType of this structure. + /// + public XrStructureType type; + /// + /// NULL or a pointer to the next structure in a structure chain. No such structures are defined in core OpenXR. Note that in most cases one graphics API extension specific struct needs to be in this next chain. + /// + public IntPtr next; + /// + /// Identifies XrSessionCreateFlags that apply to the creation. + /// + public XrSessionCreateFlags createFlags; + /// + /// The XrSystemId represents the system of devices to be used by this session. + /// + public XrSystemId systemId; + } + + /// + /// There are currently no session creation flags. This is reserved for future use. + /// + public struct XrSessionCreateFlags : IEquatable { private readonly UInt64 value; @@ -1614,163 +1565,171 @@ namespace VIVE.OpenXR return a.value / b.value; } } + #endregion - public struct XrSwapchainCreateFlags : IEquatable - { - private readonly UInt64 value; - - public XrSwapchainCreateFlags(UInt64 u) - { - value = u; - } - - public static implicit operator UInt64(XrSwapchainCreateFlags xrBool) - { - return xrBool.value; - } - public static implicit operator XrSwapchainCreateFlags(UInt64 u) - { - return new XrSwapchainCreateFlags(u); - } - - public bool Equals(XrSwapchainCreateFlags other) - { - return value == other.value; - } - public bool Equals(UInt64 other) - { - return value == other; - } - public override bool Equals(object obj) - { - return obj is XrSwapchainCreateFlags && Equals((XrSwapchainCreateFlags)obj); - } - - public override int GetHashCode() - { - return value.GetHashCode(); - } - - public override string ToString() - { - return value.ToString(); - } - - public static bool operator ==(XrSwapchainCreateFlags a, XrSwapchainCreateFlags b) { return a.Equals(b); } - public static bool operator !=(XrSwapchainCreateFlags a, XrSwapchainCreateFlags b) { return !a.Equals(b); } - public static bool operator >=(XrSwapchainCreateFlags a, XrSwapchainCreateFlags b) { return a.value >= b.value; } - public static bool operator <=(XrSwapchainCreateFlags a, XrSwapchainCreateFlags b) { return a.value <= b.value; } - public static bool operator >(XrSwapchainCreateFlags a, XrSwapchainCreateFlags b) { return a.value > b.value; } - public static bool operator <(XrSwapchainCreateFlags a, XrSwapchainCreateFlags b) { return a.value < b.value; } - public static XrSwapchainCreateFlags operator +(XrSwapchainCreateFlags a, XrSwapchainCreateFlags b) { return a.value + b.value; } - public static XrSwapchainCreateFlags operator -(XrSwapchainCreateFlags a, XrSwapchainCreateFlags b) { return a.value - b.value; } - public static XrSwapchainCreateFlags operator *(XrSwapchainCreateFlags a, XrSwapchainCreateFlags b) { return a.value * b.value; } - public static XrSwapchainCreateFlags operator /(XrSwapchainCreateFlags a, XrSwapchainCreateFlags b) - { - if (b.value == 0) - { - throw new DivideByZeroException(); - } - return a.value / b.value; - } - } - - public struct XrSwapchainUsageFlags : IEquatable - { - private readonly UInt64 value; - - public XrSwapchainUsageFlags(UInt64 u) - { - value = u; - } - - public static implicit operator UInt64(XrSwapchainUsageFlags xrBool) - { - return xrBool.value; - } - public static implicit operator XrSwapchainUsageFlags(UInt64 u) - { - return new XrSwapchainUsageFlags(u); - } - - public bool Equals(XrSwapchainUsageFlags other) - { - return value == other.value; - } - public bool Equals(UInt64 other) - { - return value == other; - } - public override bool Equals(object obj) - { - return obj is XrSwapchainUsageFlags && Equals((XrSwapchainUsageFlags)obj); - } - - public override int GetHashCode() - { - return value.GetHashCode(); - } - - public override string ToString() - { - return value.ToString(); - } - - public static bool operator ==(XrSwapchainUsageFlags a, XrSwapchainUsageFlags b) { return a.Equals(b); } - public static bool operator !=(XrSwapchainUsageFlags a, XrSwapchainUsageFlags b) { return !a.Equals(b); } - public static bool operator >=(XrSwapchainUsageFlags a, XrSwapchainUsageFlags b) { return a.value >= b.value; } - public static bool operator <=(XrSwapchainUsageFlags a, XrSwapchainUsageFlags b) { return a.value <= b.value; } - public static bool operator >(XrSwapchainUsageFlags a, XrSwapchainUsageFlags b) { return a.value > b.value; } - public static bool operator <(XrSwapchainUsageFlags a, XrSwapchainUsageFlags b) { return a.value < b.value; } - public static XrSwapchainUsageFlags operator +(XrSwapchainUsageFlags a, XrSwapchainUsageFlags b) { return a.value + b.value; } - public static XrSwapchainUsageFlags operator -(XrSwapchainUsageFlags a, XrSwapchainUsageFlags b) { return a.value - b.value; } - public static XrSwapchainUsageFlags operator *(XrSwapchainUsageFlags a, XrSwapchainUsageFlags b) { return a.value * b.value; } - public static XrSwapchainUsageFlags operator /(XrSwapchainUsageFlags a, XrSwapchainUsageFlags b) - { - if (b.value == 0) - { - throw new DivideByZeroException(); - } - return a.value / b.value; - } - } - - /// - /// Flag bits for XrSpaceVelocityFlags: - /// - /// XR_SPACE_VELOCITY_LINEAR_VALID_BIT  indicates that the linearVelocity member contains valid data. Applications must not read the linearVelocity field if this flag is unset. - /// - /// XR_SPACE_VELOCITY_ANGULAR_VALID_BIT  indicates that the angularVelocity member contains valid data. Applications must not read the angularVelocity field if this flag is unset. - /// - public struct XrSpaceVelocityFlags : IEquatable + #region 9.3. Session Control + /// + /// See XrSessionBeginInfo for more detail. + /// + [StructLayout(LayoutKind.Sequential)] + public struct XrSessionBeginInfo { - private readonly UInt64 value; + /// + /// The XrStructureType of this structure. + /// + public XrStructureType type; + /// + /// NULL or a pointer to the next structure in a structure chain. No such structures are defined in core OpenXR. + /// + public IntPtr next; + /// + /// The to use during this session to provide images for the form factor’s primary displays. + /// + public XrViewConfigurationType primaryViewConfigurationType; + } + #endregion - public XrSpaceVelocityFlags(UInt64 u) + #region 9.4.1. XrEventDataSessionStateChanged + /// + /// See XrEventDataSessionStateChanged for more detail. + /// + [StructLayout(LayoutKind.Sequential)] + public struct XrEventDataSessionStateChanged + { + /// + /// The XrStructureType of this structure. + /// + public XrStructureType type; + /// + /// NULL or a pointer to the next structure in a structure chain. No such structures are defined in core OpenXR. + /// + public IntPtr next; + /// + /// The XrSession which has changed state. + /// + public XrSession session; + /// + /// The current of the session. + /// + public XrSessionState state; + /// + /// An which indicates the time of the state change. + /// + public XrTime time; + + public XrEventDataSessionStateChanged(XrStructureType in_type, IntPtr in_next, XrSession in_session, XrSessionState in_state, XrTime in_time) + { + type = in_type; + next = in_next; + session = in_session; + state = in_state; + time = in_time; + } + public static XrEventDataSessionStateChanged identity { + get { + return new XrEventDataSessionStateChanged(XrStructureType.XR_TYPE_EVENT_DATA_SESSION_STATE_CHANGED, IntPtr.Zero, 0, XrSessionState.XR_SESSION_STATE_UNKNOWN, 0); + } + } + + public static bool Get(XrEventDataBuffer eventDataBuffer, out XrEventDataSessionStateChanged eventDataSessionStateChanged) + { + eventDataSessionStateChanged = identity; + + if (eventDataBuffer.type == XrStructureType.XR_TYPE_EVENT_DATA_SESSION_STATE_CHANGED) + { + eventDataSessionStateChanged.next = eventDataBuffer.next; + eventDataSessionStateChanged.session = BitConverter.ToUInt64(eventDataBuffer.varying, 0); + eventDataSessionStateChanged.state = OpenXRHelper.GetXrSessionState(BitConverter.ToInt32(eventDataBuffer.varying, 8)); + eventDataSessionStateChanged.time = BitConverter.ToInt64(eventDataBuffer.varying, 12); + return true; + } + + return false; + } + } + + /// + /// The XrSessionState enumerates the possible session lifecycle states. + /// + public enum XrSessionState : Int32 + { + /// + /// An unknown state. The runtime must not return this value in an XrEventDataSessionStateChanged event. + /// + XR_SESSION_STATE_UNKNOWN = 0, + /// + /// The initial state after calling xrCreateSession or returned to after calling xrCreateSession. + /// + XR_SESSION_STATE_IDLE = 1, + /// + /// The application is ready to call xrBeginSession and sync its frame loop with the runtime. + /// + XR_SESSION_STATE_READY = 2, + /// + /// The application has synced its frame loop with the runtime but is not visible to the user. + /// + XR_SESSION_STATE_SYNCHRONIZED = 3, + /// + /// The application has synced its frame loop with the runtime and is visible to the user but cannot receive XR input. + /// + XR_SESSION_STATE_VISIBLE = 4, + /// + /// The application has synced its frame loop with the runtime, is visible to the user and can receive XR input. + /// + XR_SESSION_STATE_FOCUSED = 5, + /// + /// The application should exit its frame loop and call xrEndSession. + /// + XR_SESSION_STATE_STOPPING = 6, + /// + /// The session is in the process of being lost. The application should destroy the current session and can optionally recreate it. + /// + XR_SESSION_STATE_LOSS_PENDING = 7, + /// + /// The application should end its XR experience and not automatically restart it. + /// + XR_SESSION_STATE_EXITING = 8, + XR_SESSION_STATE_MAX_ENUM = 0x7FFFFFFF + } + #endregion + #endregion + + #region 10.1. Swapchain Image Management + /// + /// Normal XR applications will want to present rendered images to the user. To allow this, the runtime provides images organized in swapchains for the application to render into. The runtime must allow applications to create multiple swapchains.

+ /// Swapchain image format support by the runtime is specified by the xrEnumerateSwapchainFormats function.Runtimes should support R8G8B8A8 and R8G8B8A8 sRGB formats if possible.

+ /// Swapchain images can be 2D or 2D Array.

+ /// Rendering operations involving composition of submitted layers are assumed to be internally performed by the runtime in linear color space.Images submitted in sRGB color space must be created using an API-specific sRGB format(e.g.DXGI_FORMAT_R8G8B8A8_UNORM_SRGB, GL_SRGB8_ALPHA8, VK_FORMAT_R8G8B8A8_SRGB) to apply automatic sRGB-to-linear conversion when read by the runtime.All other formats will be treated as linear values. + ///
+ public struct XrSwapchain : IEquatable + { + private readonly ulong value; + + public XrSwapchain(ulong u) { value = u; } - public static implicit operator UInt64(XrSpaceVelocityFlags equatable) + public static implicit operator ulong(XrSwapchain xrBool) { - return equatable.value; + return xrBool.value; } - public static implicit operator XrSpaceVelocityFlags(UInt64 u) + public static implicit operator XrSwapchain(ulong u) { - return new XrSpaceVelocityFlags(u); + return new XrSwapchain(u); } - public bool Equals(XrSpaceVelocityFlags other) + public bool Equals(XrSwapchain other) { return value == other.value; } - public bool Equals(UInt64 other) + public bool Equals(ulong other) { return value == other; } public override bool Equals(object obj) { - return obj is XrSpaceVelocityFlags && Equals((XrSpaceVelocityFlags)obj); + return obj is XrSwapchain && Equals((XrSwapchain)obj); } public override int GetHashCode() @@ -1783,16 +1742,16 @@ namespace VIVE.OpenXR return value.ToString(); } - public static bool operator ==(XrSpaceVelocityFlags a, XrSpaceVelocityFlags b) { return a.Equals(b); } - public static bool operator !=(XrSpaceVelocityFlags a, XrSpaceVelocityFlags b) { return !a.Equals(b); } - public static bool operator >=(XrSpaceVelocityFlags a, XrSpaceVelocityFlags b) { return a.value >= b.value; } - public static bool operator <=(XrSpaceVelocityFlags a, XrSpaceVelocityFlags b) { return a.value <= b.value; } - public static bool operator >(XrSpaceVelocityFlags a, XrSpaceVelocityFlags b) { return a.value > b.value; } - public static bool operator <(XrSpaceVelocityFlags a, XrSpaceVelocityFlags b) { return a.value < b.value; } - public static XrSpaceVelocityFlags operator +(XrSpaceVelocityFlags a, XrSpaceVelocityFlags b) { return a.value + b.value; } - public static XrSpaceVelocityFlags operator -(XrSpaceVelocityFlags a, XrSpaceVelocityFlags b) { return a.value - b.value; } - public static XrSpaceVelocityFlags operator *(XrSpaceVelocityFlags a, XrSpaceVelocityFlags b) { return a.value * b.value; } - public static XrSpaceVelocityFlags operator /(XrSpaceVelocityFlags a, XrSpaceVelocityFlags b) + public static bool operator ==(XrSwapchain a, XrSwapchain b) { return a.Equals(b); } + public static bool operator !=(XrSwapchain a, XrSwapchain b) { return !a.Equals(b); } + public static bool operator >=(XrSwapchain a, XrSwapchain b) { return a.value >= b.value; } + public static bool operator <=(XrSwapchain a, XrSwapchain b) { return a.value <= b.value; } + public static bool operator >(XrSwapchain a, XrSwapchain b) { return a.value > b.value; } + public static bool operator <(XrSwapchain a, XrSwapchain b) { return a.value < b.value; } + public static XrSwapchain operator +(XrSwapchain a, XrSwapchain b) { return a.value + b.value; } + public static XrSwapchain operator -(XrSwapchain a, XrSwapchain b) { return a.value - b.value; } + public static XrSwapchain operator *(XrSwapchain a, XrSwapchain b) { return a.value * b.value; } + public static XrSwapchain operator /(XrSwapchain a, XrSwapchain b) { if (b.value == 0) { @@ -1800,209 +1759,81 @@ namespace VIVE.OpenXR } return a.value / b.value; } + } /// - /// A structure indicates the space. + /// See XrSwapchainCreateInfo for more detail. /// - public struct XrReferenceSpaceCreateInfo + public struct XrSwapchainCreateInfo { - /// - /// The XrStructureType of this structure. - /// public XrStructureType type; - /// - /// NULL or a pointer to the next structure in a structure chain. No such structures are defined in core OpenXR. - /// public IntPtr next; - /// - /// The chosen XrReferenceSpaceType. - /// - public XrReferenceSpaceType referenceSpaceType; - /// - /// An XrPosef defining the position and orientation of the new space’s origin within the natural reference frame of the reference space. - /// - public XrPosef poseInReferenceSpace; - } - /// - /// A structure indicates the system graphics properties. - /// - public struct XrSystemGraphicsProperties - { - /// - /// The maximum swapchain image pixel height supported by this system. - /// - public uint maxSwapchainImageHeight; - /// - /// The maximum swapchain image pixel width supported by this system. - /// - public uint maxSwapchainImageWidth; - /// - /// The maximum number of composition layers supported by this system. The runtime must support at least XR_MIN_COMPOSITION_LAYERS_SUPPORTED layers. - /// - public uint maxLayerCount; - } - /// - /// A structure indicates the system tracking properties. - /// - public struct XrSystemTrackingProperties - { - /// - /// Set to XR_TRUE to indicate the system supports orientational tracking of the view pose(s), XR_FALSE otherwise. - /// - public uint orientationTracking; - /// - /// Set to XR_TRUE to indicate the system supports positional tracking of the view pose(s), XR_FALSE otherwise. - /// - public uint positionTracking; - } - /// - /// A structure indicates the system properties. - /// - [StructLayout(LayoutKind.Sequential)] - public struct XrSystemProperties - { - /// - /// The XrStructureType of this structure. - /// - public XrStructureType type; - /// - /// NULL or a pointer to the next structure in a structure chain. No such structures are defined in core OpenXR. - /// - public IntPtr next; - /// - /// The XrSystemId identifies the system. - /// - public XrSystemId systemId; - /// - /// A unique identifier for the vendor of the system. - /// - public UInt32 vendorId; - /// - /// A string contains the name of the system. - /// - [MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)] - public char[] systemName; //char systemName[XR_MAX_SYSTEM_NAME_SIZE]; - /// - /// An XrSystemGraphicsProperties structure specifying the system graphics properties. - /// - public XrSystemGraphicsProperties graphicsProperties; - /// - /// An XrSystemTrackingProperties structure specifying system tracking properties. - /// - public XrSystemTrackingProperties trackingProperties; + public XrSwapchainCreateFlags createFlags; + public XrSwapchainUsageFlags usageFlags; + public long format; + public uint sampleCount; + public uint width; + public uint height; + public uint faceCount; + public uint arraySize; + public uint mipCount; } - /// - /// A structure contains information about how to create the session. - /// - [StructLayout(LayoutKind.Sequential)] - public struct XrSessionCreateInfo - { - /// - /// The XrStructureType of this structure. - /// - public XrStructureType type; - /// - /// NULL or a pointer to the next structure in a structure chain. No such structures are defined in core OpenXR. Note that in most cases one graphics API extension specific struct needs to be in this next chain. - /// - public IntPtr next; - /// - /// Identifies XrSessionCreateFlags that apply to the creation. - /// - public XrSessionCreateFlags createFlags; - /// - /// The XrSystemId represents the system of devices to be used by this session. - /// - public XrSystemId systemId; + public struct XrSwapchainImageReleaseInfo + { + public XrStructureType type; // XR_TYPE_SWAPCHAIN_IMAGE_RELEASE_INFO + public System.IntPtr next; + } + + public struct XrSwapchainImageAcquireInfo + { + public XrStructureType type; // XR_TYPE_SWAPCHAIN_IMAGE_ACQUIRE_INFO + public System.IntPtr next; + } + + public struct XrSwapchainImageWaitInfo + { + public XrStructureType type; // XR_TYPE_SWAPCHAIN_IMAGE_WAIT_INFO + public IntPtr next; + public XrDuration timeout; // XR_INFINITE_DURATION } - public struct XrSwapchainCreateInfo - { - public XrStructureType type; - public IntPtr next; - public XrSwapchainCreateFlags createFlags; - public XrSwapchainUsageFlags usageFlags; - public UInt64 format; - public UInt32 sampleCount; - public UInt32 width; - public UInt32 height; - public UInt32 faceCount; - public UInt32 arraySize; - public UInt32 mipCount; - } - - public struct XrInputSourceLocalizedNameGetInfo - { - public XrStructureType type; - public IntPtr next; - public XrPath sourcePath; - public XrInputSourceLocalizedNameFlags whichComponents; - - public XrInputSourceLocalizedNameGetInfo(XrStructureType in_type, IntPtr in_next, XrPath in_path, XrInputSourceLocalizedNameFlags in_flags) - { - type = in_type; - next = in_next; - sourcePath = in_path; - whichComponents = in_flags; - } - } - - [StructLayout(LayoutKind.Sequential, Pack = 8)] - public struct XrExtensionProperties - { - public XrStructureType type; - public IntPtr next; - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 128)] - public string extensionName; - public UInt32 extensionVersion; - } - - public struct XrActionCreateInfo - { - public XrStructureType type; - public IntPtr next; - public char[] actionName; - public XrActionType actionType; - public UInt32 countSubactionPaths; - public XrPath[] subactionPaths; - public char[] localizedActionName; - }; - - public struct XrActionStateGetInfo - { - public XrStructureType type; - public IntPtr next; - public XrAction action; - public XrPath subactionPath; - } - - public struct XrActionStatePose - { - public XrStructureType type; - public IntPtr next; - public XrBool32 isActive; - }; /// - /// A structure indicates the frameWaitInfo. + /// Flags bit for XrSwapchainCreateFlags /// - public struct XrFrameWaitInfo + [Flags] + public enum XrSwapchainCreateFlags : UInt64 { /// - /// The XrStructureType of this structure. + /// XrSwapchainCreateFlags bitmask 0x00000001 indicates that the swapchain’s images will be protected from CPU access, using a mechanism such as Vulkan protected memory. /// - public XrStructureType type; + XR_SWAPCHAIN_CREATE_PROTECTED_CONTENT_BIT = 0x00000001, /// - /// next is NULL or a pointer to the next structure in a structure chain. No such structures are defined in core OpenXR. + /// XrSwapchainCreateFlags bitmask 0x00000002 indicates that the application will acquire and release only one image to this swapchain over its entire lifetime. The runtime must allocate only one swapchain image. /// - public IntPtr next; - public XrFrameWaitInfo(IntPtr next_, XrStructureType type_) - { - next = next_; - type = type_; - } + XR_SWAPCHAIN_CREATE_STATIC_IMAGE_BIT = 0x00000002, } /// + /// Flags bit for XrSwapchainUsageFlags + /// + [Flags] + public enum XrSwapchainUsageFlags : UInt64 + { + XR_SWAPCHAIN_USAGE_COLOR_ATTACHMENT_BIT = 0x00000001, + XR_SWAPCHAIN_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000002, + XR_SWAPCHAIN_USAGE_UNORDERED_ACCESS_BIT = 0x00000004, + XR_SWAPCHAIN_USAGE_TRANSFER_SRC_BIT = 0x00000008, + XR_SWAPCHAIN_USAGE_TRANSFER_DST_BIT = 0x00000010, + XR_SWAPCHAIN_USAGE_SAMPLED_BIT = 0x00000020, + XR_SWAPCHAIN_USAGE_MUTABLE_FORMAT_BIT = 0x00000040, + XR_SWAPCHAIN_USAGE_INPUT_ATTACHMENT_BIT_MND = 0x00000080, + XR_SWAPCHAIN_USAGE_INPUT_ATTACHMENT_BIT_KHR = 0x00000080, + } + #endregion + + #region 10.3. Frame Synchronization + /// /// A structure indicates the frameState. /// public struct XrFrameState @@ -2028,7 +1859,28 @@ namespace VIVE.OpenXR ///
public bool shouldRender; } + /// + /// A structure indicates the frameWaitInfo. + /// + public struct XrFrameWaitInfo + { + /// + /// The XrStructureType of this structure. + /// + public XrStructureType type; + /// + /// next is NULL or a pointer to the next structure in a structure chain. No such structures are defined in core OpenXR. + /// + public IntPtr next; + public XrFrameWaitInfo(IntPtr next_, XrStructureType type_) + { + next = next_; + type = type_; + } + } + #endregion + #region 10.4. Frame Submission /// /// A structure indicates the XrFrameEndInfo . /// @@ -2059,8 +1911,8 @@ namespace VIVE.OpenXR /// public IntPtr layers; - public XrFrameEndInfo(XrStructureType type_,IntPtr next_, XrTime displayTime_, XrEnvironmentBlendMode environmentBlendMode_ - ,uint layerCount_, IntPtr layers_) + public XrFrameEndInfo(XrStructureType type_, IntPtr next_, XrTime displayTime_, XrEnvironmentBlendMode environmentBlendMode_ + , uint layerCount_, IntPtr layers_) { next = next_; type = type_; @@ -2070,52 +1922,843 @@ namespace VIVE.OpenXR layers = layers_; } } + #endregion + + #region 10.6.1. Composition Layer Flags + /// + /// Specifies options for individual composition layers, and contains a bitwise-OR of zero or more of the bits defined in . + /// + public struct XrCompositionLayerFlags : IEquatable + { + private readonly UInt64 value; + + public XrCompositionLayerFlags(UInt64 u) + { + value = u; + } + + public static implicit operator UInt64(XrCompositionLayerFlags xrBool) + { + return xrBool.value; + } + public static implicit operator XrCompositionLayerFlags(UInt64 u) + { + return new XrCompositionLayerFlags(u); + } + + public bool Equals(XrCompositionLayerFlags other) + { + return value == other.value; + } + public bool Equals(UInt64 other) + { + return value == other; + } + public override bool Equals(object obj) + { + return obj is XrCompositionLayerFlags && Equals((XrCompositionLayerFlags)obj); + } + + public override int GetHashCode() + { + return value.GetHashCode(); + } + + public override string ToString() + { + return value.ToString(); + } + + public static bool operator ==(XrCompositionLayerFlags a, XrCompositionLayerFlags b) { return a.Equals(b); } + public static bool operator !=(XrCompositionLayerFlags a, XrCompositionLayerFlags b) { return !a.Equals(b); } + public static bool operator >=(XrCompositionLayerFlags a, XrCompositionLayerFlags b) { return a.value >= b.value; } + public static bool operator <=(XrCompositionLayerFlags a, XrCompositionLayerFlags b) { return a.value <= b.value; } + public static bool operator >(XrCompositionLayerFlags a, XrCompositionLayerFlags b) { return a.value > b.value; } + public static bool operator <(XrCompositionLayerFlags a, XrCompositionLayerFlags b) { return a.value < b.value; } + public static XrCompositionLayerFlags operator +(XrCompositionLayerFlags a, XrCompositionLayerFlags b) { return a.value + b.value; } + public static XrCompositionLayerFlags operator -(XrCompositionLayerFlags a, XrCompositionLayerFlags b) { return a.value - b.value; } + public static XrCompositionLayerFlags operator *(XrCompositionLayerFlags a, XrCompositionLayerFlags b) { return a.value * b.value; } + public static XrCompositionLayerFlags operator /(XrCompositionLayerFlags a, XrCompositionLayerFlags b) + { + if (b.value == 0) + { + throw new DivideByZeroException(); + } + return a.value / b.value; + } + } + /// + /// Specifies options for individual composition layers, and contains a bitwise-OR of zero or more of the bits. + /// + [Flags] + public enum XrCompositionLayerFlagBits : UInt64 + { + XR_COMPOSITION_LAYER_CORRECT_CHROMATIC_ABERRATION_BIT = 0x00000001, + XR_COMPOSITION_LAYER_BLEND_TEXTURE_SOURCE_ALPHA_BIT = 0x00000002, + XR_COMPOSITION_LAYER_UNPREMULTIPLIED_ALPHA_BIT = 0x00000004, + XR_COMPOSITION_LAYER_INVERTED_ALPHA_BIT_EXT = 0x00000008, + } + #endregion + + #region 10.6.3. Composition Layer Types + /// + /// The XrEyeVisibility enum selects which of the viewer’s eyes to display a layer. + /// + public enum XrEyeVisibility + { + /// + /// Displays the layer to both eyes. + /// + XR_EYE_VISIBILITY_BOTH = 0, + /// + /// Displays the layer to the viewer’s physical left eye. + /// + XR_EYE_VISIBILITY_LEFT = 1, + /// + /// Displays the layer to the viewer’s physical right eye. + /// + XR_EYE_VISIBILITY_RIGHT = 2, + XR_EYE_VISIBILITY_MAX_ENUM = 0x7FFFFFFF + } + + /// + /// The XrCompositionLayerBaseHeader structure is not intended to be directly used, but forms a basis for defining current and future structures containing composition layer information. The XrFrameEndInfo structure contains an array of pointers to these polymorphic header structures. + /// + [StructLayout(LayoutKind.Sequential)] + public struct XrCompositionLayerBaseHeader + { + /// + /// The XrStructureType of this structure. + /// + public XrStructureType type; + /// + /// Next is NULL or a pointer to the next structure in a structure chain, such as XrPassthroughMeshTransformInfoHTC. + /// + public IntPtr next; + /// + /// A bitmask of XrCompositionLayerFlagBits describing flags to apply to the layer. + /// + public XrCompositionLayerFlags layerFlags; + /// + /// The XrSpace in which the layer will be kept stable over time. + /// + public XrSpace space; + }; + + [StructLayout(LayoutKind.Sequential)] + public struct XrSwapchainSubImage + { + public XrSwapchain swapchain; + public XrRect2Di imageRect; + public uint imageArrayIndex; + } + + public struct XrSwapchainImageBaseHeader + { + public XrStructureType type; + public System.IntPtr next; + } + + public struct XrSwapchainImageOpenGLESKHR + { + public XrStructureType type; + public System.IntPtr next; + public uint image; + } + + public struct XrSwapchainImageOpenGLKHR + { + public XrStructureType type; + public System.IntPtr next; + public uint image; + } + + public struct XrSwapchainImageVulkanKHR + { + public XrStructureType type; + public System.IntPtr next; + public ulong image; // VkImage is 8 bytes + } + + public struct XrSwapchainImageD3D11KHR + { + public XrStructureType type; + public System.IntPtr next; + public System.IntPtr texture; // ID3D11Texture2D* + } + + public struct XrSwapchainImageD3D12KHR + { + public XrStructureType type; + public System.IntPtr next; + public System.IntPtr texture; // ID3D12Resource* + } + + [StructLayout(LayoutKind.Explicit)] + public struct XrSwapchainImageUnion + { + [FieldOffset(0)] + public XrSwapchainImageBaseHeader header; + [FieldOffset(0)] + public XrSwapchainImageOpenGLESKHR openGLES; + [FieldOffset(0)] + public XrSwapchainImageOpenGLKHR openGL; + [FieldOffset(0)] + public XrSwapchainImageVulkanKHR vulkan; + [FieldOffset(0)] + public XrSwapchainImageD3D11KHR d3d11; + [FieldOffset(0)] + public XrSwapchainImageD3D12KHR d3d12; + } + + #endregion + + #region 10.6.4. Environment Blend Mode + /// + /// The possible blend modes are specified by the XrEnvironmentBlendMode enumeration. + /// + public enum XrEnvironmentBlendMode + { + /// + /// The composition layers will be displayed with no view of the physical world behind them. The composited image will be interpreted as an RGB image, ignoring the composited alpha channel. This is the typical mode for VR experiences, although this mode can also be supported on devices that support video passthrough. + /// + XR_ENVIRONMENT_BLEND_MODE_OPAQUE = 1, + /// + /// The composition layers will be additively blended with the real world behind the display. The composited image will be interpreted as an RGB image, ignoring the composited alpha channel during the additive blending. This will cause black composited pixels to appear transparent. This is the typical mode for an AR experience on a see-through headset with an additive display, although this mode can also be supported on devices that support video passthrough. + /// + XR_ENVIRONMENT_BLEND_MODE_ADDITIVE = 2, + /// + /// The composition layers will be alpha-blended with the real world behind the display. The composited image will be interpreted as an RGBA image, with the composited alpha channel determining each pixel’s level of blending with the real world behind the display. This is the typical mode for an AR experience on a phone or headset that supports video passthrough. + /// + XR_ENVIRONMENT_BLEND_MODE_ALPHA_BLEND = 3, + XR_ENVIRONMENT_BLEND_MODE_MAX_ENUM = 0x7FFFFFFF + } + #endregion + + #region 11.2. Action Sets + /// + /// Action sets are application-defined collections of actions. They are attached to a given XrSession with a xrAttachSessionActionSets call. They are enabled or disabled by the application via xrSyncActions depending on the current application context. For example, a game may have one set of actions that apply to controlling a character and another set for navigating a menu system. When these actions are grouped into two XrActionSet handles they can be selectively enabled and disabled using a single function call. + /// + public struct XrActionSet : IEquatable + { + private readonly UInt64 value; + + public XrActionSet(UInt64 u) + { + value = u; + } + + public static implicit operator UInt64(XrActionSet equatable) + { + return equatable.value; + } + public static implicit operator XrActionSet(UInt64 u) + { + return new XrActionSet(u); + } + + public bool Equals(XrActionSet other) + { + return value == other.value; + } + public bool Equals(UInt64 other) + { + return value == other; + } + public override bool Equals(object obj) + { + return obj is XrActionSet && Equals((XrActionSet)obj); + } + + public override int GetHashCode() + { + return value.GetHashCode(); + } + + public override string ToString() + { + return value.ToString(); + } + + public static bool operator ==(XrActionSet a, XrActionSet b) { return a.Equals(b); } + public static bool operator !=(XrActionSet a, XrActionSet b) { return !a.Equals(b); } + public static bool operator >=(XrActionSet a, XrActionSet b) { return a.value >= b.value; } + public static bool operator <=(XrActionSet a, XrActionSet b) { return a.value <= b.value; } + public static bool operator >(XrActionSet a, XrActionSet b) { return a.value > b.value; } + public static bool operator <(XrActionSet a, XrActionSet b) { return a.value < b.value; } + public static XrActionSet operator +(XrActionSet a, XrActionSet b) { return a.value + b.value; } + public static XrActionSet operator -(XrActionSet a, XrActionSet b) { return a.value - b.value; } + public static XrActionSet operator *(XrActionSet a, XrActionSet b) { return a.value * b.value; } + public static XrActionSet operator /(XrActionSet a, XrActionSet b) + { + if (b.value == 0) + { + throw new DivideByZeroException(); + } + return a.value / b.value; + } + + } + #endregion + + #region 11.3. Creating Actions + /// + /// Action handles are used to refer to individual actions when retrieving action data, creating action spaces, or sending haptic events. + /// + public struct XrAction : IEquatable + { + private readonly UInt64 value; + + public XrAction(UInt64 u) + { + value = u; + } + + public static implicit operator UInt64(XrAction equatable) + { + return equatable.value; + } + public static implicit operator XrAction(UInt64 u) + { + return new XrAction(u); + } + + public bool Equals(XrAction other) + { + return value == other.value; + } + public bool Equals(UInt64 other) + { + return value == other; + } + public override bool Equals(object obj) + { + return obj is XrAction && Equals((XrAction)obj); + } + + public override int GetHashCode() + { + return value.GetHashCode(); + } + + public override string ToString() + { + return value.ToString(); + } + + public static bool operator ==(XrAction a, XrAction b) { return a.Equals(b); } + public static bool operator !=(XrAction a, XrAction b) { return !a.Equals(b); } + public static bool operator >=(XrAction a, XrAction b) { return a.value >= b.value; } + public static bool operator <=(XrAction a, XrAction b) { return a.value <= b.value; } + public static bool operator >(XrAction a, XrAction b) { return a.value > b.value; } + public static bool operator <(XrAction a, XrAction b) { return a.value < b.value; } + public static XrAction operator +(XrAction a, XrAction b) { return a.value + b.value; } + public static XrAction operator -(XrAction a, XrAction b) { return a.value - b.value; } + public static XrAction operator *(XrAction a, XrAction b) { return a.value * b.value; } + public static XrAction operator /(XrAction a, XrAction b) + { + if (b.value == 0) + { + throw new DivideByZeroException(); + } + return a.value / b.value; + } + + } + + /// + /// See XrActionCreateInfo for more detail. + /// + public struct XrActionCreateInfo + { + public XrStructureType type; + public IntPtr next; + public char[] actionName; + public XrActionType actionType; + public UInt32 countSubactionPaths; + public XrPath[] subactionPaths; + public char[] localizedActionName; + }; + + /// + /// See XrActionType for more detail. + /// + public enum XrActionType : UInt64 + { + XR_ACTION_TYPE_BOOLEAN_INPUT = 1, + XR_ACTION_TYPE_FLOAT_INPUT = 2, + XR_ACTION_TYPE_VECTOR2F_INPUT = 3, + XR_ACTION_TYPE_POSE_INPUT = 4, + XR_ACTION_TYPE_VIBRATION_OUTPUT = 100, + XR_ACTION_TYPE_MAX_ENUM = 0x7FFFFFFF + } + #endregion + + #region 11.6.2. Structs to describe action and subaction paths + /// + /// The XrActionStateGetInfo structure is used to provide action and subaction paths when calling xrGetActionState* function. + /// + public struct XrActionStateGetInfo + { + public XrStructureType type; + public IntPtr next; + public XrAction action; + public XrPath subactionPath; + } + #endregion + + #region 11.6.5. Pose Actions + /// + /// See XrActionStatePose for more detail. + /// + public struct XrActionStatePose + { + public XrStructureType type; + public IntPtr next; + public XrBool32 isActive; + }; + #endregion + + #region 11.9. Bound Sources + /// + /// See XrInputSourceLocalizedNameGetInfo for more detail. + /// + public struct XrInputSourceLocalizedNameGetInfo + { + public XrStructureType type; + public IntPtr next; + public XrPath sourcePath; + public XrInputSourceLocalizedNameFlags whichComponents; + + public XrInputSourceLocalizedNameGetInfo(XrStructureType in_type, IntPtr in_next, XrPath in_path, XrInputSourceLocalizedNameFlags in_flags) + { + type = in_type; + next = in_next; + sourcePath = in_path; + whichComponents = in_flags; + } + } + + /// + /// Flag bits for XrInputSourceLocalizedNameFlags. + /// + [Flags] + public enum XrInputSourceLocalizedNameFlags : UInt64 + { + /// + /// XrInputSourceLocalizedNameFlags bitmask 0x00000001 indicates that the runtime must include the user path portion of the string in the result, if available. E.g. Left Hand. + /// + XR_INPUT_SOURCE_LOCALIZED_NAME_USER_PATH_BIT = 0x00000001, + /// + /// XrInputSourceLocalizedNameFlags bitmask 0x00000002 indicates that the runtime must include the interaction profile portion of the string in the result, if available. E.g. Vive Controller. + /// + XR_INPUT_SOURCE_LOCALIZED_NAME_INTERACTION_PROFILE_BIT = 0x00000002, + /// + /// XrInputSourceLocalizedNameFlags bitmask 0x00000004 indicates that the runtime must include the input component portion of the string in the result, if available. E.g. Trigger. + /// + XR_INPUT_SOURCE_LOCALIZED_NAME_COMPONENT_BIT = 0x00000004, + + XR_INPUT_SOURCE_LOCALIZED_NAME_SERIAL_NUMBER_BIT_HTC = 0x1000000000000000, + } + #endregion + public static class OpenXRHelper { + #region Input Action Related + /// + /// Error types of . + /// + private enum InputActionErrorType : UInt32 + { + NONE = 0, + REFERENCE_NULL = 1, + ACTION_NULL = 2, + ACTION_DISABLED = 3, + ACTION_ACTIVECONTROL_NULL = 4, + ACTION_CONTROLS_EMPTY = 5, + } + /// + /// Validates if the is valid. + /// + /// The input. + /// The result output. + /// True for valid. + private static InputActionErrorType ValidateAction(InputAction action, out string msg) + { + msg = "Normal"; + + if (action == null) + { + msg = "Null reference action."; + return InputActionErrorType.ACTION_NULL; + } + else if (!action.enabled) + { + msg = "Reference action disabled."; + return InputActionErrorType.ACTION_DISABLED; + } + else if (action.activeControl == null) + { + msg = "No active control of the reference action."; + return InputActionErrorType.ACTION_ACTIVECONTROL_NULL; + } + else if (action.controls.Count <= 0) + { + msg = "Action control count is " + action.controls.Count; + return InputActionErrorType.ACTION_CONTROLS_EMPTY; + } + + return InputActionErrorType.NONE; + } + /// + /// Validates if the InputActionReference is valid. + /// + private static InputActionErrorType ValidateActionReference(InputActionReference actionReference, out string msg) + { + if (actionReference == null) + { + msg = "Null reference"; + return InputActionErrorType.REFERENCE_NULL; + } + + return ValidateAction(actionReference.action, out msg); + } /// /// Validates if the InputActionReference is valid. /// /// The InputActionReference input. /// The result output. - /// + /// True for valid. public static bool VALIDATE(InputActionReference actionReference, out string msg) { - msg = "Normal"; + return ValidateActionReference(actionReference, out msg) == InputActionErrorType.NONE; + } - if (actionReference == null) + /// + /// Retrieves the boolean value of . + /// + /// The input. + /// The boolean value. + /// The result output. + /// True for valid. + public static bool GetButton(InputAction action, out bool value, out string msg) + { + value = false; + + if (ValidateAction(action, out msg) == InputActionErrorType.NONE) { - msg = "Null reference."; - return false; - } - else if (actionReference.action == null) - { - msg = "Null reference action."; - return false; - } - else if (!actionReference.action.enabled) - { - msg = "Reference action disabled."; - return false; - } - else if (actionReference.action.activeControl == null) - { - msg = "No active control of the reference action."; - return false; - } - else if (actionReference.action.controls.Count <= 0) - { - msg = "Action control count is " + actionReference.action.controls.Count; - return false; + if (action.activeControl.valueType == typeof(float)) + value = action.ReadValue() > 0; + if (action.activeControl.valueType == typeof(bool)) + value = action.ReadValue(); + + return true; } - return true; + return false; } /// - /// Transforms an OpenXR Vector to Unity coordinates. + /// Retrieves the float value of . /// - /// Vector3 in OpenXR coordinates. - /// Vector3 in Unity coordinates. - public static Vector3 ToUnityVector(this Vector3 xrVec) + /// The input. + /// The float value. + /// The result output. + /// True for valid. + public static bool GetAnalog(InputAction action, out float value, out string msg) + { + value = 0; + + if (ValidateAction(action, out msg) == InputActionErrorType.NONE) + { + if (action.activeControl.valueType == typeof(float)) + value = action.ReadValue(); + + return true; + } + + return false; + } + /// + /// Retrieves the integer value of . + /// + /// The input. + /// The integer value. + /// The result output. + /// True for valid. + public static bool GetInteger(InputAction action, out InputTrackingState value, out string msg) + { + value = 0; + + if (ValidateAction(action, out msg) == InputActionErrorType.NONE) + { + if (action.activeControl.valueType == typeof(int)) + { + int diff = 0; + int i = action.ReadValue(); + + diff = i & ((int)InputTrackingState.Position); + if (diff != 0) { value |= InputTrackingState.Position; } + + diff = i & ((int)InputTrackingState.Rotation); + if (diff != 0) { value |= InputTrackingState.Rotation; } + + diff = i & ((int)InputTrackingState.Velocity); + if (diff != 0) { value |= InputTrackingState.Velocity; } + + diff = i & ((int)InputTrackingState.AngularVelocity); + if (diff != 0) { value |= InputTrackingState.AngularVelocity; } + + diff = i & ((int)InputTrackingState.Acceleration); + if (diff != 0) { value |= InputTrackingState.Acceleration; } + + diff = i & ((int)InputTrackingState.AngularAcceleration); + if (diff != 0) { value |= InputTrackingState.AngularAcceleration; } + } + + return true; + } + + return false; + } + /// + /// Retrieves the Vector2 value of . + /// + /// The input. + /// The Vector2 value. + /// The result output. + /// True for valid. + public static bool GetVector2(InputAction action, out Vector2 value, out string msg) + { + value = Vector2.zero; + + if (ValidateAction(action, out msg) == InputActionErrorType.NONE) + { + if (action.activeControl.valueType == typeof(Vector2)) + value = action.ReadValue(); + + return true; + } + + return false; + } + /// + /// Retrieves the Vector3 value of . + /// + /// The input. + /// The Vector3 value. + /// The result output. + /// True for valid. + public static bool GetVector3(InputAction action, out Vector3 value, out string msg) + { + value = Vector3.zero; + + if (ValidateAction(action, out msg) == InputActionErrorType.NONE) + { + if (action.activeControl.valueType == typeof(Vector3)) + value = action.ReadValue(); + + return true; + } + + return false; + } + /// + /// Retrieves the Quaternion value of . + /// + /// The input. + /// The Quaternion value. + /// The result output. + /// True for valid. + public static bool GetQuaternion(InputAction action, out Quaternion value, out string msg) + { + value = Quaternion.identity; + + if (ValidateAction(action, out msg) == InputActionErrorType.NONE) + { + if (action.activeControl.valueType == typeof(Quaternion)) + value = action.ReadValue(); + + Vector3 direction = value * Vector3.forward; + return true; + } + + return false; + } + + public static bool GetButton(InputActionReference actionReference, out bool value, out string msg) + { + value = false; + var result = ValidateActionReference(actionReference, out msg); + if (result == InputActionErrorType.NONE) { return GetButton(actionReference.action, out value, out msg); } + if (result == InputActionErrorType.ACTION_ACTIVECONTROL_NULL) + { + value = false; + return true; + } + + return false; + } + public static bool GetAnalog(InputActionReference actionReference, out float value, out string msg) + { + value = 0; + var result = ValidateActionReference(actionReference, out msg); + if (result == InputActionErrorType.NONE) { return GetAnalog(actionReference.action, out value, out msg); } + if (result == InputActionErrorType.ACTION_ACTIVECONTROL_NULL) + { + value = 0; + return true; + } + + return false; + } + public static bool GetInteger(InputActionReference actionReference, out InputTrackingState value, out string msg) + { + value = 0; + var result = ValidateActionReference(actionReference, out msg); + if (result == InputActionErrorType.NONE) { return GetInteger(actionReference.action, out value, out msg); } + + return false; + } + public static bool GetVector2(InputActionReference actionReference, out Vector2 value, out string msg) + { + value = Vector2.zero; + var result = ValidateActionReference(actionReference, out msg); + if (result == InputActionErrorType.NONE) { return GetVector2(actionReference.action, out value, out msg); } + + return false; + } + public static bool GetVector3(InputActionReference actionReference, out Vector3 value, out string msg) + { + value = Vector3.zero; + var result = ValidateActionReference(actionReference, out msg); + if (result == InputActionErrorType.NONE) { return GetVector3(actionReference.action, out value, out msg); } + + return false; + } + public static bool GetQuaternion(InputActionReference actionReference, out Quaternion value, out string msg) + { + value = Quaternion.identity; + var result = ValidateActionReference(actionReference, out msg); + if (result == InputActionErrorType.NONE) { return GetQuaternion(actionReference.action, out value, out msg); } + + return false; + } + public static bool GetPoseIsTracked(InputActionReference actionReference, out bool value, out string msg) + { + value = false; + var result = ValidateActionReference(actionReference, out msg); + if (result == InputActionErrorType.NONE) + { +#if USE_INPUT_SYSTEM_POSE_CONTROL // Scripting Define Symbol added by using OpenXR Plugin 1.6.0. + if (actionReference.action.activeControl.valueType == typeof(UnityEngine.InputSystem.XR.PoseState)) +#else + if (actionReference.action.activeControl.valueType == typeof(UnityEngine.XR.OpenXR.Input.Pose)) +#endif + { +#if USE_INPUT_SYSTEM_POSE_CONTROL // Scripting Define Symbol added by using OpenXR Plugin 1.6.0. + value = actionReference.action.ReadValue().isTracked; +#else + value = actionReference.action.ReadValue().isTracked; +#endif + return true; + } + } + + return false; + } + public static bool GetPoseTrackingState(InputActionReference actionReference, out InputTrackingState value, out string msg) + { + value = InputTrackingState.None; + var result = ValidateActionReference(actionReference, out msg); + if (result == InputActionErrorType.NONE) + { +#if USE_INPUT_SYSTEM_POSE_CONTROL // Scripting Define Symbol added by using OpenXR Plugin 1.6.0. + if (actionReference.action.activeControl.valueType == typeof(UnityEngine.InputSystem.XR.PoseState)) +#else + if (actionReference.action.activeControl.valueType == typeof(UnityEngine.XR.OpenXR.Input.Pose)) +#endif + { +#if USE_INPUT_SYSTEM_POSE_CONTROL // Scripting Define Symbol added by using OpenXR Plugin 1.6.0. + value = actionReference.action.ReadValue().trackingState; +#else + value = actionReference.action.ReadValue().trackingState; +#endif + return true; + } + } + + return false; + } + public static bool GetPosePosition(InputActionReference actionReference, out Vector3 value, out string msg) + { + value = Vector3.zero; + var result = ValidateActionReference(actionReference, out msg); + if (result == InputActionErrorType.NONE) + { +#if USE_INPUT_SYSTEM_POSE_CONTROL // Scripting Define Symbol added by using OpenXR Plugin 1.6.0. + if (actionReference.action.activeControl.valueType == typeof(UnityEngine.InputSystem.XR.PoseState)) +#else + if (actionReference.action.activeControl.valueType == typeof(UnityEngine.XR.OpenXR.Input.Pose)) +#endif + { +#if USE_INPUT_SYSTEM_POSE_CONTROL // Scripting Define Symbol added by using OpenXR Plugin 1.6.0. + value = actionReference.action.ReadValue().position; +#else + value = actionReference.action.ReadValue().position; +#endif + return true; + } + } + + return false; + } + public static bool GetPoseRotation(InputActionReference actionReference, out Quaternion value, out string msg) + { + value = Quaternion.identity; + var result = ValidateActionReference(actionReference, out msg); + if (result == InputActionErrorType.NONE) + { +#if USE_INPUT_SYSTEM_POSE_CONTROL // Scripting Define Symbol added by using OpenXR Plugin 1.6.0. + if (actionReference.action.activeControl.valueType == typeof(UnityEngine.InputSystem.XR.PoseState)) +#else + if (actionReference.action.activeControl.valueType == typeof(UnityEngine.XR.OpenXR.Input.Pose)) +#endif + { +#if USE_INPUT_SYSTEM_POSE_CONTROL // Scripting Define Symbol added by using OpenXR Plugin 1.6.0. + value = actionReference.action.ReadValue().rotation; +#else + value = actionReference.action.ReadValue().rotation; +#endif + return true; + } + } + + return false; + } + public static bool PerformHaptic(InputActionReference actionReference, out string msg) + { + var result = ValidateActionReference(actionReference, out msg); + if (result == InputActionErrorType.NONE) + { + float amplitude = 1.0f; + float duration = 0.1f; + var command = UnityEngine.InputSystem.XR.Haptics.SendHapticImpulseCommand.Create(0, amplitude, duration); + actionReference.action.activeControl.device.ExecuteCommand(ref command); + + return true; + } + + return false; + } + #endregion + + #region Coordinate + /// + /// Transforms an in OpenXR coordinates to Unity coordinates. + /// + /// Vector3 in OpenXR coordinates. + /// Vector3 in Unity coordinates. + public static Vector3 ToUnityVector(this Vector3 xrVec) { Vector3 vec = Vector3.zero; vec.x = xrVec.x; @@ -2124,7 +2767,7 @@ namespace VIVE.OpenXR return vec; } /// - /// Transforms an OpenXR Vector to Unity coordinates. + /// Transforms an OpenXR to an Unity . /// /// XrVector3f in OpenXR coordinates. /// Vector3 in Unity coordinates. @@ -2137,7 +2780,7 @@ namespace VIVE.OpenXR return vec; } /// - /// Transforms an OpenXR Qauternaion to Unity coordinates. + /// Transforms an Qauternaion in OpenXR coordinates to Unity coordinates. /// /// Quaternion in OpenXR coordinates. /// Quaternion in Unity coordinates. @@ -2151,7 +2794,7 @@ namespace VIVE.OpenXR return quat; } /// - /// Transforms an OpenXR Qauternaion to Unity coordinates. + /// Transforms an OpenXR to an Unity . /// /// XrQuaternionf in OpenXR coordinates. /// Quaternion in Unity coordinates. @@ -2164,6 +2807,12 @@ namespace VIVE.OpenXR quat.w = -xrQuat.w; return quat; } + /// + /// Transforms an Unity to an OpenXR . + /// + /// An Unity . + /// True for transforming. + /// in OpenXR coordinates. public static XrVector3f ToOpenXRVector(this Vector3 unityVec, bool convertFromUntiyToOpenXR = true) { XrVector3f vec; @@ -2172,6 +2821,12 @@ namespace VIVE.OpenXR vec.z = convertFromUntiyToOpenXR ? -unityVec.z : unityVec.z; return vec; } + /// + /// Transforms an in Unity coordinates to OpenXR coordinates. + /// + /// in Unity coordinates. + /// True for transforming. + /// in OpenXR coordinates. public static XrVector3f ToOpenXRVector(this XrVector3f unityVec, bool convertFromUntiyToOpenXR = true) { XrVector3f vec; @@ -2180,6 +2835,12 @@ namespace VIVE.OpenXR vec.z = convertFromUntiyToOpenXR ? -unityVec.z : unityVec.z; return vec; } + /// + /// Transforms an Unity to an OpenXR . + /// + /// An Unity . + /// True for transforming. + /// in OpenXR coordinates. public static XrQuaternionf ToOpenXRQuaternion(this Quaternion unityQuat, bool convertFromUntiyToOpenXR = true) { XrQuaternionf quat; @@ -2189,6 +2850,12 @@ namespace VIVE.OpenXR quat.w = convertFromUntiyToOpenXR ? -unityQuat.w : unityQuat.w; return quat; } + /// + /// Transforms an in Unity coordinates to OpenXR coordinates. + /// + /// in Unity coordinates. + /// True for transforming. + /// in OpenXR coordinates. public static XrQuaternionf ToOpenXRQuaternion(this XrQuaternionf unityQuat, bool convertFromUntiyToOpenXR = true) { XrQuaternionf quat; @@ -2198,30 +2865,62 @@ namespace VIVE.OpenXR quat.w = convertFromUntiyToOpenXR ? -unityQuat.w : unityQuat.w; return quat; } + #endregion - [Obsolete("Please use XrSpaceLocationFlags.XR_SPACE_LOCATION_ORIENTATION_VALID_BIT instead.")] - public static XrSpaceLocationFlags XR_SPACE_LOCATION_ORIENTATION_VALID_BIT = XrSpaceLocationFlags.XR_SPACE_LOCATION_ORIENTATION_VALID_BIT; - [Obsolete("Please use XrSpaceLocationFlags.XR_SPACE_LOCATION_POSITION_VALID_BIT instead.")] - public static XrSpaceLocationFlags XR_SPACE_LOCATION_POSITION_VALID_BIT = XrSpaceLocationFlags.XR_SPACE_LOCATION_POSITION_VALID_BIT; - [Obsolete("Please use XrSpaceLocationFlags.XR_SPACE_LOCATION_ORIENTATION_TRACKED_BIT instead.")] - public static XrSpaceLocationFlags XR_SPACE_LOCATION_ORIENTATION_TRACKED_BIT = XrSpaceLocationFlags.XR_SPACE_LOCATION_ORIENTATION_TRACKED_BIT; - [Obsolete("Please use XrSpaceLocationFlags.XR_SPACE_LOCATION_POSITION_TRACKED_BIT instead.")] - public static XrSpaceLocationFlags XR_SPACE_LOCATION_POSITION_TRACKED_BIT = XrSpaceLocationFlags.XR_SPACE_LOCATION_POSITION_TRACKED_BIT; + /// + /// Transfers an UInt64 value to . + /// + public static XrSessionState GetXrSessionState(Int32 value) + { + XrSessionState state = XrSessionState.XR_SESSION_STATE_UNKNOWN; - // Flag bits for XrSwapchainCreateFlags - public static XrSwapchainCreateFlags XR_SWAPCHAIN_CREATE_PROTECTED_CONTENT_BIT = 0x00000001; - public static XrSwapchainCreateFlags XR_SWAPCHAIN_CREATE_STATIC_IMAGE_BIT = 0x00000002; + if (value == (Int32)XrSessionState.XR_SESSION_STATE_IDLE) { state = XrSessionState.XR_SESSION_STATE_IDLE; } + if (value == (Int32)XrSessionState.XR_SESSION_STATE_READY) { state = XrSessionState.XR_SESSION_STATE_READY; } + if (value == (Int32)XrSessionState.XR_SESSION_STATE_SYNCHRONIZED) { state = XrSessionState.XR_SESSION_STATE_SYNCHRONIZED; } + if (value == (Int32)XrSessionState.XR_SESSION_STATE_VISIBLE) { state = XrSessionState.XR_SESSION_STATE_VISIBLE; } + if (value == (Int32)XrSessionState.XR_SESSION_STATE_FOCUSED) { state = XrSessionState.XR_SESSION_STATE_FOCUSED; } + if (value == (Int32)XrSessionState.XR_SESSION_STATE_STOPPING) { state = XrSessionState.XR_SESSION_STATE_STOPPING; } + if (value == (Int32)XrSessionState.XR_SESSION_STATE_LOSS_PENDING) { state = XrSessionState.XR_SESSION_STATE_LOSS_PENDING; } + if (value == (Int32)XrSessionState.XR_SESSION_STATE_EXITING) { state = XrSessionState.XR_SESSION_STATE_EXITING; } + if (value == (Int32)XrSessionState.XR_SESSION_STATE_IDLE) { state = XrSessionState.XR_SESSION_STATE_IDLE; } - // Flag bits for XrSwapchainUsageFlags - public static XrSwapchainUsageFlags XR_SWAPCHAIN_USAGE_COLOR_ATTACHMENT_BIT = 0x00000001; - public static XrSwapchainUsageFlags XR_SWAPCHAIN_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000002; - public static XrSwapchainUsageFlags XR_SWAPCHAIN_USAGE_UNORDERED_ACCESS_BIT = 0x00000004; - public static XrSwapchainUsageFlags XR_SWAPCHAIN_USAGE_TRANSFER_SRC_BIT = 0x00000008; - public static XrSwapchainUsageFlags XR_SWAPCHAIN_USAGE_TRANSFER_DST_BIT = 0x00000010; - public static XrSwapchainUsageFlags XR_SWAPCHAIN_USAGE_SAMPLED_BIT = 0x00000020; - public static XrSwapchainUsageFlags XR_SWAPCHAIN_USAGE_MUTABLE_FORMAT_BIT = 0x00000040; - public static XrSwapchainUsageFlags XR_SWAPCHAIN_USAGE_INPUT_ATTACHMENT_BIT_MND = 0x00000080; - public static XrSwapchainUsageFlags XR_SWAPCHAIN_USAGE_INPUT_ATTACHMENT_BIT_KHR = 0x00000080; + return state; + } + + [Obsolete("Please use XrSwapchainCreateFlags.XR_SWAPCHAIN_CREATE_PROTECTED_CONTENT_BIT instead.")] + public static UInt64 XR_SWAPCHAIN_CREATE_PROTECTED_CONTENT_BIT = 0x00000001; + [Obsolete("Please use XrSwapchainCreateFlags.XR_SWAPCHAIN_CREATE_STATIC_IMAGE_BIT instead.")] + public static UInt64 XR_SWAPCHAIN_CREATE_STATIC_IMAGE_BIT = 0x00000002; + + [Obsolete("Please use XrSwapchainUsageFlags.XR_SWAPCHAIN_USAGE_COLOR_ATTACHMENT_BIT instead.")] + public static UInt64 XR_SWAPCHAIN_USAGE_COLOR_ATTACHMENT_BIT = 0x00000001; + [Obsolete("Please use XrSwapchainUsageFlags.XR_SWAPCHAIN_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT instead.")] + public static UInt64 XR_SWAPCHAIN_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000002; + [Obsolete("Please use XrSwapchainUsageFlags.XR_SWAPCHAIN_USAGE_UNORDERED_ACCESS_BIT instead.")] + public static UInt64 XR_SWAPCHAIN_USAGE_UNORDERED_ACCESS_BIT = 0x00000004; + [Obsolete("Please use XrSwapchainUsageFlags.XR_SWAPCHAIN_USAGE_TRANSFER_SRC_BIT instead.")] + public static UInt64 XR_SWAPCHAIN_USAGE_TRANSFER_SRC_BIT = 0x00000008; + [Obsolete("Please use XrSwapchainUsageFlags.XR_SWAPCHAIN_USAGE_TRANSFER_DST_BIT instead.")] + public static UInt64 XR_SWAPCHAIN_USAGE_TRANSFER_DST_BIT = 0x00000010; + [Obsolete("Please use XrSwapchainUsageFlags.XR_SWAPCHAIN_USAGE_SAMPLED_BIT instead.")] + public static UInt64 XR_SWAPCHAIN_USAGE_SAMPLED_BIT = 0x00000020; + [Obsolete("Please use XrSwapchainUsageFlags.XR_SWAPCHAIN_USAGE_MUTABLE_FORMAT_BIT instead.")] + public static UInt64 XR_SWAPCHAIN_USAGE_MUTABLE_FORMAT_BIT = 0x00000040; + [Obsolete("Please use XrSwapchainUsageFlags.XR_SWAPCHAIN_USAGE_INPUT_ATTACHMENT_BIT_MND instead.")] + public static UInt64 XR_SWAPCHAIN_USAGE_INPUT_ATTACHMENT_BIT_MND = 0x00000080; + [Obsolete("Please use XrSwapchainUsageFlags.XR_SWAPCHAIN_USAGE_INPUT_ATTACHMENT_BIT_KHR instead.")] + public static UInt64 XR_SWAPCHAIN_USAGE_INPUT_ATTACHMENT_BIT_KHR = 0x00000080; + + [Obsolete("Please use XrSpaceVelocityFlags.XR_SPACE_VELOCITY_LINEAR_VALID_BIT instead.")] + /// + /// Indicates the linear velocity is valid. + /// + public static UInt64 XR_SPACE_VELOCITY_LINEAR_VALID_BIT = 0x00000001; + [Obsolete("Please use XrSpaceVelocityFlags.XR_SPACE_VELOCITY_ANGULAR_VALID_BIT instead.")] + /// + /// Indicates the angular velocity is valid. + /// + public static UInt64 XR_SPACE_VELOCITY_ANGULAR_VALID_BIT = 0x00000002; /// /// XrSystemId value 0 indicates an invalid system. @@ -2243,15 +2942,6 @@ namespace VIVE.OpenXR /// public static uint XR_MIN_COMPOSITION_LAYERS_SUPPORTED = 16; - /// - /// Indicates the linear velocity is valid. - /// - public static XrSpaceVelocityFlags XR_SPACE_VELOCITY_LINEAR_VALID_BIT = 0x00000001; - /// - /// Indicates the angular velocity is valid. - /// - public static XrSpaceVelocityFlags XR_SPACE_VELOCITY_ANGULAR_VALID_BIT = 0x00000002; - /// /// The only XrPath value defined to be constant across all instances is the invalid path XR_NULL_PATH. No well-formed path string is associated with XR_NULL_PATH. Unless explicitly permitted, it should not be passed to API calls or used as a structure attribute when a valid XrPath is required. /// @@ -2275,7 +2965,7 @@ namespace VIVE.OpenXR /// The instance that the function pointer will be compatible with, or NULL for functions not dependent on any instance. /// The name of the function to obtain. /// The address of the function pointer to get. - /// XR_SUCCESS for success. + /// for success. public delegate XrResult xrGetInstanceProcAddrDelegate( XrInstance instance, string name, @@ -2287,7 +2977,7 @@ namespace VIVE.OpenXR /// The instance from which systemId was retrieved. /// The XrSystemId whose properties will be queried. /// Points to an instance of the XrSystemProperties structure, that will be filled with returned information. - /// XR_SUCCESS for success. + /// for success. public delegate XrResult xrGetSystemPropertiesDelegate( XrInstance instance, XrSystemId systemId, @@ -2300,7 +2990,7 @@ namespace VIVE.OpenXR /// The capacity of the spaces array, or 0 to indicate a request to retrieve the required capacity. /// A pointer to the count of spaces written, or a pointer to the required capacity in the case that spaceCapacityInput is insufficient. /// A pointer to an application-allocated array that will be filled with the enumerant of each supported reference space. It can be NULL if spaceCapacityInput is 0. - /// XR_SUCCESS for success. + /// for success. public delegate XrResult xrEnumerateReferenceSpacesDelegate( XrSession session, UInt32 spaceCapacityInput, @@ -2313,7 +3003,7 @@ namespace VIVE.OpenXR /// A handle to an XrSession previously created with xrCreateSession. /// The XrReferenceSpaceCreateInfo indicates the space. /// The returned space handle. - /// + /// for success. public delegate XrResult xrCreateReferenceSpaceDelegate( XrSession session, ref XrReferenceSpaceCreateInfo createInfo, @@ -2323,10 +3013,25 @@ namespace VIVE.OpenXR /// The function delegate declaration of xrDestroySpace. /// /// Must be a valid XrSpace handle - /// + /// for success. public delegate XrResult xrDestroySpaceDelegate( XrSpace space); + + public delegate XrResult xrCreateSwapchainDelegate(XrSession session, ref XrSwapchainCreateInfo info, out XrSwapchain swapchain); + + public delegate XrResult xrDestroySwapchainDelegate(XrSwapchain swapchain); + + public delegate XrResult xrEnumerateSwapchainFormatsDelegate(XrSession session, uint capacityInput, ref uint countOutput, [Out] IntPtr swapchainsArray); + + public delegate XrResult xrEnumerateSwapchainImagesDelegate(XrSwapchain swapchain, uint capacityInput, ref uint countOutput, [Out] IntPtr imagesArray); + + public delegate XrResult xrWaitSwapchainImageDelegate(XrSwapchain swapchain, ref XrSwapchainImageWaitInfo waitInfo); + + public delegate XrResult xrAcquireSwapchainImageDelegate(XrSwapchain swapchain, ref XrSwapchainImageAcquireInfo acquireInfo, out uint index); + + public delegate XrResult xrReleaseSwapchainImageDelegate(XrSwapchain swapchain, ref XrSwapchainImageReleaseInfo releaseInfo); + /// /// The function delegate declaration of xrCreateSwapchainAndroidSurfaceKHR. /// @@ -2334,27 +3039,56 @@ namespace VIVE.OpenXR /// info is a pointer to an XrSwapchainCreateInfo structure. /// swapchain is a pointer to a handle in which the created XrSwapchain is returned. /// surface is a pointer to a jobject where the created Android Surface is returned. - /// + /// for success. public delegate XrResult xrCreateSwapchainAndroidSurfaceKHRDelegate( XrSession session, in XrSwapchainCreateInfo info, out XrSwapchain swapchain, out IntPtr surface); + /// + /// The function delegate declaration of xrRequestDisplayRefreshRateFB. + /// + /// A valid handle. + /// A float represents 0.0f or a supported display refresh rate. Supported display refresh rates are indicated by xrEnumerateDisplayRefreshRatesFB. + /// for success. public delegate XrResult xrRequestDisplayRefreshRateFBDelegate( XrSession session, float displayRefreshRate); + /// + /// The function delegate declaration of xrGetDisplayRefreshRateFB. + /// + /// to query.> + /// A pointer to a float into which the current display refresh rate will be placed. + /// for success. public delegate XrResult xrGetDisplayRefreshRateFBDelegate( XrSession session, out float displayRefreshRate); + /// + /// The function delegate declaration of xrEnumerateDisplayRefreshRatesFB. + /// + /// The session that enumerates the supported display refresh rates. + /// The capacity of the displayRefreshRates, or 0 to retrieve the required capacity. + /// A pointer to the count of float displayRefreshRates written, or a pointer to the required capacity in the case that displayRefreshRateCapacityInput is insufficient. + /// A pointer to an array of float display refresh rates, but can be NULL if displayRefreshRateCapacityInput is 0. + /// for success. public delegate XrResult xrEnumerateDisplayRefreshRatesFBDelegate( XrSession session, UInt32 displayRefreshRateCapacityInput, out UInt32 displayRefreshRateCountOutput, out float displayRefreshRates); + /// + /// The function delegate declaration of xrGetInputSourceLocalizedName. + /// + /// A handle to the associated with the action that reported this bound source. + /// An providing the query information. + /// The capacity of the buffer, or 0 to indicate a request to retrieve the required capacity. + /// A pointer to the count of name characters written to buffer (including the terminating \0), or a pointer to the required capacity in the case that bufferCapacityInput is insufficient. + /// A pointer to an application-allocated buffer that will be filled with the bound source name. It can be NULL if bufferCapacityInput is 0. + /// for success. public delegate XrResult xrGetInputSourceLocalizedNameDelegate( XrSession session, ref XrInputSourceLocalizedNameGetInfo getInfo, @@ -2362,70 +3096,68 @@ namespace VIVE.OpenXR ref UInt32 bufferCountOutput, [In, Out] char[] buffer); - public static XrResult GetInputSourceName( - xrGetInputSourceLocalizedNameDelegate xrGetInputSourceLocalizedName, - XrSession session, - ref XrInputSourceLocalizedNameGetInfo nameInfo, - out string sourceName) - { - string func = "GetInputSourceName() "; - - sourceName = ""; - if (xrGetInputSourceLocalizedName == null) { return XrResult.XR_ERROR_VALIDATION_FAILURE; } - - sb.Clear().Append(LOG_TAG).Append(func).Append("path: ").Append(nameInfo.sourcePath).Append(", flag: ").Append((UInt64)nameInfo.whichComponents); DEBUG(sb); - - UInt32 nameSizeIn = 0; - UInt32 nameSizeOut = 0; - char[] buffer = new char[0]; - - XrResult result = xrGetInputSourceLocalizedName(session, ref nameInfo, nameSizeIn, ref nameSizeOut, buffer); - sb.Clear().Append(LOG_TAG).Append(func) - .Append("1.xrGetInputSourceLocalizedName(").Append(nameInfo.sourcePath).Append(") result: ").Append(result) - .Append(", flag: ").Append((UInt64)nameInfo.whichComponents) - .Append(", bufferCapacityInput: ").Append(nameSizeIn) - .Append(", bufferCountOutput: ").Append(nameSizeOut); - DEBUG(sb); - if (result == XrResult.XR_SUCCESS) - { - if (nameSizeOut < 1) - { - sb.Clear().Append(LOG_TAG).Append(func) - .Append("xrGetInputSourceLocalizedName(").Append(nameInfo.sourcePath).Append(")") - .Append(", flag: ").Append((UInt64)nameInfo.whichComponents) - .Append("bufferCountOutput size is invalid!"); - ERROR(sb); - return XrResult.XR_ERROR_VALIDATION_FAILURE; - } - - nameSizeIn = nameSizeOut; - buffer = new char[nameSizeIn]; - - result = xrGetInputSourceLocalizedName(session, ref nameInfo, nameSizeIn, ref nameSizeOut, buffer); - sb.Clear().Append(LOG_TAG).Append(func) - .Append("2.xrGetInputSourceLocalizedName(").Append(nameInfo.sourcePath).Append(") result: ").Append(result) - .Append(", flag: ").Append((UInt64)nameInfo.whichComponents) - .Append(", bufferCapacityInput: ").Append(nameSizeIn) - .Append(", bufferCountOutput: ").Append(nameSizeOut); - DEBUG(sb); - if (result == XrResult.XR_SUCCESS) { sourceName = new string(buffer).TrimEnd('\0'); } - } - - return result; - } - - + /// + /// The function delegate declaration of xrEnumerateInstanceExtensionProperties. + /// + /// Either NULL or a pointer to a string naming the API layer to retrieve extensions from, as returned by xrEnumerateApiLayerProperties. + /// The capacity of the properties array, or 0 to indicate a request to retrieve the required capacity. + /// A pointer to the count of properties written, or a pointer to the required capacity in the case that propertyCapacityInput is insufficient. + /// pointer to an array of structures, but can be NULL if propertyCapacityInput is 0. + /// for success. public delegate XrResult xrEnumerateInstanceExtensionPropertiesDelegate( [In] char[] layerName, UInt32 propertyCapacityInput, ref UInt32 propertyCountOutput, [In, Out] XrExtensionProperties[] properties); + /// + /// The function delegate declaration of xrCreateAction. + /// + /// A handle to an . + /// A pointer to a valid structure that defines the action being created. + /// A pointer to an where the created action is returned. + /// for success. + public delegate XrResult xrCreateActionDelegate( + XrActionSet actionSet, + ref XrActionCreateInfo createInfo, + ref XrAction action); + + /// + /// The function delegate declaration of xrGetActionStatePose. + /// + /// The to query. + /// A pointer to to provide action and subaction paths information. + /// A pointer to a valid into which the state will be placed. + /// for success. + public delegate XrRect2Di xrGetActionStatePoseDelegate( + XrSession session, + ref XrActionStateGetInfo getInfo, + ref XrActionStatePose state); + + /// + /// The function delegate declaration of xrWaitFrame. + /// + /// A handle to an XrSession previously created with xrCreateSession. + /// frameWaitInfo exists for extensibility purposes, it is NULL or a pointer to a valid XrFrameWaitInfo. + /// frameState is a pointer to a valid XrFrameState, an output parameter. + /// 0 for success. + public delegate int xrWaitFrameDelegate(ulong session, ref XrFrameWaitInfo frameWaitInfo, ref XrFrameState frameState); + + /// + /// The function delegate declaration of xrEndFrame. + /// + /// A valid handle. + /// A pointer to a valid . + /// for success. + public delegate XrResult xrEndFrameDelegate(XrSession session, ref XrFrameEndInfo frameEndInfo); + #region API const string LOG_TAG = "VIVE.OpenXR.OpenXRHelper "; static StringBuilder m_sb = null; - static StringBuilder sb { - get { + static StringBuilder sb + { + get + { if (m_sb == null) { m_sb = new StringBuilder(); } return m_sb; } @@ -2493,26 +3225,7 @@ namespace VIVE.OpenXR return supported ? XrResult.XR_SUCCESS : XrResult.XR_ERROR_FEATURE_UNSUPPORTED; } - #endregion - public delegate XrResult xrCreateActionDelegate( - XrActionSet actionSet, - ref XrActionCreateInfo createInfo, - ref XrAction action); - - public delegate XrRect2Di xrGetActionStatePoseDelegate( - XrSession session, - ref XrActionStateGetInfo getInfo, - ref XrActionStatePose state); - /// - /// The function delegate declaration of xrWaitFrame. - /// - /// A handle to an XrSession previously created with xrCreateSession. - /// frameWaitInfo exists for extensibility purposes, it is NULL or a pointer to a valid XrFrameWaitInfo. - /// frameState is a pointer to a valid XrFrameState, an output parameter. - /// - public delegate int xrWaitFrameDelegate(ulong session, ref XrFrameWaitInfo frameWaitInfo, ref XrFrameState frameState); - public delegate XrResult xrEndFrameDelegate(XrSession session, ref XrFrameEndInfo frameEndInfo); /// /// Help call xrGetInstanceProcAddr and convert the result to delegate.\ /// For example, "OpenXRHelper.GetXrFunctionDelegate(GetAddr, xrInstance, "xrGetSystemProperties", out XrGetSystemProperties);" @@ -2525,7 +3238,8 @@ namespace VIVE.OpenXR /// If return false, the outout delegate instance will be default. Should not use it. public static bool GetXrFunctionDelegate(xrGetInstanceProcAddrDelegate XrGetInstanceProcAddr, XrInstance xrInstance, string name, out Type func) { - if (XrGetInstanceProcAddr(xrInstance, name, out var funcPtr) == XrResult.XR_SUCCESS) + var ret = XrGetInstanceProcAddr(xrInstance, name, out var funcPtr); + if (ret == XrResult.XR_SUCCESS) { if (funcPtr != IntPtr.Zero) { @@ -2534,16 +3248,94 @@ namespace VIVE.OpenXR return true; } } - else - { - Debug.LogError("GetXrFunctionDelegate: fail to get address of function: " + name); - } + Debug.LogError("GetXrFunctionDelegate: return " + ret + ". Failed to get function pointer of " + name); func = default; return false; } + + /// + /// Retrieves the information of an according to the . + /// + /// The function delegate of xrGetInputSourceLocalizedName. + /// An of an . + /// An structure provides the query info and type. + /// Output information. + /// for success. + public static XrResult GetInputSourceName( + xrGetInputSourceLocalizedNameDelegate xrGetInputSourceLocalizedName, + XrSession session, + ref XrInputSourceLocalizedNameGetInfo nameInfo, + out string sourceName) + { + string func = "GetInputSourceName() "; + + sourceName = ""; + if (xrGetInputSourceLocalizedName == null) { return XrResult.XR_ERROR_VALIDATION_FAILURE; } + + sb.Clear().Append(LOG_TAG).Append(func).Append("path: ").Append(nameInfo.sourcePath).Append(", flag: ").Append((UInt64)nameInfo.whichComponents); DEBUG(sb); + + UInt32 nameSizeIn = 0; + UInt32 nameSizeOut = 0; + char[] buffer = new char[0]; + + XrResult result = xrGetInputSourceLocalizedName(session, ref nameInfo, nameSizeIn, ref nameSizeOut, buffer); + sb.Clear().Append(LOG_TAG).Append(func) + .Append("1.xrGetInputSourceLocalizedName(").Append(nameInfo.sourcePath).Append(") result: ").Append(result) + .Append(", flag: ").Append((UInt64)nameInfo.whichComponents) + .Append(", bufferCapacityInput: ").Append(nameSizeIn) + .Append(", bufferCountOutput: ").Append(nameSizeOut); + DEBUG(sb); + if (result == XrResult.XR_SUCCESS) + { + if (nameSizeOut < 1) + { + sb.Clear().Append(LOG_TAG).Append(func) + .Append("xrGetInputSourceLocalizedName(").Append(nameInfo.sourcePath).Append(")") + .Append(", flag: ").Append((UInt64)nameInfo.whichComponents) + .Append("bufferCountOutput size is invalid!"); + ERROR(sb); + return XrResult.XR_ERROR_VALIDATION_FAILURE; + } + + nameSizeIn = nameSizeOut; + buffer = new char[nameSizeIn]; + + result = xrGetInputSourceLocalizedName(session, ref nameInfo, nameSizeIn, ref nameSizeOut, buffer); + sb.Clear().Append(LOG_TAG).Append(func) + .Append("2.xrGetInputSourceLocalizedName(").Append(nameInfo.sourcePath).Append(") result: ").Append(result) + .Append(", flag: ").Append((UInt64)nameInfo.whichComponents) + .Append(", bufferCapacityInput: ").Append(nameSizeIn) + .Append(", bufferCountOutput: ").Append(nameSizeOut); + DEBUG(sb); + if (result == XrResult.XR_SUCCESS) { sourceName = new string(buffer).TrimEnd('\0'); } + } + + return result; + } + #endregion + + public static class Trace + { + //private static AndroidJavaClass traceClass = new AndroidJavaClass("android.os.Trace"); + public static void Begin(string sectionName) + { +#if VIVE_XR_TRACE + UnityEngine.Profiling.Profiler.BeginSample(sectionName); + //traceClass?.CallStatic("beginSection", sectionName); +#endif + } + public static void End() + { +#if VIVE_XR_TRACE + UnityEngine.Profiling.Profiler.EndSample(); + //traceClass?.CallStatic("endSection"); +#endif + } + } + } - public static class ClientInterface + public static class ClientInterface { /// /// Checks if the user is presence (near HMD p-sensor < 1cm). @@ -2575,7 +3367,7 @@ namespace VIVE.OpenXR /// A origin mode of TrackingOriginModeFlags public static TrackingOriginModeFlags TrackingOrigin() { - SubsystemManager.GetInstances(s_InputSubsystems); + SubsystemManager.GetSubsystems(s_InputSubsystems); if (s_InputSubsystems.Count > 0) { return s_InputSubsystems[0].GetTrackingOriginMode(); @@ -2584,3 +3376,5 @@ namespace VIVE.OpenXR } } } + + diff --git a/com.htc.upm.vive.openxr/Runtime/Prefabs.meta b/com.htc.upm.vive.openxr/Runtime/Prefabs.meta new file mode 100644 index 0000000..1740b86 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Prefabs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: aa8810306da32dc4a8431aabe0fd978e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Prefabs/ViveFocus3ControllerAimL.prefab b/com.htc.upm.vive.openxr/Runtime/Prefabs/ViveFocus3ControllerAimL.prefab new file mode 100644 index 0000000..4b1c865 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Prefabs/ViveFocus3ControllerAimL.prefab @@ -0,0 +1,893 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &1753249229858437336 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5308071982097081311} + - component: {fileID: 7762120476494498463} + - component: {fileID: 2113669558085593440} + m_Layer: 0 + m_Name: __CM__ButtonX + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5308071982097081311 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1753249229858437336} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0.014716195, y: -0.023606678, z: -0.052663486} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 7100966664432217780} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &7762120476494498463 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1753249229858437336} + m_Mesh: {fileID: 1688988785635390117, guid: 1205485f8d5139f4f9d09bed56cc014d, type: 3} +--- !u!23 &2113669558085593440 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1753249229858437336} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 1c9d256427720f8449c1ec38a2c1767b, 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!1 &2034279279828072002 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3390413219967298979} + - component: {fileID: 9092219122763574392} + - component: {fileID: 5727918709307657610} + m_Layer: 0 + m_Name: __CM__Grip + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3390413219967298979 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2034279279828072002} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0.015075949, y: -0.04494511, z: -0.07555066} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 7100966664432217780} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &9092219122763574392 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2034279279828072002} + m_Mesh: {fileID: 4793660613219112997, guid: 1205485f8d5139f4f9d09bed56cc014d, type: 3} +--- !u!23 &5727918709307657610 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2034279279828072002} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 1c9d256427720f8449c1ec38a2c1767b, 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!1 &3657709981437106939 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7242714224778078730} + - component: {fileID: 2550461172519060509} + - component: {fileID: 5431787095945372182} + m_Layer: 0 + m_Name: __CM__Battery + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7242714224778078730 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3657709981437106939} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0.033077475, y: -0.022055168, z: -0.02735129} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 7100966664432217780} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &2550461172519060509 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3657709981437106939} + m_Mesh: {fileID: -3454782138029922092, guid: 1205485f8d5139f4f9d09bed56cc014d, type: 3} +--- !u!23 &5431787095945372182 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3657709981437106939} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 1c9d256427720f8449c1ec38a2c1767b, 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!1 &3996313994671599332 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7859202342878847837} + - component: {fileID: 6352029818583924111} + - component: {fileID: 1561449067394462310} + m_Layer: 0 + m_Name: __CM__Body + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7859202342878847837 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3996313994671599332} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0.007329085, y: -0.056058478, z: -0.07827362} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 7100966664432217780} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &6352029818583924111 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3996313994671599332} + m_Mesh: {fileID: -5532471787532314371, guid: 1205485f8d5139f4f9d09bed56cc014d, type: 3} +--- !u!23 &1561449067394462310 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3996313994671599332} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 1c9d256427720f8449c1ec38a2c1767b, 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!1 &4888204009097545430 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6431147258901371279} + - component: {fileID: 8211884242989443024} + - component: {fileID: 9080450944945203317} + m_Layer: 0 + m_Name: __CM__Emitter + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6431147258901371279 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4888204009097545430} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0.010549998, y: -0.02799731, z: -0.006118773} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 7100966664432217780} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &8211884242989443024 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4888204009097545430} + m_Mesh: {fileID: -4521666590143857035, guid: 1205485f8d5139f4f9d09bed56cc014d, type: 3} +--- !u!23 &9080450944945203317 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4888204009097545430} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 1c9d256427720f8449c1ec38a2c1767b, 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!1 &5424496826006711545 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2458201409536562131} + - component: {fileID: 9049230560578318655} + - component: {fileID: 182824975772950668} + m_Layer: 0 + m_Name: __CM__AppButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2458201409536562131 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5424496826006711545} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.00195175, y: -0.023139315, z: -0.05368895} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 7100966664432217780} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &9049230560578318655 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5424496826006711545} + m_Mesh: {fileID: -7724262373863937146, guid: 1205485f8d5139f4f9d09bed56cc014d, type: 3} +--- !u!23 &182824975772950668 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5424496826006711545} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 1c9d256427720f8449c1ec38a2c1767b, 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!1 &6543665225532807395 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6872362578395045421} + - component: {fileID: 8143872058805276666} + - component: {fileID: 2918140040237279371} + m_Layer: 0 + m_Name: __CM__ButtonY + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6872362578395045421 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6543665225532807395} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0.02189969, y: -0.02360035, z: -0.04060695} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 7100966664432217780} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &8143872058805276666 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6543665225532807395} + m_Mesh: {fileID: -3389035218075753420, guid: 1205485f8d5139f4f9d09bed56cc014d, type: 3} +--- !u!23 &2918140040237279371 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6543665225532807395} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 1c9d256427720f8449c1ec38a2c1767b, 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!1 &7335146457789819456 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1991292450436973714} + - component: {fileID: 8378975266732635009} + - component: {fileID: 7072119699381194923} + m_Layer: 0 + m_Name: __CM__TriggerKey + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1991292450436973714 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7335146457789819456} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0.0016996048, y: -0.03895693, z: -0.012779215} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 7100966664432217780} + m_RootOrder: 8 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &8378975266732635009 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7335146457789819456} + m_Mesh: {fileID: -2870439426993565530, guid: 1205485f8d5139f4f9d09bed56cc014d, type: 3} +--- !u!23 &7072119699381194923 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7335146457789819456} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 1c9d256427720f8449c1ec38a2c1767b, 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!1 &7620199573934257166 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7100966664432217780} + - component: {fileID: 7278110509283543383} + m_Layer: 0 + m_Name: ViveFocus3ControllerAimL + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7100966664432217780 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7620199573934257166} + m_LocalRotation: {x: 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: 2458201409536562131} + - {fileID: 7242714224778078730} + - {fileID: 7859202342878847837} + - {fileID: 5308071982097081311} + - {fileID: 6872362578395045421} + - {fileID: 6431147258901371279} + - {fileID: 3390413219967298979} + - {fileID: 1362481900523597342} + - {fileID: 1991292450436973714} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &7278110509283543383 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7620199573934257166} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7b221715b73f1a540b587cae4af7fcb8, type: 3} + m_Name: + m_EditorClassIdentifier: + isLeft: 1 + triggerButton: {fileID: 7335146457789819456} + gripButton: {fileID: 2034279279828072002} + thumbstickButton: {fileID: 7623983715243107374} + primaryButton: {fileID: 1753249229858437336} + secondaryButton: {fileID: 6543665225532807395} + trigger: + m_Name: Trigger + m_Type: 0 + m_ExpectedControlType: + m_Id: f5bdb76a-cd85-46b6-adbd-cb3d57d2fe5a + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: fabeed0b-c219-4734-8bd4-d97fc70dedb1 + m_Path: {LeftHand}/trigger + m_Interactions: + m_Processors: + m_Groups: + m_Action: Trigger + m_Flags: 0 + m_Flags: 0 + grip: + m_Name: Grip + m_Type: 0 + m_ExpectedControlType: + m_Id: 66b559f3-3415-4e9f-9009-f872d5f0f13b + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 901cf775-8fff-4e6f-a631-c42b2f806155 + m_Path: {LeftHand}/grip + m_Interactions: + m_Processors: + m_Groups: + m_Action: Grip + m_Flags: 0 + m_Flags: 0 + thumbstick: + m_Name: Thumbstick + m_Type: 0 + m_ExpectedControlType: + m_Id: 06c1c7a2-b28c-4d25-80e5-2ac722d3c0b1 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 53ccc7c3-b3b9-4b73-a795-9ff143e711ba + m_Path: {LeftHand}/thumbstick + m_Interactions: + m_Processors: + m_Groups: + m_Action: Thumbstick + m_Flags: 0 + m_Flags: 0 + primaryClick: + m_Name: Primary Click + m_Type: 0 + m_ExpectedControlType: + m_Id: a08abb9e-1892-4693-8345-f151cfc9c583 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 09521d1c-4da6-465c-8965-8054583c7944 + m_Path: {LeftHand}/primaryButton + m_Interactions: + m_Processors: + m_Groups: + m_Action: Primary Click + m_Flags: 0 + m_Flags: 0 + secondaryClick: + m_Name: Secondary Click + m_Type: 0 + m_ExpectedControlType: + m_Id: f7f3eb25-b409-4c40-9461-a5d8d44e829f + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 2e038272-2200-40d6-bc46-44c922447608 + m_Path: {LeftHand}/secondaryButton + m_Interactions: + m_Processors: + m_Groups: + m_Action: Secondary Click + m_Flags: 0 + m_Flags: 0 +--- !u!1 &7623983715243107374 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1362481900523597342} + - component: {fileID: 9126932347104840689} + - component: {fileID: 5378694994248823657} + m_Layer: 0 + m_Name: __CM__Thumbstick + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1362481900523597342 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7623983715243107374} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.00062244997, y: -0.023058081, z: -0.03569276} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 7100966664432217780} + m_RootOrder: 7 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &9126932347104840689 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7623983715243107374} + m_Mesh: {fileID: 6699701932830050619, guid: 1205485f8d5139f4f9d09bed56cc014d, type: 3} +--- !u!23 &5378694994248823657 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7623983715243107374} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 1c9d256427720f8449c1ec38a2c1767b, 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} diff --git a/com.htc.upm.vive.openxr/Runtime/Prefabs/ViveFocus3ControllerAimL.prefab.meta b/com.htc.upm.vive.openxr/Runtime/Prefabs/ViveFocus3ControllerAimL.prefab.meta new file mode 100644 index 0000000..ff97ef1 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Prefabs/ViveFocus3ControllerAimL.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 02a3bc45c8b055049bac3d6a792481b6 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Prefabs/ViveFocus3ControllerAimR.prefab b/com.htc.upm.vive.openxr/Runtime/Prefabs/ViveFocus3ControllerAimR.prefab new file mode 100644 index 0000000..334af5e --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Prefabs/ViveFocus3ControllerAimR.prefab @@ -0,0 +1,893 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &632636742100127355 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8302863365560313868} + - component: {fileID: 2694380202573083812} + - component: {fileID: 5407750149016203445} + m_Layer: 0 + m_Name: __CM__ButtonA + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8302863365560313868 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 632636742100127355} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.014716195, y: -0.02361, z: -0.052663486} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5562507940235781211} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &2694380202573083812 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 632636742100127355} + m_Mesh: {fileID: 9104446674093834918, guid: 4c587de662ad31e458a63282cb358c4f, type: 3} +--- !u!23 &5407750149016203445 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 632636742100127355} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 1c9d256427720f8449c1ec38a2c1767b, 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!1 &1787804157001262091 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4803989412895680946} + - component: {fileID: 8618972110749333344} + - component: {fileID: 4184175730021447817} + m_Layer: 0 + m_Name: __CM__Body + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4803989412895680946 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1787804157001262091} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.007329085, y: -0.056058478, z: -0.07827362} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5562507940235781211} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &8618972110749333344 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1787804157001262091} + m_Mesh: {fileID: -5532471787532314371, guid: 4c587de662ad31e458a63282cb358c4f, type: 3} +--- !u!23 &4184175730021447817 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1787804157001262091} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 1c9d256427720f8449c1ec38a2c1767b, 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!1 &2123596578632618004 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5420370471701225701} + - component: {fileID: 927533592802266866} + - component: {fileID: 7267641682228390137} + m_Layer: 0 + m_Name: __CM__Battery + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5420370471701225701 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2123596578632618004} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.033077475, y: -0.022055168, z: -0.02735129} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5562507940235781211} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &927533592802266866 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2123596578632618004} + m_Mesh: {fileID: -3454782138029922092, guid: 4c587de662ad31e458a63282cb358c4f, type: 3} +--- !u!23 &7267641682228390137 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2123596578632618004} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 1c9d256427720f8449c1ec38a2c1767b, 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!1 &2300802386383365694 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6866289316303396885} + - component: {fileID: 286814226396739147} + - component: {fileID: 8278003679544476321} + m_Layer: 0 + m_Name: __CM__ButtonB + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6866289316303396885 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2300802386383365694} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.02189969, y: -0.023599999, z: -0.04060695} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5562507940235781211} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &286814226396739147 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2300802386383365694} + m_Mesh: {fileID: -4190156458390666982, guid: 4c587de662ad31e458a63282cb358c4f, type: 3} +--- !u!23 &8278003679544476321 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2300802386383365694} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 1c9d256427720f8449c1ec38a2c1767b, 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!1 &3711381936472767661 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 51622978313791308} + - component: {fileID: 5878394957529769623} + - component: {fileID: 6973801727401953125} + m_Layer: 0 + m_Name: __CM__Grip + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &51622978313791308 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3711381936472767661} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.01508, y: -0.04494511, z: -0.07555066} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5562507940235781211} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &5878394957529769623 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3711381936472767661} + m_Mesh: {fileID: 4793660613219112997, guid: 4c587de662ad31e458a63282cb358c4f, type: 3} +--- !u!23 &6973801727401953125 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3711381936472767661} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 1c9d256427720f8449c1ec38a2c1767b, 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!1 &5077695075236572865 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4418820816285721841} + - component: {fileID: 5842062155584667934} + - component: {fileID: 7286466402721675654} + m_Layer: 0 + m_Name: __CM__Thumbstick + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4418820816285721841 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5077695075236572865} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0.00062244997, y: -0.023058081, z: -0.03569276} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5562507940235781211} + m_RootOrder: 7 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &5842062155584667934 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5077695075236572865} + m_Mesh: {fileID: 6699701932830050619, guid: 4c587de662ad31e458a63282cb358c4f, type: 3} +--- !u!23 &7286466402721675654 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5077695075236572865} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 1c9d256427720f8449c1ec38a2c1767b, 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!1 &5078423398334037729 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5562507940235781211} + - component: {fileID: 5384975833783223219} + m_Layer: 0 + m_Name: ViveFocus3ControllerAimR + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5562507940235781211 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5078423398334037729} + m_LocalRotation: {x: 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: 5420370471701225701} + - {fileID: 4803989412895680946} + - {fileID: 8302863365560313868} + - {fileID: 6866289316303396885} + - {fileID: 8573246568451232608} + - {fileID: 51622978313791308} + - {fileID: 741155233845726019} + - {fileID: 4418820816285721841} + - {fileID: 3753805135967604349} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &5384975833783223219 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5078423398334037729} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7b221715b73f1a540b587cae4af7fcb8, type: 3} + m_Name: + m_EditorClassIdentifier: + isLeft: 0 + triggerButton: {fileID: 5364315849850265775} + gripButton: {fileID: 3711381936472767661} + thumbstickButton: {fileID: 5077695075236572865} + primaryButton: {fileID: 632636742100127355} + secondaryButton: {fileID: 2300802386383365694} + trigger: + m_Name: Trigger + m_Type: 0 + m_ExpectedControlType: + m_Id: 6b9ce664-ea0f-45c4-a409-cf1885887390 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 1c60fb2e-e0e1-483c-b3a5-1cda05c9938a + m_Path: {RightHand}/trigger + m_Interactions: + m_Processors: + m_Groups: + m_Action: Trigger + m_Flags: 0 + m_Flags: 0 + grip: + m_Name: Grip + m_Type: 0 + m_ExpectedControlType: + m_Id: a0f9234f-ecef-43fa-b195-dce20641f881 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: f54828af-1514-4373-a17a-c2c99f8d9e88 + m_Path: {RightHand}/grip + m_Interactions: + m_Processors: + m_Groups: + m_Action: Grip + m_Flags: 0 + m_Flags: 0 + thumbstick: + m_Name: Thumbstick + m_Type: 0 + m_ExpectedControlType: + m_Id: 9ca65922-ee9d-400e-ada9-675da56cf37f + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 2fd33f20-3647-4835-86eb-b7b625e56051 + m_Path: {RightHand}/thumbstick + m_Interactions: + m_Processors: + m_Groups: + m_Action: Thumbstick + m_Flags: 0 + m_Flags: 0 + primaryClick: + m_Name: Primary Click + m_Type: 0 + m_ExpectedControlType: + m_Id: 875ad00c-5d74-4b5a-8b29-5e485e6008d5 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 8b70a270-1f52-454b-8ad7-1529976f7126 + m_Path: {RightHand}/primaryButton + m_Interactions: + m_Processors: + m_Groups: + m_Action: Primary Click + m_Flags: 0 + m_Flags: 0 + secondaryClick: + m_Name: Secondary Click + m_Type: 0 + m_ExpectedControlType: + m_Id: c6be62fe-7f33-4a07-b1d1-17917cb00c47 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 602dc65d-08ba-4b8b-bb22-b9814186f930 + m_Path: {RightHand}/secondaryButton + m_Interactions: + m_Processors: + m_Groups: + m_Action: Secondary Click + m_Flags: 0 + m_Flags: 0 +--- !u!1 &5364315849850265775 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3753805135967604349} + - component: {fileID: 6625452093915642222} + - component: {fileID: 5593324960098343492} + m_Layer: 0 + m_Name: __CM__TriggerKey + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3753805135967604349 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5364315849850265775} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.0016994361, y: -0.038957108, z: -0.0127791865} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5562507940235781211} + m_RootOrder: 8 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &6625452093915642222 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5364315849850265775} + m_Mesh: {fileID: -2870439426993565530, guid: 4c587de662ad31e458a63282cb358c4f, type: 3} +--- !u!23 &5593324960098343492 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5364315849850265775} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 1c9d256427720f8449c1ec38a2c1767b, 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!1 &7525840208512633918 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 741155233845726019} + - component: {fileID: 6394327323196842600} + - component: {fileID: 70086991671249880} + m_Layer: 0 + m_Name: __CM__HomeButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &741155233845726019 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7525840208512633918} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0.00195175, y: -0.023319656, z: -0.05368895} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5562507940235781211} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &6394327323196842600 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7525840208512633918} + m_Mesh: {fileID: 6874284691703473906, guid: 4c587de662ad31e458a63282cb358c4f, type: 3} +--- !u!23 &70086991671249880 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7525840208512633918} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 1c9d256427720f8449c1ec38a2c1767b, 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!1 &7812671863904144441 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8573246568451232608} + - component: {fileID: 6794864465001524543} + - component: {fileID: 5890270746307322522} + m_Layer: 0 + m_Name: __CM__Emitter + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8573246568451232608 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7812671863904144441} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.010549998, y: -0.02799731, z: -0.006118773} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5562507940235781211} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &6794864465001524543 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7812671863904144441} + m_Mesh: {fileID: -4521666590143857035, guid: 4c587de662ad31e458a63282cb358c4f, type: 3} +--- !u!23 &5890270746307322522 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7812671863904144441} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 1c9d256427720f8449c1ec38a2c1767b, 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} diff --git a/com.htc.upm.vive.openxr/Runtime/Prefabs/ViveFocus3ControllerAimR.prefab.meta b/com.htc.upm.vive.openxr/Runtime/Prefabs/ViveFocus3ControllerAimR.prefab.meta new file mode 100644 index 0000000..1925756 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Prefabs/ViveFocus3ControllerAimR.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: a6579de606ad5b54893722f363b5371d +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Prefabs/ViveHandL.prefab b/com.htc.upm.vive.openxr/Runtime/Prefabs/ViveHandL.prefab new file mode 100644 index 0000000..b7db14b --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Prefabs/ViveHandL.prefab @@ -0,0 +1,1011 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &563285293907216682 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6470385228302516584} + m_Layer: 0 + m_Name: WaveBone_21 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6470385228302516584 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 563285293907216682} + m_LocalRotation: {x: 0, y: -0.13052619, z: -0, w: 0.9914449} + m_LocalPosition: {x: -0.0135, y: -0.00377, z: 0.014087} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1096142950654539604} + m_Father: {fileID: 147320438373958307} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &759523780672297230 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5248930422407070240} + m_Layer: 0 + m_Name: WaveBone_24 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5248930422407070240 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 759523780672297230} + m_LocalRotation: {x: 0, y: 0.000000017414326, z: -0, w: 1} + m_LocalPosition: {x: -0.000000088214875, y: -5.9604643e-10, z: 0.020000009} + m_LocalScale: {x: 0.99999994, y: 1.0000001, z: 0.99999994} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 5097054471261869197} + m_Father: {fileID: 4546296064351210097} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &832397463798793809 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4625970722128892613} + m_Layer: 0 + m_Name: WaveBone_9 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4625970722128892613 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 832397463798793809} + m_LocalRotation: {x: 0, y: -0.000000010524944, z: -0, w: 1} + m_LocalPosition: {x: -0.000000027418134, y: 0, z: 0.023999996} + m_LocalScale: {x: 0.99999994, y: 1, z: 0.99999994} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 7843542007427011018} + m_Father: {fileID: 3344350994335837986} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1450302851954974695 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2768153764770039096} + m_Layer: 0 + m_Name: WaveBone_20 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2768153764770039096 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1450302851954974695} + m_LocalRotation: {x: 0, y: 0.000000016185927, z: -0, w: 1} + m_LocalPosition: {x: -0.000000014305114, y: 0, z: 0.024000015} + m_LocalScale: {x: 1, y: 1.0000001, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 7310884587830808596} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1898752738138233789 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2421797349095970125} + m_Layer: 0 + m_Name: WaveBone_3 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2421797349095970125 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1898752738138233789} + m_LocalRotation: {x: 0.000006679873, y: -0.0000014081958, z: 0.0000014624495, w: 1} + m_LocalPosition: {x: -0.00000006079674, y: -0.000000043511385, z: 0.033} + m_LocalScale: {x: 1, y: 1.0000001, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 7227639061456864290} + m_Father: {fileID: 4793002834500722147} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1913948121840767955 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7843542007427011018} + m_Layer: 0 + m_Name: WaveBone_10 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7843542007427011018 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1913948121840767955} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0.00000012516975, y: 0, z: 0.020999994} + m_LocalScale: {x: 0.99999994, y: 0.9999999, z: 0.99999994} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 4625970722128892613} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &2876054873434138752 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7907178834978045421} + m_Layer: 0 + m_Name: WaveBone_11 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7907178834978045421 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2876054873434138752} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0, y: 0.0039700004, z: 0.017509} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1153405096493379652} + m_Father: {fileID: 147320438373958307} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &3245784042008043000 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4793002834500722147} + m_Layer: 0 + m_Name: WaveBone_2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4793002834500722147 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3245784042008043000} + m_LocalRotation: {x: -0.06383911, y: 0.37579426, z: -0.5325287, w: 0.7557225} + m_LocalPosition: {x: 0.029179761, y: -0.01776861, z: 0.022809882} + m_LocalScale: {x: 1, y: 0.99999994, z: 1.0000001} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 2421797349095970125} + m_Father: {fileID: 147320438373958307} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &3561709867662086402 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 257508871346736436} + m_Layer: 0 + m_Name: WaveBone_0 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &257508871346736436 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3561709867662086402} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0, y: 1.4210854e-16, z: 0.04502} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 147320438373958307} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &3897851099906662794 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1153405096493379652} + m_Layer: 0 + m_Name: WaveBone_12 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1153405096493379652 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3897851099906662794} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0, y: -0.0039700004, z: 0.07254001} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1672987297956185180} + m_Father: {fileID: 7907178834978045421} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &4294530322480739785 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1672987297956185180} + m_Layer: 0 + m_Name: WaveBone_13 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1672987297956185180 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4294530322480739785} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0, y: 0, z: 0.044000003} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 8564222831026123479} + m_Father: {fileID: 1153405096493379652} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &5277967938119028541 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4788675833995466119} + - component: {fileID: 5043594191027925602} + m_Layer: 0 + m_Name: ViveHandL + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4788675833995466119 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5277967938119028541} + m_LocalRotation: {x: 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: 3228339300291550638} + - {fileID: 147320438373958307} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &5043594191027925602 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5277967938119028541} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 916de3f5e8e977e4bb28c81a7b35921a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IsLeft: 1 + m_Wrist: {fileID: 8019592484596630502} + m_Palm: {fileID: 3561709867662086402} + m_Thumb_Metacarpal: {fileID: 3245784042008043000} + m_Thumb_Proximal: {fileID: 1898752738138233789} + m_Thumb_Distal: {fileID: 7311822997630714340} + m_Thumb_Tip: {fileID: 7379336240892608091} + m_Index_Metacarpal: {fileID: 7303559211390068940} + m_Index_Proximal: {fileID: 5396284880613769261} + m_Index_Intermediate: {fileID: 7299818439560411966} + m_Index_Distal: {fileID: 832397463798793809} + m_Index_Tip: {fileID: 1913948121840767955} + m_Middle_Metacarpal: {fileID: 2876054873434138752} + m_Middle_Proximal: {fileID: 3897851099906662794} + m_Middle_Intermediate: {fileID: 4294530322480739785} + m_Middle_Distal: {fileID: 7573658386436168181} + m_Middle_Tip: {fileID: 6552901708401511947} + m_Ring_Metacarpal: {fileID: 5298287618485832572} + m_Ring_Proximal: {fileID: 6798807035196450212} + m_Ring_Intermediate: {fileID: 8007989865467487732} + m_Ring_Distal: {fileID: 6441504291191141440} + m_Ring_Tip: {fileID: 1450302851954974695} + m_Little_Metacarpal: {fileID: 563285293907216682} + m_Little_Proximal: {fileID: 5574094393235311734} + m_Little_Intermediate: {fileID: 9173602175081861904} + m_Little_Distal: {fileID: 759523780672297230} + m_Little_Tip: {fileID: 9066400004992861502} +--- !u!1 &5298287618485832572 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3982981976221658627} + m_Layer: 0 + m_Name: WaveBone_16 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3982981976221658627 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5298287618485832572} + m_LocalRotation: {x: 0, y: -0.087155744, z: -0, w: 0.9961947} + m_LocalPosition: {x: -0.0071100006, y: 0.0018999999, z: 0.016959} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 5295218552373748935} + m_Father: {fileID: 147320438373958307} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &5396284880613769261 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 9134421236691991156} + m_Layer: 0 + m_Name: WaveBone_7 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &9134421236691991156 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5396284880613769261} + m_LocalRotation: {x: 0, y: 0.008726535, z: -0, w: 0.9999619} + m_LocalPosition: {x: 0.0053899977, y: -0.00638, z: 0.075009994} + m_LocalScale: {x: 1.0000001, y: 0.99999994, z: 1.0000001} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 3344350994335837986} + m_Father: {fileID: 3466265502675814956} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &5574094393235311734 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1096142950654539604} + m_Layer: 0 + m_Name: WaveBone_22 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1096142950654539604 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5574094393235311734} + m_LocalRotation: {x: 0, y: -0.05233605, z: -0, w: 0.9986295} + m_LocalPosition: {x: -0.012759997, y: -0.0061099995, z: 0.058639992} + m_LocalScale: {x: 0.99999994, y: 1, z: 0.99999994} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 4546296064351210097} + m_Father: {fileID: 6470385228302516584} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &6441504291191141440 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7310884587830808596} + m_Layer: 0 + m_Name: WaveBone_19 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7310884587830808596 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6441504291191141440} + m_LocalRotation: {x: 0, y: 0.000000008926303, z: -0, w: 1} + m_LocalPosition: {x: 0.000000042915342, y: 0, z: 0.027000004} + m_LocalScale: {x: 1.0000001, y: 1.0000001, z: 1.0000001} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 2768153764770039096} + m_Father: {fileID: 8224732635778907987} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &6552901708401511947 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7838539754174035907} + m_Layer: 0 + m_Name: WaveBone_15 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7838539754174035907 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6552901708401511947} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0, y: 0, z: 0.024000006} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 8564222831026123479} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &6798807035196450212 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5295218552373748935} + m_Layer: 0 + m_Name: WaveBone_17 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5295218552373748935 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6798807035196450212} + m_LocalRotation: {x: 0, y: -0.026176952, z: -0, w: 0.99965733} + m_LocalPosition: {x: -0.0046699992, y: -0.0050500003, z: 0.06539} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 8224732635778907987} + m_Father: {fileID: 3982981976221658627} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &7299818439560411966 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3344350994335837986} + m_Layer: 0 + m_Name: WaveBone_8 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3344350994335837986 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7299818439560411966} + m_LocalRotation: {x: 0, y: 0.000000010524943, z: -0, w: 1} + m_LocalPosition: {x: -0.000000013113022, y: 0, z: 0.040999997} + m_LocalScale: {x: 1.0000001, y: 1, z: 1.0000001} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 4625970722128892613} + m_Father: {fileID: 9134421236691991156} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &7303559211390068940 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3466265502675814956} + m_Layer: 0 + m_Name: WaveBone_6 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3466265502675814956 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7303559211390068940} + m_LocalRotation: {x: 0, y: 0.043619387, z: -0, w: 0.99904823} + m_LocalPosition: {x: 0.01236, y: 0.0032300006, z: 0.016998} + m_LocalScale: {x: 1.0000001, y: 1, z: 1.0000001} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 9134421236691991156} + m_Father: {fileID: 147320438373958307} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &7311822997630714340 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7227639061456864290} + m_Layer: 0 + m_Name: WaveBone_4 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7227639061456864290 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7311822997630714340} + m_LocalRotation: {x: -0.000000068684145, y: -0.000000031604234, z: 0.00000008584645, w: 1} + m_LocalPosition: {x: 0.0000000047683715, y: 0.00000006198883, z: 0.028} + m_LocalScale: {x: 1.0000001, y: 0.99999994, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 3884788053116636215} + m_Father: {fileID: 2421797349095970125} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &7379336240892608091 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3884788053116636215} + m_Layer: 0 + m_Name: WaveBone_5 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3884788053116636215 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7379336240892608091} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0.000000021457671, y: -0.0000000047683715, z: 0.035000008} + m_LocalScale: {x: 1.0000001, y: 1.0000001, z: 1.0000001} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 7227639061456864290} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &7573658386436168181 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8564222831026123479} + m_Layer: 0 + m_Name: WaveBone_14 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8564222831026123479 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7573658386436168181} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0, y: 0, z: 0.024999997} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 7838539754174035907} + m_Father: {fileID: 1672987297956185180} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &8007989865467487732 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8224732635778907987} + m_Layer: 0 + m_Name: WaveBone_18 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8224732635778907987 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8007989865467487732} + m_LocalRotation: {x: 0, y: 0.00000002344555, z: -0, w: 1} + m_LocalPosition: {x: -0.00000010848045, y: 0, z: 0.04} + m_LocalScale: {x: 0.9999999, y: 1, z: 0.9999999} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 7310884587830808596} + m_Father: {fileID: 5295218552373748935} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &8019592484596630502 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 147320438373958307} + m_Layer: 0 + m_Name: WaveBone_1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &147320438373958307 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8019592484596630502} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0.0000000023841857, y: 0.0000000011920929, z: 0.000000010017686} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 257508871346736436} + - {fileID: 4793002834500722147} + - {fileID: 3466265502675814956} + - {fileID: 7907178834978045421} + - {fileID: 3982981976221658627} + - {fileID: 6470385228302516584} + m_Father: {fileID: 4788675833995466119} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &9066400004992861502 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5097054471261869197} + m_Layer: 0 + m_Name: WaveBone_25 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5097054471261869197 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9066400004992861502} + m_LocalRotation: {x: 0, y: -0.000000027551199, z: -0, w: 1} + m_LocalPosition: {x: 0.000000057220458, y: 0, z: 0.020000009} + m_LocalScale: {x: 1.0000001, y: 0.99999994, z: 1.0000001} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5248930422407070240} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &9108410982599699673 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3228339300291550638} + - component: {fileID: 3846580995442109305} + m_Layer: 0 + m_Name: LeftHand_mesh + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3228339300291550638 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9108410982599699673} + m_LocalRotation: {x: 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: 4788675833995466119} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!137 &3846580995442109305 +SkinnedMeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9108410982599699673} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 3 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: dc999998687fce943a2d62982cf3bb17, 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 + serializedVersion: 2 + m_Quality: 0 + m_UpdateWhenOffscreen: 0 + m_SkinnedMotionVectors: 1 + m_Mesh: {fileID: 26486974624506084, guid: 55e3f88cac20c634690f1452306eb523, type: 3} + m_Bones: + - {fileID: 4793002834500722147} + - {fileID: 2421797349095970125} + - {fileID: 9134421236691991156} + - {fileID: 147320438373958307} + - {fileID: 7227639061456864290} + - {fileID: 1096142950654539604} + - {fileID: 4546296064351210097} + - {fileID: 5248930422407070240} + - {fileID: 5295218552373748935} + - {fileID: 8224732635778907987} + - {fileID: 7310884587830808596} + - {fileID: 2768153764770039096} + - {fileID: 7838539754174035907} + - {fileID: 5097054471261869197} + - {fileID: 1153405096493379652} + - {fileID: 3344350994335837986} + - {fileID: 4625970722128892613} + - {fileID: 1672987297956185180} + - {fileID: 8564222831026123479} + - {fileID: 3466265502675814956} + m_BlendShapeWeights: [] + m_RootBone: {fileID: 147320438373958307} + m_AABB: + m_Center: {x: 0.019493714, y: -0.016222348, z: 0.07383499} + m_Extent: {x: 0.097811684, y: 0.07150439, z: 0.110196255} + m_DirtyAABB: 0 +--- !u!1 &9173602175081861904 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4546296064351210097} + m_Layer: 0 + m_Name: WaveBone_23 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4546296064351210097 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9173602175081861904} + m_LocalRotation: {x: 0, y: 2.7167157e-10, z: -0, w: 1} + m_LocalPosition: {x: 0.000000057220458, y: 0, z: 0.032} + m_LocalScale: {x: 0.99999994, y: 0.99999994, z: 0.99999994} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 5248930422407070240} + m_Father: {fileID: 1096142950654539604} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} diff --git a/com.htc.upm.vive.openxr/Runtime/Prefabs/ViveHandL.prefab.meta b/com.htc.upm.vive.openxr/Runtime/Prefabs/ViveHandL.prefab.meta new file mode 100644 index 0000000..d4133ce --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Prefabs/ViveHandL.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 6920a1d2bb2938a4a81cc1ea017b3610 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Prefabs/ViveHandR.prefab b/com.htc.upm.vive.openxr/Runtime/Prefabs/ViveHandR.prefab new file mode 100644 index 0000000..1e2d7e0 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Prefabs/ViveHandR.prefab @@ -0,0 +1,1011 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &136583756104236849 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7956246452268711722} + m_Layer: 0 + m_Name: WaveBone_2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7956246452268711722 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 136583756104236849} + m_LocalRotation: {x: -0.06383919, y: -0.3757943, z: 0.53252876, w: 0.75572234} + m_LocalPosition: {x: -0.029179761, y: -0.01776861, z: 0.022809882} + m_LocalScale: {x: 1, y: 0.99999994, z: 1.0000001} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 969851220450752388} + m_Father: {fileID: 3379118606129586282} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &794786357459913289 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4707836187815010084} + m_Layer: 0 + m_Name: WaveBone_11 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4707836187815010084 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 794786357459913289} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.0000000047683715, y: 0.0039700004, z: 0.01750907} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 4390972817873031821} + m_Father: {fileID: 3379118606129586282} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1690914482679748352 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4312702715332421269} + m_Layer: 0 + m_Name: WaveBone_13 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4312702715332421269 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1690914482679748352} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0, y: 0, z: 0.044000003} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 6499910435262763038} + m_Father: {fileID: 4390972817873031821} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1943755946017047363 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4390972817873031821} + m_Layer: 0 + m_Name: WaveBone_12 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4390972817873031821 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1943755946017047363} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0, y: -0.0039700004, z: 0.07254001} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 4312702715332421269} + m_Father: {fileID: 4707836187815010084} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &2126777716130427851 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3421807334690222077} + m_Layer: 0 + m_Name: WaveBone_0 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3421807334690222077 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2126777716130427851} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0, y: 0, z: 0.04502} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 3379118606129586282} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &2766397140317256647 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7221974145766760681} + m_Layer: 0 + m_Name: WaveBone_24 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7221974145766760681 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2766397140317256647} + m_LocalRotation: {x: 0, y: -0.000000017414326, z: -0, w: 1} + m_LocalPosition: {x: 0.000000088214875, y: -5.9604643e-10, z: 0.020000009} + m_LocalScale: {x: 0.99999994, y: 1.0000001, z: 0.99999994} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 7661196194928555588} + m_Father: {fileID: 1439420693631609016} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &2838160865918903448 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7844380550725021708} + m_Layer: 0 + m_Name: WaveBone_9 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7844380550725021708 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2838160865918903448} + m_LocalRotation: {x: 0, y: -0.0000000068200605, z: -0, w: 1} + m_LocalPosition: {x: 0.000000027418134, y: 0, z: 0.023999996} + m_LocalScale: {x: 0.99999994, y: 1, z: 0.99999994} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 4627363638722802435} + m_Father: {fileID: 182374700590534123} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &3116308070949563363 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8441157771340227489} + m_Layer: 0 + m_Name: WaveBone_21 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8441157771340227489 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3116308070949563363} + m_LocalRotation: {x: 0, y: 0.1305262, z: -0, w: 0.9914449} + m_LocalPosition: {x: 0.013503451, y: -0.0037699984, z: 0.014087315} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 2582851103131751837} + m_Father: {fileID: 3379118606129586282} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &3918656131348787482 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4627363638722802435} + m_Layer: 0 + m_Name: WaveBone_10 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4627363638722802435 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3918656131348787482} + m_LocalRotation: {x: -1.776357e-15, y: -0.0000000037252907, z: -6.6174465e-24, w: 1} + m_LocalPosition: {x: -0, y: 0, z: 0.020999994} + m_LocalScale: {x: 0.99999994, y: 0.99999994, z: 0.99999994} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 7844380550725021708} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &3942849652166801780 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 969851220450752388} + m_Layer: 0 + m_Name: WaveBone_3 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &969851220450752388 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3942849652166801780} + m_LocalRotation: {x: 0.000006679873, y: 0.0000014081958, z: -0.0000014624495, w: 1} + m_LocalPosition: {x: 0.00000006079674, y: -0.000000043511385, z: 0.033} + m_LocalScale: {x: 1, y: 1.0000001, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 5234258358750734059} + m_Father: {fileID: 7956246452268711722} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &4093468127695224110 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 757761967915821041} + m_Layer: 0 + m_Name: WaveBone_20 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &757761967915821041 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4093468127695224110} + m_LocalRotation: {x: 0, y: -0.000000016185927, z: -0, w: 1} + m_LocalPosition: {x: -0.0000000023841857, y: -0.0000000017881393, z: 0.024000015} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5303854547744305885} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &4874365601770725679 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3379118606129586282} + m_Layer: 0 + m_Name: WaveBone_1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3379118606129586282 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4874365601770725679} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.0000000023841857, y: 0.0000000011920929, z: 0.000000010017686} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 3421807334690222077} + - {fileID: 7956246452268711722} + - {fileID: 2086520454331623653} + - {fileID: 4707836187815010084} + - {fileID: 1992856378725797066} + - {fileID: 8441157771340227489} + m_Father: {fileID: 7969860735434438478} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &4885403986526799677 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6830403249665924506} + m_Layer: 0 + m_Name: WaveBone_18 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6830403249665924506 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4885403986526799677} + m_LocalRotation: {x: 0, y: -0.000000016185927, z: -0, w: 1} + m_LocalPosition: {x: 0.00000010848045, y: 0, z: 0.04} + m_LocalScale: {x: 0.9999999, y: 1, z: 0.9999999} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 5303854547744305885} + m_Father: {fileID: 7318925983759762958} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &4966767598850057805 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8281674560845470514} + - component: {fileID: 962854076037838048} + m_Layer: 0 + m_Name: RightHand_mesh + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8281674560845470514 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4966767598850057805} + m_LocalRotation: {x: 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: 7969860735434438478} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!137 &962854076037838048 +SkinnedMeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4966767598850057805} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 3 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: dc999998687fce943a2d62982cf3bb17, 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 + serializedVersion: 2 + m_Quality: 0 + m_UpdateWhenOffscreen: 0 + m_SkinnedMotionVectors: 1 + m_Mesh: {fileID: -4584993129147218460, guid: 5c9af3a1eed9bfd4884f627bc8417ae6, type: 3} + m_Bones: + - {fileID: 7956246452268711722} + - {fileID: 969851220450752388} + - {fileID: 5921550608059619517} + - {fileID: 3379118606129586282} + - {fileID: 5234258358750734059} + - {fileID: 2582851103131751837} + - {fileID: 1439420693631609016} + - {fileID: 7221974145766760681} + - {fileID: 7318925983759762958} + - {fileID: 6830403249665924506} + - {fileID: 5303854547744305885} + - {fileID: 757761967915821041} + - {fileID: 4622521912557901066} + - {fileID: 7661196194928555588} + - {fileID: 4390972817873031821} + - {fileID: 182374700590534123} + - {fileID: 7844380550725021708} + - {fileID: 4312702715332421269} + - {fileID: 6499910435262763038} + - {fileID: 2086520454331623653} + m_BlendShapeWeights: [] + m_RootBone: {fileID: 3379118606129586282} + m_AABB: + m_Center: {x: -0.019183576, y: -0.016590936, z: 0.07403994} + m_Extent: {x: 0.09750151, y: 0.07150437, z: 0.109991334} + m_DirtyAABB: 0 +--- !u!1 &5041044744764177212 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6499910435262763038} + m_Layer: 0 + m_Name: WaveBone_14 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6499910435262763038 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5041044744764177212} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0, y: 0, z: 0.024999997} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 4622521912557901066} + m_Father: {fileID: 4312702715332421269} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &5302629118157038381 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5234258358750734059} + m_Layer: 0 + m_Name: WaveBone_4 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5234258358750734059 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5302629118157038381} + m_LocalRotation: {x: -0.000000068684145, y: 0.000000031604234, z: -0.00000008584645, w: 1} + m_LocalPosition: {x: -0.0000000047683715, y: 0.00000006198883, z: 0.028} + m_LocalScale: {x: 1.0000001, y: 0.99999994, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1803660274626588414} + m_Father: {fileID: 969851220450752388} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &5305314447751059959 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 182374700590534123} + m_Layer: 0 + m_Name: WaveBone_8 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &182374700590534123 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5305314447751059959} + m_LocalRotation: {x: 0, y: 0.0000000068200605, z: -0, w: 1} + m_LocalPosition: {x: 0.000000013113022, y: 0, z: 0.040999997} + m_LocalScale: {x: 1.0000001, y: 1, z: 1.0000001} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 7844380550725021708} + m_Father: {fileID: 5921550608059619517} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &5311183463381256709 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2086520454331623653} + m_Layer: 0 + m_Name: WaveBone_6 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2086520454331623653 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5311183463381256709} + m_LocalRotation: {x: 0, y: -0.04361953, z: -0, w: 0.99904823} + m_LocalPosition: {x: -0.012360502, y: 0.0032300018, z: 0.016998958} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 5921550608059619517} + m_Father: {fileID: 3379118606129586282} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &5370193352345705618 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1803660274626588414} + m_Layer: 0 + m_Name: WaveBone_5 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1803660274626588414 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5370193352345705618} + m_LocalRotation: {x: -0.0000000074505784, y: 0.000000014901161, z: 0.000000014901161, w: 1} + m_LocalPosition: {x: 0.0000000023841857, y: 0.0000000035762786, z: 0.03499999} + m_LocalScale: {x: 0.99999994, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5234258358750734059} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &5853619125604591607 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7661196194928555588} + m_Layer: 0 + m_Name: WaveBone_25 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7661196194928555588 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5853619125604591607} + m_LocalRotation: {x: 0, y: 0.0000000136397755, z: -0, w: 1} + m_LocalPosition: {x: -0.000000009536743, y: -0.0000000011920929, z: 0.020000009} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 7221974145766760681} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &6026176681350951385 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1439420693631609016} + m_Layer: 0 + m_Name: WaveBone_23 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1439420693631609016 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6026176681350951385} + m_LocalRotation: {x: 0, y: -2.7167157e-10, z: -0, w: 1} + m_LocalPosition: {x: -0.000000057220458, y: 0, z: 0.032} + m_LocalScale: {x: 0.99999994, y: 0.99999994, z: 0.99999994} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 7221974145766760681} + m_Father: {fileID: 2582851103131751837} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &7040603966247448255 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2582851103131751837} + m_Layer: 0 + m_Name: WaveBone_22 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2582851103131751837 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7040603966247448255} + m_LocalRotation: {x: 0, y: 0.05233596, z: -0, w: 0.9986295} + m_LocalPosition: {x: 0.012759997, y: -0.0061099995, z: 0.058639992} + m_LocalScale: {x: 0.99999994, y: 1, z: 0.99999994} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1439420693631609016} + m_Father: {fileID: 8441157771340227489} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &7307413462992939445 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1992856378725797066} + m_Layer: 0 + m_Name: WaveBone_16 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1992856378725797066 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7307413462992939445} + m_LocalRotation: {x: 0, y: 0.08715575, z: -0, w: 0.9961947} + m_LocalPosition: {x: 0.0071163843, y: 0.0018999982, z: 0.016959704} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 7318925983759762958} + m_Father: {fileID: 3379118606129586282} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &7336771369383194100 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7969860735434438478} + - component: {fileID: 7570581079759409324} + m_Layer: 0 + m_Name: ViveHandR + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7969860735434438478 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7336771369383194100} + m_LocalRotation: {x: 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: 8281674560845470514} + - {fileID: 3379118606129586282} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &7570581079759409324 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7336771369383194100} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 916de3f5e8e977e4bb28c81a7b35921a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IsLeft: 0 + m_Wrist: {fileID: 4874365601770725679} + m_Palm: {fileID: 2126777716130427851} + m_Thumb_Metacarpal: {fileID: 136583756104236849} + m_Thumb_Proximal: {fileID: 3942849652166801780} + m_Thumb_Distal: {fileID: 5302629118157038381} + m_Thumb_Tip: {fileID: 5370193352345705618} + m_Index_Metacarpal: {fileID: 5311183463381256709} + m_Index_Proximal: {fileID: 7353566556072223460} + m_Index_Intermediate: {fileID: 5305314447751059959} + m_Index_Distal: {fileID: 2838160865918903448} + m_Index_Tip: {fileID: 3918656131348787482} + m_Middle_Metacarpal: {fileID: 794786357459913289} + m_Middle_Proximal: {fileID: 1943755946017047363} + m_Middle_Intermediate: {fileID: 1690914482679748352} + m_Middle_Distal: {fileID: 5041044744764177212} + m_Middle_Tip: {fileID: 8511517641221450946} + m_Ring_Metacarpal: {fileID: 7307413462992939445} + m_Ring_Proximal: {fileID: 8265336401565091693} + m_Ring_Intermediate: {fileID: 4885403986526799677} + m_Ring_Distal: {fileID: 8469788028451231369} + m_Ring_Tip: {fileID: 4093468127695224110} + m_Little_Metacarpal: {fileID: 3116308070949563363} + m_Little_Proximal: {fileID: 7040603966247448255} + m_Little_Intermediate: {fileID: 6026176681350951385} + m_Little_Distal: {fileID: 2766397140317256647} + m_Little_Tip: {fileID: 5853619125604591607} +--- !u!1 &7353566556072223460 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5921550608059619517} + m_Layer: 0 + m_Name: WaveBone_7 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5921550608059619517 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7353566556072223460} + m_LocalRotation: {x: 0, y: -0.008726637, z: -0, w: 0.9999619} + m_LocalPosition: {x: -0.0053899977, y: -0.00638, z: 0.075009994} + m_LocalScale: {x: 1.0000001, y: 0.99999994, z: 1.0000001} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 182374700590534123} + m_Father: {fileID: 2086520454331623653} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &8265336401565091693 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7318925983759762958} + m_Layer: 0 + m_Name: WaveBone_17 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7318925983759762958 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8265336401565091693} + m_LocalRotation: {x: 0, y: 0.02617695, z: -0, w: 0.99965733} + m_LocalPosition: {x: 0.0046699992, y: -0.0050500003, z: 0.06539} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 6830403249665924506} + m_Father: {fileID: 1992856378725797066} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &8469788028451231369 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5303854547744305885} + m_Layer: 0 + m_Name: WaveBone_19 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5303854547744305885 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8469788028451231369} + m_LocalRotation: {x: 0, y: -0.000000016185927, z: -0, w: 1} + m_LocalPosition: {x: -0.000000042915342, y: 0, z: 0.027000004} + m_LocalScale: {x: 1.0000001, y: 1.0000001, z: 1.0000001} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 757761967915821041} + m_Father: {fileID: 6830403249665924506} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &8511517641221450946 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4622521912557901066} + m_Layer: 0 + m_Name: WaveBone_15 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4622521912557901066 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8511517641221450946} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0, y: 0, z: 0.023999996} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 6499910435262763038} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} diff --git a/com.htc.upm.vive.openxr/Runtime/Prefabs/ViveHandR.prefab.meta b/com.htc.upm.vive.openxr/Runtime/Prefabs/ViveHandR.prefab.meta new file mode 100644 index 0000000..ddb6fef --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Prefabs/ViveHandR.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 3479a972c0ca20a4dbcd93c65a46b584 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Profiles/XR_EXT_hand_tracking.cs b/com.htc.upm.vive.openxr/Runtime/Profiles/XR_EXT_hand_tracking.cs index d058da4..a3d5cef 100644 --- a/com.htc.upm.vive.openxr/Runtime/Profiles/XR_EXT_hand_tracking.cs +++ b/com.htc.upm.vive.openxr/Runtime/Profiles/XR_EXT_hand_tracking.cs @@ -1,4 +1,4 @@ -// ===================== 2022 HTC Corporation. All Rights Reserved. =================== +// Copyright HTC Corporation All Rights Reserved. using System; using System.Collections.Generic; @@ -50,10 +50,12 @@ namespace VIVE.OpenXR /// /// True for left hand. /// Joint location data in XrHandJointLocationEXT. + /// The hand tracking data timestamp. /// True for valid data. - public virtual bool GetJointLocations(bool isLeft, out XrHandJointLocationEXT[] handJointLocation) + public virtual bool GetJointLocations(bool isLeft, out XrHandJointLocationEXT[] handJointLocation, out XrTime timestamp) { handJointLocation = s_JointLocation[isLeft]; + timestamp = 0; if (m_JointLocations.isActive == 1) { @@ -78,6 +80,16 @@ namespace VIVE.OpenXR return false; } + /// + /// A convenient function to retrieve the left/right hand joint location data. + /// + /// True for left hand. + /// Joint location data in XrHandJointLocationEXT. + /// True for valid data. + public virtual bool GetJointLocations(bool isLeft, out XrHandJointLocationEXT[] handJointLocation) + { + return GetJointLocations(isLeft, out handJointLocation, out XrTime timestamp); + } } public static class XR_EXT_hand_tracking diff --git a/com.htc.upm.vive.openxr/Runtime/Profiles/XR_EXT_hand_tracking_impls.cs b/com.htc.upm.vive.openxr/Runtime/Profiles/XR_EXT_hand_tracking_impls.cs index 3546e65..7121cee 100644 --- a/com.htc.upm.vive.openxr/Runtime/Profiles/XR_EXT_hand_tracking_impls.cs +++ b/com.htc.upm.vive.openxr/Runtime/Profiles/XR_EXT_hand_tracking_impls.cs @@ -1,35 +1,53 @@ -// ===================== 2022 HTC Corporation. All Rights Reserved. =================== +// Copyright HTC Corporation All Rights Reserved. using System.Collections.Generic; +using System.Text; using UnityEngine; - - using UnityEngine.XR.OpenXR; + using VIVE.OpenXR.Hand; namespace VIVE.OpenXR { public class XR_EXT_hand_tracking_impls : XR_EXT_hand_tracking_defs { - const string LOG_TAG = "VIVE.OpenXR.Android.XR_EXT_hand_tracking_impls"; - void DEBUG(string msg) { Debug.Log(LOG_TAG + " " + msg); } + #region Log + const string LOG_TAG = "VIVE.OpenXR.XR_EXT_hand_tracking_impls"; + StringBuilder m_sb = null; + StringBuilder sb + { + get + { + if (m_sb == null) { m_sb = new StringBuilder(); } + return m_sb; + } + } + void DEBUG(StringBuilder msg) { Debug.LogFormat("{0} {1}", LOG_TAG, msg); } + #endregion - public XR_EXT_hand_tracking_impls() { DEBUG("XR_EXT_hand_tracking_impls()"); } + public XR_EXT_hand_tracking_impls() { sb.Clear().Append("XR_EXT_hand_tracking_impls()"); DEBUG(sb); } private ViveHandTracking feature = null; - private void ASSERT_FEATURE() { + private bool ASSERT_FEATURE(bool init = false) + { if (feature == null) { feature = OpenXRSettings.Instance.GetFeature(); } + bool enabled = (feature != null); + if (init) + { + sb.Clear().Append("ViveHandTracking is ").Append((enabled ? "enabled." : "disabled.")); + DEBUG(sb); + } + return enabled; } public override XrResult xrCreateHandTrackerEXT(ref XrHandTrackerCreateInfoEXT createInfo, out ulong handTracker) { - DEBUG("xrCreateHandTrackerEXT"); XrResult result = XrResult.XR_ERROR_VALIDATION_FAILURE; handTracker = 0; - ASSERT_FEATURE(); - if (feature) + if (ASSERT_FEATURE(true)) { + sb.Clear().Append("xrCreateHandTrackerEXT"); DEBUG(sb); XrHandTrackerCreateInfoEXT info = createInfo; result = (XrResult)feature.CreateHandTrackerEXT(ref info, out XrHandTrackerEXT tracker); if (result == XrResult.XR_SUCCESS) { handTracker = tracker; } @@ -39,10 +57,11 @@ namespace VIVE.OpenXR } public override XrResult xrDestroyHandTrackerEXT(ulong handTracker) { - DEBUG("xrDestroyHandTrackerEXT"); - - ASSERT_FEATURE(); - if (feature) { return (XrResult)feature.DestroyHandTrackerEXT(handTracker); } + if (ASSERT_FEATURE(true)) + { + sb.Clear().Append("xrDestroyHandTrackerEXT"); DEBUG(sb); + return (XrResult)feature.DestroyHandTrackerEXT(handTracker); + } return XrResult.XR_ERROR_VALIDATION_FAILURE; } @@ -53,8 +72,7 @@ namespace VIVE.OpenXR InitializeHandJointLocations(); locations = m_JointLocations; - ASSERT_FEATURE(); - if (feature) + if (ASSERT_FEATURE()) { XrHandJointLocationsEXT joints = m_JointLocations; result = (XrResult)feature.LocateHandJointsEXT(handTracker, locateInfo, ref joints); @@ -64,12 +82,11 @@ namespace VIVE.OpenXR return result; } - public override bool GetJointLocations(bool isLeft, out XrHandJointLocationEXT[] handJointLocation) + public override bool GetJointLocations(bool isLeft, out XrHandJointLocationEXT[] handJointLocation, out XrTime timestamp) { - ASSERT_FEATURE(); - if (feature) + if (ASSERT_FEATURE()) { - if (feature.GetJointLocations(isLeft, out XrHandJointLocationEXT[] array)) + if (feature.GetJointLocations(isLeft, out XrHandJointLocationEXT[] array, out timestamp)) { if (l_HandJointLocation == null) { l_HandJointLocation = new List(); } l_HandJointLocation.Clear(); @@ -81,7 +98,12 @@ namespace VIVE.OpenXR } handJointLocation = s_JointLocation[isLeft]; + timestamp = 0; return false; } + public override bool GetJointLocations(bool isLeft, out XrHandJointLocationEXT[] handJointLocation) + { + return GetJointLocations(isLeft, out handJointLocation, out XrTime timestamp); + } } } diff --git a/com.htc.upm.vive.openxr/Runtime/Profiles/XR_EXT_user_presence.cs b/com.htc.upm.vive.openxr/Runtime/Profiles/XR_EXT_user_presence.cs new file mode 100644 index 0000000..c075669 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Profiles/XR_EXT_user_presence.cs @@ -0,0 +1,29 @@ +// Copyright HTC Corporation All Rights Reserved. + +namespace VIVE.OpenXR +{ + public class XR_EXT_user_presence_defs + { + /// + /// Checks if an user is present. Default is true. + /// + /// True for present. + public virtual bool IsUserPresent() { return true; } + } + + public static class XR_EXT_user_presence + { + static XR_EXT_user_presence_defs m_Instance = null; + public static XR_EXT_user_presence_defs Interop + { + get + { + if (m_Instance == null) + { + m_Instance = new XR_EXT_user_presence_impls(); + } + return m_Instance; + } + } + } +} \ No newline at end of file diff --git a/com.htc.upm.vive.openxr/Runtime/Profiles/XR_EXT_user_presence.cs.meta b/com.htc.upm.vive.openxr/Runtime/Profiles/XR_EXT_user_presence.cs.meta new file mode 100644 index 0000000..53e61d2 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Profiles/XR_EXT_user_presence.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: afabb243c07ef464c838493b18d0a72b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Profiles/XR_EXT_user_presence_impls.cs b/com.htc.upm.vive.openxr/Runtime/Profiles/XR_EXT_user_presence_impls.cs new file mode 100644 index 0000000..aa342d2 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Profiles/XR_EXT_user_presence_impls.cs @@ -0,0 +1,46 @@ +// Copyright HTC Corporation All Rights Reserved. + +using System.Text; +using UnityEngine; +using UnityEngine.XR.OpenXR; + +using VIVE.OpenXR.UserPresence; + +namespace VIVE.OpenXR +{ + public class XR_EXT_user_presence_impls : XR_EXT_user_presence_defs + { + #region Log + const string LOG_TAG = "VIVE.OpenXR.XR_EXT_user_presence_impls"; + StringBuilder m_sb = null; + StringBuilder sb { + get { + if (m_sb == null) { m_sb = new StringBuilder(); } + return m_sb; + } + } + void DEBUG(StringBuilder msg) { Debug.LogFormat("{0} {1}", LOG_TAG, msg); } + #endregion + + public XR_EXT_user_presence_impls() { sb.Clear().Append("XR_EXT_user_presence_impls()"); DEBUG(sb); } + + private ViveUserPresence feature = null; + private bool ASSERT_FEATURE(bool init = false) + { + if (feature == null) { feature = OpenXRSettings.Instance.GetFeature(); } + bool enabled = (feature != null); + if (init) + { + sb.Clear().Append("ViveUserPresence is ").Append((enabled ? "enabled." : "disabled.")); + DEBUG(sb); + } + return enabled; + } + + public override bool IsUserPresent() + { + if (ASSERT_FEATURE()) { return feature.IsUserPresent(); } + return true; + } + } +} \ No newline at end of file diff --git a/com.htc.upm.vive.openxr/Runtime/Profiles/XR_EXT_user_presence_impls.cs.meta b/com.htc.upm.vive.openxr/Runtime/Profiles/XR_EXT_user_presence_impls.cs.meta new file mode 100644 index 0000000..cdd6341 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Profiles/XR_EXT_user_presence_impls.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 0f553917d855c8347a13c7630afb07f6 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Profiles/XR_HTC_composition_layer_extra_settings.cs b/com.htc.upm.vive.openxr/Runtime/Profiles/XR_HTC_composition_layer_extra_settings.cs new file mode 100644 index 0000000..36778d5 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Profiles/XR_HTC_composition_layer_extra_settings.cs @@ -0,0 +1,45 @@ +// Copyright HTC Corporation All Rights Reserved. + +using VIVE.OpenXR.CompositionLayer; + +namespace VIVE.OpenXR +{ + public class XR_HTC_composition_layer_extra_settings_defs + { + /// + /// Enable the sharpening setting to the projection layer. + /// + /// The sharpening mode in . + /// The sharpening level in float [0, 1]. + /// True for success. + public virtual bool EnableSharpening(XrSharpeningModeHTC sharpeningMode, float sharpeningLevel) + { + return false; + } + + /// + /// Disable the sharpening setting on the projection layer. + /// + /// True for success + public virtual bool DisableSharpening() + { + return false; + } + } + + public static class XR_HTC_composition_layer_extra_settings + { + static XR_HTC_composition_layer_extra_settings_defs m_Instance = null; + public static XR_HTC_composition_layer_extra_settings_defs Interop + { + get + { + if (m_Instance == null) + { + m_Instance = new XR_HTC_composition_layer_extra_settings_impls(); + } + return m_Instance; + } + } + } +} diff --git a/com.htc.upm.vive.openxr/Runtime/Profiles/XR_HTC_composition_layer_extra_settings.cs.meta b/com.htc.upm.vive.openxr/Runtime/Profiles/XR_HTC_composition_layer_extra_settings.cs.meta new file mode 100644 index 0000000..597eaaf --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Profiles/XR_HTC_composition_layer_extra_settings.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2f9a9405f2a3f6c44b131cd38cec8ae3 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Profiles/XR_HTC_composition_layer_extra_settings_impls.cs b/com.htc.upm.vive.openxr/Runtime/Profiles/XR_HTC_composition_layer_extra_settings_impls.cs new file mode 100644 index 0000000..cd2a2a4 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Profiles/XR_HTC_composition_layer_extra_settings_impls.cs @@ -0,0 +1,44 @@ +// Copyright HTC Corporation All Rights Reserved. + +using UnityEngine; +using UnityEngine.XR.OpenXR; + +using VIVE.OpenXR.CompositionLayer; + +namespace VIVE.OpenXR +{ + public class XR_HTC_composition_layer_extra_settings_impls : XR_HTC_composition_layer_extra_settings_defs + { + const string LOG_TAG = "VIVE.OpenXR.XR_HTC_composition_layer_extra_settings_impls"; + void DEBUG(string msg) { Debug.Log(LOG_TAG + " " + msg); } + public XR_HTC_composition_layer_extra_settings_impls() { DEBUG("XR_HTC_composition_layer_extra_settings_impls()"); } + private ViveCompositionLayerExtraSettings feature = null; + + private void ASSERT_FEATURE() + { + if (feature == null) { feature = OpenXRSettings.Instance.GetFeature(); } + } + + public override bool EnableSharpening(XrSharpeningModeHTC sharpeningMode, float sharpeningLevel) + { + DEBUG("xrViveCompositionLayer_EnableSharpening"); + ASSERT_FEATURE(); + if (feature) + { + return feature.EnableSharpening(sharpeningMode, sharpeningLevel); + } + return false; + } + + public override bool DisableSharpening() + { + DEBUG("xrViveCompositionLayer_EnableSharpening"); + ASSERT_FEATURE(); + if (feature) + { + return feature.DisableSharpening(); + } + return false; + } + } +} diff --git a/com.htc.upm.vive.openxr/Runtime/Profiles/XR_HTC_composition_layer_extra_settings_impls.cs.meta b/com.htc.upm.vive.openxr/Runtime/Profiles/XR_HTC_composition_layer_extra_settings_impls.cs.meta new file mode 100644 index 0000000..2713759 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Profiles/XR_HTC_composition_layer_extra_settings_impls.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: dd47d8d4716ae4c41a5d2e88f849d99b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Profiles/XR_HTC_passthrough.cs b/com.htc.upm.vive.openxr/Runtime/Profiles/XR_HTC_passthrough.cs index 0c4d937..767940d 100644 --- a/com.htc.upm.vive.openxr/Runtime/Profiles/XR_HTC_passthrough.cs +++ b/com.htc.upm.vive.openxr/Runtime/Profiles/XR_HTC_passthrough.cs @@ -1,9 +1,8 @@ +// Copyright HTC Corporation All Rights Reserved. + using System; -using System.Collections; using System.Collections.Generic; -using UnityEngine; -using VIVE.OpenXR.CompositionLayer; -using VIVE.OpenXR.CompositionLayer.Passthrough; +using VIVE.OpenXR.Passthrough; namespace VIVE.OpenXR { @@ -36,8 +35,8 @@ namespace VIVE.OpenXR { return new XrFrameState(); } - } + public static class XR_HTC_passthrough { static XR_HTC_passthrough_defs m_Instance = null; diff --git a/com.htc.upm.vive.openxr/Runtime/Profiles/XR_HTC_passthrough_configuration.cs b/com.htc.upm.vive.openxr/Runtime/Profiles/XR_HTC_passthrough_configuration.cs new file mode 100644 index 0000000..8dc417d --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Profiles/XR_HTC_passthrough_configuration.cs @@ -0,0 +1,59 @@ +// ===================== 2022 HTC Corporation. All Rights Reserved. =================== + +using System; +using System.Collections.Generic; +using System.Runtime.InteropServices; + +using VIVE.OpenXR.Passthrough; + +namespace VIVE.OpenXR +{ + public class XR_HTC_passthrough_configuration_defs + { + public virtual XrResult SetPassthroughConfigurationHTC(IntPtr config) + { + return XrResult.XR_ERROR_FEATURE_UNSUPPORTED; + } + + public virtual XrResult GetPassthroughConfigurationHTC(IntPtr config) + { + return XrResult.XR_ERROR_FEATURE_UNSUPPORTED; + } + + public virtual XrResult EnumeratePassthroughImageRatesHTC([In] UInt32 imageRateCapacityInput, ref UInt32 imageRateCountOutput, [In, Out] XrPassthroughConfigurationImageRateHTC[] imageRates) + { + return XrResult.XR_ERROR_FEATURE_UNSUPPORTED; + } + } + + public class XR_HTC_passthrough_configuration + { + static XR_HTC_passthrough_configuration_defs m_Instance = null; + public static XR_HTC_passthrough_configuration_defs Interop + { + get + { + if (m_Instance == null) + { + m_Instance = new XR_HTC_passthrough_configuration_impls(); + } + return m_Instance; + } + } + + public static XrResult SetPassthroughConfigurationHTC(IntPtr config) + { + return Interop.SetPassthroughConfigurationHTC(config); + } + + public static XrResult GetPassthroughConfigurationHTC(IntPtr config) + { + return Interop.GetPassthroughConfigurationHTC(config); + } + + public static XrResult EnumeratePassthroughImageRatesHTC([In] UInt32 imageRateCapacityInput, ref UInt32 imageRateCountOutput, [In, Out] XrPassthroughConfigurationImageRateHTC[] imageRates) + { + return Interop.EnumeratePassthroughImageRatesHTC(imageRateCapacityInput, ref imageRateCountOutput, imageRates); + } + } +} diff --git a/com.htc.upm.vive.openxr/Runtime/Profiles/XR_HTC_passthrough_configuration.cs.meta b/com.htc.upm.vive.openxr/Runtime/Profiles/XR_HTC_passthrough_configuration.cs.meta new file mode 100644 index 0000000..43b4540 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Profiles/XR_HTC_passthrough_configuration.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: fa07bedac75da4b4dbe13a60f146d130 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Profiles/XR_HTC_passthrough_configuration_impls.cs b/com.htc.upm.vive.openxr/Runtime/Profiles/XR_HTC_passthrough_configuration_impls.cs new file mode 100644 index 0000000..71cc753 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Profiles/XR_HTC_passthrough_configuration_impls.cs @@ -0,0 +1,75 @@ +// ===================== 2022 HTC Corporation. All Rights Reserved. =================== + +using System; +using System.Runtime.InteropServices; +using UnityEngine; + +using UnityEngine.XR.OpenXR; + +using VIVE.OpenXR.Passthrough; + + +namespace VIVE.OpenXR +{ + public class XR_HTC_passthrough_configuration_impls : XR_HTC_passthrough_configuration_defs + { + const string LOG_TAG = "VIVE.OpenXR.XR_HTC_passthrough_configuration_impls"; + void DEBUG(string msg) { Debug.Log(LOG_TAG + " " + msg); } + + private VivePassthrough feature = null; + private void ASSERT_FEATURE() + { + if (feature == null) { feature = OpenXRSettings.Instance.GetFeature(); } + } + + public override XrResult SetPassthroughConfigurationHTC(IntPtr config) + { + DEBUG("SetPassthroughConfigurationHTC"); + XrResult result = XrResult.XR_ERROR_VALIDATION_FAILURE; + + ASSERT_FEATURE(); + if (feature) + { + if (!feature.SupportsImageQuality() || !feature.SupportsImageRate()) + return XrResult.XR_ERROR_FEATURE_UNSUPPORTED; + + result = (XrResult)feature.SetPassthroughConfigurationHTC(config); + } + + return result; + } + + public override XrResult GetPassthroughConfigurationHTC(IntPtr config) + { + DEBUG("GetPassthroughConfigurationHTC"); + XrResult result = XrResult.XR_ERROR_VALIDATION_FAILURE; + + ASSERT_FEATURE(); + if (feature) + { + if (!feature.SupportsImageQuality() || !feature.SupportsImageRate()) + return XrResult.XR_ERROR_FEATURE_UNSUPPORTED; + result = (XrResult)feature.GetPassthroughConfigurationHTC(config); + } + + return result; + } + + public override XrResult EnumeratePassthroughImageRatesHTC([In] UInt32 imageRateCapacityInput, ref UInt32 imageRateCountOutput, [In, Out] XrPassthroughConfigurationImageRateHTC[] imageRates) + { + DEBUG("EnumeratePassthroughImageRatesHTC"); + XrResult result = XrResult.XR_ERROR_VALIDATION_FAILURE; + + ASSERT_FEATURE(); + if (feature) + { + if (!feature.SupportsImageQuality() || !feature.SupportsImageRate()) + return XrResult.XR_ERROR_FEATURE_UNSUPPORTED; + result = (XrResult)feature.EnumeratePassthroughImageRatesHTC(imageRateCapacityInput, ref imageRateCountOutput, imageRates); + } + + return result; + } + } +} + diff --git a/com.htc.upm.vive.openxr/Runtime/Profiles/XR_HTC_passthrough_configuration_impls.cs.meta b/com.htc.upm.vive.openxr/Runtime/Profiles/XR_HTC_passthrough_configuration_impls.cs.meta new file mode 100644 index 0000000..3bb9fbe --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Profiles/XR_HTC_passthrough_configuration_impls.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e70585d207c033c4999abe9294405298 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Profiles/XR_HTC_passthrough_impls.cs b/com.htc.upm.vive.openxr/Runtime/Profiles/XR_HTC_passthrough_impls.cs index 60a5be8..81c8e86 100644 --- a/com.htc.upm.vive.openxr/Runtime/Profiles/XR_HTC_passthrough_impls.cs +++ b/com.htc.upm.vive.openxr/Runtime/Profiles/XR_HTC_passthrough_impls.cs @@ -1,10 +1,11 @@ +// Copyright HTC Corporation All Rights Reserved. + using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.XR.OpenXR; -using VIVE.OpenXR.CompositionLayer; -using VIVE.OpenXR.CompositionLayer.Passthrough; +using VIVE.OpenXR.Passthrough; namespace VIVE.OpenXR { @@ -13,11 +14,11 @@ namespace VIVE.OpenXR const string LOG_TAG = "VIVE.OpenXR.XR_HTC_passthrough_impls"; void DEBUG(string msg) { Debug.Log(LOG_TAG + " " + msg); } public XR_HTC_passthrough_impls() { DEBUG("XR_HTC_passthrough_impls()"); } - private ViveCompositionLayerPassthrough feature = null; + private VivePassthrough feature = null; private void ASSERT_FEATURE() { - if (feature == null) { feature = OpenXRSettings.Instance.GetFeature(); } + if (feature == null) { feature = OpenXRSettings.Instance.GetFeature(); } } public override XrResult xrCreatePassthroughHTC(XrPassthroughCreateInfoHTC createInfo, out XrPassthroughHTC passthrough) @@ -25,20 +26,20 @@ namespace VIVE.OpenXR XrResult result = XrResult.XR_ERROR_VALIDATION_FAILURE; passthrough = 0; ASSERT_FEATURE(); -#if UNITY_STANDALONE + if(feature) result = feature.CreatePassthroughHTC(createInfo,out passthrough); -#endif + return result; } public override XrResult xrDestroyPassthroughHTC(XrPassthroughHTC passthrough) { XrResult result = XrResult.XR_ERROR_VALIDATION_FAILURE; ASSERT_FEATURE(); -#if UNITY_STANDALONE + if(feature) result = feature.DestroyPassthroughHTC(passthrough); -#endif + return result; } @@ -66,10 +67,10 @@ namespace VIVE.OpenXR public override XrSpace GetTrackingSpace() { ASSERT_FEATURE(); -#if UNITY_STANDALONE + if (feature) return feature.GetTrackingSpace(); -#endif + return 0; } diff --git a/com.htc.upm.vive.openxr/Runtime/Resources.meta b/com.htc.upm.vive.openxr/Runtime/Resources.meta new file mode 100644 index 0000000..5943316 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Resources.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f8e4de63343ba2c43a164b6266d50088 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Resources/Prefabs.meta b/com.htc.upm.vive.openxr/Runtime/Resources/Prefabs.meta new file mode 100644 index 0000000..891238f --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Resources/Prefabs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a8db424e450e4274bb7078263a608a6d +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Resources/Prefabs/ViveRig.prefab b/com.htc.upm.vive.openxr/Runtime/Resources/Prefabs/ViveRig.prefab new file mode 100644 index 0000000..b15f25c --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Resources/Prefabs/ViveRig.prefab @@ -0,0 +1,258 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &7254385229195722837 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7254385229195722832} + - component: {fileID: 7254385229195722839} + - component: {fileID: 7254385229195722838} + - component: {fileID: 7254385229195722840} + m_Layer: 0 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7254385229195722832 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7254385229195722837} + m_LocalRotation: {x: -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: 7254385230296342239} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!20 &7254385229195722839 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7254385229195722837} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.01 + far clip plane: 1000 + field of view: 60 + orthographic: 0 + orthographic size: 5 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -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!81 &7254385229195722838 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7254385229195722837} + m_Enabled: 1 +--- !u!114 &7254385229195722840 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7254385229195722837} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c2fadf230d1919748a9aa21d40f74619, type: 3} + m_Name: + m_EditorClassIdentifier: + m_TrackingType: 0 + m_UpdateType: 0 + m_PositionInput: + m_UseReference: 0 + m_Action: + m_Name: Position + m_Type: 0 + m_ExpectedControlType: + m_Id: 27e93ac4-1a8d-4587-aaae-4b08826ac82f + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 999d0eef-dcb5-4f3b-a509-22da9f558d12 + m_Path: /centerEyePosition + m_Interactions: + m_Processors: + m_Groups: + m_Action: Position + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: 0} + m_RotationInput: + m_UseReference: 0 + m_Action: + m_Name: Rotation + m_Type: 0 + m_ExpectedControlType: + m_Id: f061ad31-8802-4a77-8c67-cbdab9a06599 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: e3da2ddc-60a9-45c0-944f-71a4259458e6 + m_Path: /centerEyeRotation + m_Interactions: + m_Processors: + m_Groups: + m_Action: Rotation + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: 0} + m_PositionAction: + m_Name: Position + m_Type: 0 + m_ExpectedControlType: + m_Id: 27e93ac4-1a8d-4587-aaae-4b08826ac82f + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 999d0eef-dcb5-4f3b-a509-22da9f558d12 + m_Path: /centerEyePosition + m_Interactions: + m_Processors: + m_Groups: + m_Action: Position + m_Flags: 0 + m_Flags: 0 + m_RotationAction: + m_Name: Rotation + m_Type: 0 + m_ExpectedControlType: + m_Id: f061ad31-8802-4a77-8c67-cbdab9a06599 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: e3da2ddc-60a9-45c0-944f-71a4259458e6 + m_Path: /centerEyeRotation + m_Interactions: + m_Processors: + m_Groups: + m_Action: Rotation + m_Flags: 0 + m_Flags: 0 + m_HasMigratedActions: 1 +--- !u!1 &7254385229234264256 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7254385229234264257} + - component: {fileID: 7254385229234264267} + m_Layer: 0 + m_Name: ViveRig + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7254385229234264257 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7254385229234264256} + m_LocalRotation: {x: 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: 7254385230296342239} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &7254385229234264267 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7254385229234264256} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6eb24623e49bb0845b2bd2a9cc43f49e, type: 3} + m_Name: + m_EditorClassIdentifier: + m_CameraOffset: {fileID: 7254385230296342238} + m_TrackingOrigin: 1 + m_CameraHeight: 1.5 + m_CameraYOffset: 1.5 + m_ActionAsset: {fileID: 0} +--- !u!1 &7254385230296342238 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7254385230296342239} + m_Layer: 0 + m_Name: CameraOffset + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7254385230296342239 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7254385230296342238} + m_LocalRotation: {x: 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: 7254385229195722832} + m_Father: {fileID: 7254385229234264257} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} diff --git a/com.htc.upm.vive.openxr/Runtime/Resources/Prefabs/ViveRig.prefab.meta b/com.htc.upm.vive.openxr/Runtime/Resources/Prefabs/ViveRig.prefab.meta new file mode 100644 index 0000000..49d9ee3 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Resources/Prefabs/ViveRig.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: aa8f4d91d4c1c8047ba9e3b314447195 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Toolkits/Anchor/AnchorManager.cs b/com.htc.upm.vive.openxr/Runtime/Toolkits/Anchor/AnchorManager.cs index 06982b4..ff76656 100644 --- a/com.htc.upm.vive.openxr/Runtime/Toolkits/Anchor/AnchorManager.cs +++ b/com.htc.upm.vive.openxr/Runtime/Toolkits/Anchor/AnchorManager.cs @@ -3,8 +3,11 @@ using System; using UnityEngine; using UnityEngine.XR.OpenXR; using VIVE.OpenXR.Feature; -using VIVE.OpenXR.Anchor; -using static VIVE.OpenXR.Anchor.ViveAnchor; +using static VIVE.OpenXR.Feature.ViveAnchor; +using System.Threading.Tasks; +using System.Threading; +using System.Collections.Generic; +using System.Linq; namespace VIVE.OpenXR.Toolkits.Anchor { @@ -12,8 +15,9 @@ namespace VIVE.OpenXR.Toolkits.Anchor { static ViveAnchor feature = null; static bool isSupported = false; + static bool isPersistedAnchorSupported = false; - static void CheckFeature() + static void EnsureFeature() { if (feature != null) return; @@ -22,28 +26,32 @@ namespace VIVE.OpenXR.Toolkits.Anchor throw new NotSupportedException("ViveAnchor feature is not enabled"); } + static void EnsureCollection() + { + if (taskAcquirePAC != null) + { + Debug.Log("AnchorManager: Wait for AcquirePersistedAnchorCollection task."); + taskAcquirePAC.Wait(); + } + if (persistedAnchorCollection == IntPtr.Zero) + throw new Exception("Should create Persisted Anchor Collection first."); + } + /// - /// Helper to get the extention feature instance. + /// Helper to get the extension feature instance. /// - /// + /// Instance of ViveAnchor feature. public static ViveAnchor GetFeature() { - try - { - CheckFeature(); - } - catch (NotSupportedException) - { - Debug.LogWarning("ViveAnchor feature is not enabled"); - return null; - } + if (feature != null) return feature; + feature = OpenXRSettings.Instance.GetFeature(); return feature; } /// - /// Check if the extension is supported. + /// Check if the extensions are supported. Should always check this before using the other functions. /// - /// + /// True if the extension is supported, false otherwise. public static bool IsSupported() { if (GetFeature() == null) return false; @@ -52,18 +60,32 @@ namespace VIVE.OpenXR.Toolkits.Anchor var ret = false; if (feature.GetProperties(out XrSystemAnchorPropertiesHTC properties) == XrResult.XR_SUCCESS) { - Debug.Log("Anchor: IsSupported() properties.supportedFeatures: " + properties.supportsAnchor); - ret = properties.supportsAnchor; + Debug.Log("ViveAnchor: IsSupported() properties.supportedFeatures: " + properties.supportsAnchor); + ret = properties.supportsAnchor > 0; isSupported = ret; } else { - Debug.Log("Anchor: IsSupported() GetSystemProperties failed."); + Debug.Log("ViveAnchor: IsSupported() GetSystemProperties failed."); } return ret; } + /// + /// Check if the persisted anchor extension is supported and enabled. + /// Should always check this before using the other persistance function. + /// + /// True if persisted anchor extension is supported, false otherwise. + public static bool IsPersistedAnchorSupported() + { + if (GetFeature() == null) return false; + if (isPersistedAnchorSupported) return true; + else + isPersistedAnchorSupported = feature.IsPersistedAnchorSupported(); + return isPersistedAnchorSupported; + } + /// /// Create a spatial anchor at tracking space (Camera Rig). /// @@ -71,38 +93,51 @@ namespace VIVE.OpenXR.Toolkits.Anchor /// Anchor container public static Anchor CreateAnchor(Pose pose, string name) { - try - { - CheckFeature(); - XrSpace baseSpace = feature.GetTrackingSpace(); - XrSpatialAnchorCreateInfoHTC createInfo = new XrSpatialAnchorCreateInfoHTC(); - createInfo.type = XrStructureType.XR_TYPE_SPATIAL_ANCHOR_CREATE_INFO_HTC; - createInfo.poseInSpace = new XrPosef(); - createInfo.poseInSpace.position = pose.position.ToOpenXRVector(); - createInfo.poseInSpace.orientation = pose.rotation.ToOpenXRQuaternion(); - createInfo.name.name = name; - createInfo.space = baseSpace; + EnsureFeature(); - if (feature.CreateSpatialAnchor(createInfo, out XrSpace anchor) == XrResult.XR_SUCCESS) - { - return new Anchor(anchor, name); - } - } catch (Exception) { } + if (string.IsNullOrEmpty(name)) + throw new ArgumentException("The name should not be empty."); + + XrSpace baseSpace = feature.GetTrackingSpace(); + XrSpatialAnchorCreateInfoHTC createInfo = new XrSpatialAnchorCreateInfoHTC(); + createInfo.type = XrStructureType.XR_TYPE_SPATIAL_ANCHOR_CREATE_INFO_HTC; + createInfo.poseInSpace = new XrPosef(); + createInfo.poseInSpace.position = pose.position.ToOpenXRVector(); + createInfo.poseInSpace.orientation = pose.rotation.ToOpenXRQuaternion(); + createInfo.name = new XrSpatialAnchorNameHTC(name); + createInfo.space = baseSpace; + + if (feature.CreateSpatialAnchor(createInfo, out XrSpace anchor) == XrResult.XR_SUCCESS) + { + return new Anchor(anchor, name); + } return null; } + /// + /// Get the name of the spatial anchor. + /// + /// The anchor instance. + /// Output parameter to hold the name of the anchor. + /// True if the name is successfully retrieved, false otherwise. public static bool GetSpatialAnchorName(Anchor anchor, out string name) { return GetSpatialAnchorName(anchor.GetXrSpace(), out name); } + /// + /// Get the name of the spatial anchor. + /// + /// The XrSpace representing the anchor. + /// Output parameter to hold the name of the anchor. + /// True if the name is successfully retrieved, false otherwise. public static bool GetSpatialAnchorName(XrSpace anchor, out string name) { name = ""; - CheckFeature(); + EnsureFeature(); XrResult ret = feature.GetSpatialAnchorName(anchor, out XrSpatialAnchorNameHTC xrName); if (ret == XrResult.XR_SUCCESS) - name = xrName.name; + name = xrName.ToString(); return ret == XrResult.XR_SUCCESS; } @@ -112,7 +147,7 @@ namespace VIVE.OpenXR.Toolkits.Anchor /// public static XrSpace GetTrackingSpace() { - CheckFeature(); + EnsureFeature(); return feature.GetTrackingSpace(); } @@ -128,9 +163,435 @@ namespace VIVE.OpenXR.Toolkits.Anchor return anchor.GetRelatedPose(feature.GetTrackingSpace(), ViveInterceptors.Instance.GetPredictTime(), out pose); } + // Use SemaphoreSlim to make sure only one anchor's task is running at the same time. + static readonly SemaphoreSlim semaphoreSlim = new SemaphoreSlim(1, 1); + + // Use lock to make sure taskAcquirePAC and persistedAnchorCollection assignment is atomic. + static readonly object asyncLock = new object(); + static FutureTask<(XrResult, IntPtr)> taskAcquirePAC = null; + static IntPtr persistedAnchorCollection = System.IntPtr.Zero; + + private static (XrResult, IntPtr) CompletePAC(IntPtr future) + { + Debug.Log("AnchorManager: AcquirePersistedAnchorCollectionComplete"); + var ret = feature.AcquirePersistedAnchorCollectionComplete(future, out var completion); + lock (asyncLock) + { + taskAcquirePAC = null; + if (ret == XrResult.XR_SUCCESS) + { + ret = completion.futureResult; + Debug.Log("AnchorManager: AcquirePersistedAnchorCollection: Complete"); + persistedAnchorCollection = completion.persistedAnchorCollection; + return (ret, persistedAnchorCollection); + } + else + { + //Debug.LogError("AcquirePersistedAnchorCollection: Complete: PersistedAnchorCollection=" + completion.persistedAnchorCollection); + persistedAnchorCollection = System.IntPtr.Zero; + return (ret, persistedAnchorCollection); + } + } + } + /// - /// Anchor is a named Space. It can be used to create a spatial anchor, or get the anchor's name. - /// After use it, you should call Dispose() to release the anchor. + /// Enable the persistance anchor feature. It will acquire a persisted anchor collection. + /// The first time PAC's acquiration may take time. You can to cancel the process by calling . + /// You can wait for the returned task to complete, or by calling to check if the collection is ready. + /// Use to free resource when no any persisted anchor operations are needed. + /// + /// A task representing the asynchronous operation. + public static FutureTask<(XrResult, IntPtr)> AcquirePersistedAnchorCollection() + { + EnsureFeature(); + if (!feature.IsPersistedAnchorSupported()) + return FutureTask<(XrResult, IntPtr)>.FromResult((XrResult.XR_ERROR_EXTENSION_NOT_PRESENT, IntPtr.Zero)); + lock (asyncLock) + { + if (persistedAnchorCollection != System.IntPtr.Zero) + return FutureTask<(XrResult, IntPtr)>.FromResult((XrResult.XR_SUCCESS, persistedAnchorCollection)); + + // If the persistedAnchorCollection is not ready, and the task is started, wait for it. + if (taskAcquirePAC != null) + return taskAcquirePAC; + } + + Debug.Log("ViveAnchor: AcquirePersistedAnchorCollectionAsync"); + var ret = feature.AcquirePersistedAnchorCollectionAsync(out IntPtr future); + if (ret != XrResult.XR_SUCCESS) + { + Debug.LogError("AcquirePersistedAnchorCollection failed: " + ret); + return FutureTask<(XrResult, IntPtr)>.FromResult((ret, IntPtr.Zero)); + } + else + { + var task = new FutureTask<(XrResult, IntPtr)>(future, CompletePAC, 10, autoComplete: true); + lock (asyncLock) + { + taskAcquirePAC = task; + } + return task; + } + } + + /// + /// Check if the persisted anchor collection is acquired. + /// + /// True if the persisted anchor collection is acquired, false otherwise. + public static bool IsPersistedAnchorCollectionAcquired() + { + return persistedAnchorCollection != System.IntPtr.Zero; + } + + /// + /// Call this function when no any persisted anchor operations are needed. + /// Destroy the persisted anchor collection. If task is running, the task will be canceled. + /// + public static void ReleasePersistedAnchorCollection() + { + IntPtr tmp; + if (taskAcquirePAC != null) + { + taskAcquirePAC.Cancel(); + taskAcquirePAC.Dispose(); + taskAcquirePAC = null; + } + + lock (asyncLock) + { + if (persistedAnchorCollection == System.IntPtr.Zero) return; + tmp = persistedAnchorCollection; + persistedAnchorCollection = System.IntPtr.Zero; + } + + EnsureFeature(); + + Task.Run(async () => + { + Debug.Log("ViveAnchor: ReleasePersistedAnchorCollection task is started."); + await semaphoreSlim.WaitAsync(); + try + { + feature?.ReleasePersistedAnchorCollection(tmp); + } + finally + { + semaphoreSlim.Release(); + } + Debug.Log("ViveAnchor: ReleasePersistedAnchorCollection task is done."); + }); + } + + private static XrResult CompletePA(IntPtr future) { + Debug.Log("AnchorManager: CompletePA"); + var ret = feature.PersistSpatialAnchorComplete(future, out var completion); + if (ret == XrResult.XR_SUCCESS) + { + return completion.futureResult; + } + else + { + Debug.LogError("AcquirePersistedAnchorCollection failed: " + ret); + } + return ret; + } + + /// + /// Persist an anchor with the given name. The persistanceAnchorName should be unique. + /// The persistance might fail if the anchor is not trackable. Check the result from the task. + /// + /// The anchor instance. + /// The name of the persisted anchor. + /// PersistAnchor may take time. If you want to cancel it, use cts. + /// The task to get persisted anchor's result. + public static FutureTask PersistAnchor(Anchor anchor, string persistanceAnchorName) + { + EnsureFeature(); + EnsureCollection(); + + if (string.IsNullOrEmpty(persistanceAnchorName)) + throw new ArgumentException("The persistanceAnchorName should not be empty."); + + var name = new XrSpatialAnchorNameHTC(persistanceAnchorName); + + var ret = feature.PersistSpatialAnchorAsync(persistedAnchorCollection, anchor.GetXrSpace(), name, out IntPtr future); + if (ret == XrResult.XR_SUCCESS) + { + // If no auto complete, you can cancel the task and no need to free resouce. + // Once it completed, you need handle the result. + return new FutureTask(future, CompletePA, 10, autoComplete: false); + } + + return FutureTask.FromResult(ret); + } + + /// + /// Unpersist the anchor by the name. The anchor created from persisted anchor will still be trackable. + /// + /// The name of the persisted anchor to be removed. + /// The result of the operation. + public static XrResult UnpersistAnchor(string persistanceAnchorName) + { + EnsureFeature(); + EnsureCollection(); + + if (string.IsNullOrEmpty(persistanceAnchorName)) + throw new ArgumentException("The persistanceAnchorName should not be empty."); + + var name = new XrSpatialAnchorNameHTC(persistanceAnchorName); + + var ret = feature.UnpersistSpatialAnchor(persistedAnchorCollection, name); + + return ret; + } + + /// + /// Get the number of persisted anchors. + /// + /// Output parameter to hold the number of persisted anchors. + /// The result of the operation. + public static XrResult GetNumberOfPersistedAnchors(out int count) + { + EnsureFeature(); + EnsureCollection(); + + XrSpatialAnchorNameHTC[] xrNames = null; + uint xrCount = 0; + + XrResult ret = feature.EnumeratePersistedAnchorNames(persistedAnchorCollection, 0, ref xrCount, ref xrNames); + if (ret != XrResult.XR_SUCCESS) + count = 0; + else + count = (int)xrCount; + return ret; + } + + /// + /// List all persisted anchors. + /// + /// Output parameter to hold the names of the persisted anchors. + /// The result of the operation. + public static XrResult EnumeratePersistedAnchorNames(out string[] names) + { + EnsureFeature(); + EnsureCollection(); + + XrSpatialAnchorNameHTC[] xrNames = null; + uint countOut = 0; + uint countIn = 0; + + XrResult ret = feature.EnumeratePersistedAnchorNames(persistedAnchorCollection, countIn, ref countOut, ref xrNames); + if (ret != XrResult.XR_SUCCESS) + { + names = null; + return ret; + } + + // If Insufficient size, try again. + do + { + countIn = countOut; + xrNames = new XrSpatialAnchorNameHTC[countIn]; + ret = feature.EnumeratePersistedAnchorNames(persistedAnchorCollection, countIn, ref countOut, ref xrNames); + } + while (ret == XrResult.XR_ERROR_SIZE_INSUFFICIENT); + if (ret != XrResult.XR_SUCCESS) + { + names = null; + return ret; + } + + names = new string[countIn]; + for (int i = 0; i < countIn; i++) + { + string v = xrNames[i].ToString(); + names[i] = v; + } + return ret; + } + + private static (XrResult, Anchor) CompleteCreateSAfromPA(IntPtr future) + { + Debug.Log("AnchorManager: CompleteCreateSAfromPA"); + var ret = feature.CreateSpatialAnchorFromPersistedAnchorComplete(future, out var completion); + if (ret == XrResult.XR_SUCCESS) + { + var anchor = new Anchor(completion.anchor); + anchor.isTrackable = true; + return (completion.futureResult, anchor); + } + else + { + Debug.LogError("CreateSpatialAnchorFromPersistedAnchor failed: " + ret); + return (ret, new Anchor(0)); + } + } + + /// + /// Create a spatial anchor from a persisted anchor. This will also mark the anchor as trackable. + /// + /// The name of the persisted anchor. + /// The name of the new spatial anchor. + /// Output parameter to hold the new anchor instance. + /// The result of the operation. + public static FutureTask<(XrResult, Anchor)> CreateSpatialAnchorFromPersistedAnchor(string persistanceAnchorName, string spatialAnchorName) + { + EnsureFeature(); + EnsureCollection(); + Debug.Log("AnchorManager: CreateSpatialAnchorFromPersistedAnchor: " + persistanceAnchorName + " -> " + spatialAnchorName); + + if (string.IsNullOrEmpty(persistanceAnchorName) || string.IsNullOrEmpty(spatialAnchorName)) + throw new ArgumentException("The persistanceAnchorName and spatialAnchorName should not be empty."); + + var createInfo = new XrSpatialAnchorFromPersistedAnchorCreateInfoHTC() { + type = XrStructureType.XR_TYPE_SPATIAL_ANCHOR_FROM_PERSISTED_ANCHOR_CREATE_INFO_HTC, + persistedAnchorCollection = persistedAnchorCollection, + persistedAnchorName = new XrSpatialAnchorNameHTC(persistanceAnchorName), + spatialAnchorName = new XrSpatialAnchorNameHTC(spatialAnchorName) + }; + + var ret = feature.CreateSpatialAnchorFromPersistedAnchorAsync(createInfo, out var future); + if (ret == XrResult.XR_SUCCESS) + { + // If no auto complete, you can cancel the task and no need to free resouce. + // Once it completed, you need handle the result. + return new FutureTask<(XrResult, Anchor)>(future, CompleteCreateSAfromPA, 10, autoComplete: false); + } + else + { + return FutureTask<(XrResult, Anchor)>.FromResult((ret, new Anchor(0))); + } + } + + /// + /// Clear all persisted anchors. Those anchors created from or to the persisted anchor will still be trackable. + /// + /// The result of the operation. + public static XrResult ClearPersistedAnchors() + { + EnsureFeature(); + EnsureCollection(); + return feature.ClearPersistedAnchors(persistedAnchorCollection); + } + + /// + /// Get the properties of the persisted anchor. + /// maxPersistedAnchorCount in XrPersistedAnchorPropertiesGetInfoHTC will be set to the max count of the persisted anchor. + /// + /// Output parameter to hold the properties of the persisted anchor. + /// The result of the operation. + public static XrResult GetPersistedAnchorProperties(out XrPersistedAnchorPropertiesGetInfoHTC properties) + { + EnsureFeature(); + EnsureCollection(); + return feature.GetPersistedAnchorProperties(persistedAnchorCollection, out properties); + } + + /// + /// Export the persisted anchor to a buffer. The buffer can be used to import the anchor later or save it to a file. + /// Export takes time, so it is an async function. The buffer will be null if the export failed. + /// + /// The name of the persisted anchor to be exported. + /// Output parameter to hold the buffer containing the exported anchor. + /// A task representing the asynchronous operation. + public static Task<(XrResult, string, byte[])> ExportPersistedAnchor(string persistanceAnchorName) + { + EnsureFeature(); + EnsureCollection(); + + if (string.IsNullOrEmpty(persistanceAnchorName)) + return Task.FromResult<(XrResult, string, byte[])>((XrResult.XR_ERROR_HANDLE_INVALID, "", null)); + + var name = new XrSpatialAnchorNameHTC(persistanceAnchorName); + + return Task.Run(async () => + { + Debug.Log($"ExportPersistedAnchor({persistanceAnchorName}) task is started."); + XrResult ret = XrResult.XR_ERROR_VALIDATION_FAILURE; + await semaphoreSlim.WaitAsync(); + try + { + lock (asyncLock) + { + if (persistedAnchorCollection == System.IntPtr.Zero) + { + return (XrResult.XR_ERROR_HANDLE_INVALID, "", null); + } + } + + ret = feature.ExportPersistedAnchor(persistedAnchorCollection, name, out var buffer); + Debug.Log($"ExportPersistedAnchor({persistanceAnchorName}) task is done. ret=" + ret); + lock (asyncLock) + { + if (ret != XrResult.XR_SUCCESS) + { + buffer = null; + return (ret, "", null); + } + return (ret, persistanceAnchorName, buffer); + } + } + finally + { + semaphoreSlim.Release(); + } + }); + } + + /// + /// Import the persisted anchor from a buffer. The buffer should be created by ExportPersistedAnchor. + /// Import takes time, so it is an async function. Check imported anchor by EnumeratePersistedAnchorNames. + /// + /// The buffer containing the persisted anchor data. + /// A task representing the asynchronous operation. + public static Task ImportPersistedAnchor(byte[] buffer) { + EnsureFeature(); + EnsureCollection(); + + return Task.Run(async () => + { + Debug.Log($"ImportPersistedAnchor task is started."); + XrResult ret = XrResult.XR_ERROR_VALIDATION_FAILURE; + await semaphoreSlim.WaitAsync(); + try + { + lock (asyncLock) + { + if (persistedAnchorCollection == System.IntPtr.Zero) + return XrResult.XR_ERROR_HANDLE_INVALID; + ret = feature.ImportPersistedAnchor(persistedAnchorCollection, buffer); + return ret; + } + } + finally + { + semaphoreSlim.Release(); + Debug.Log($"ImportPersistedAnchor task is done. ret=" + ret); + } + }); + } + + /// + /// Get the persisted anchor name from the buffer. The buffer should be created by ExportPersistedAnchor. + /// + /// True if the name is successfully retrieved, false otherwise. + public static bool GetPersistedAnchorNameFromBuffer(byte[] buffer, out string name) + { + EnsureFeature(); + EnsureCollection(); + var ret = feature.GetPersistedAnchorNameFromBuffer(persistedAnchorCollection, buffer, out var xrName); + if (ret == XrResult.XR_SUCCESS) + name = xrName.ToString(); + else + name = ""; + return ret == XrResult.XR_SUCCESS; + } + + /// + /// Anchor is a named Space. It can be used to create a spatial anchor, or get the anchor's name. + /// After use, you should call Dispose() to release the anchor. + /// IsTrackable is true if the anchor is created persisted anchor or created from persisted anchor. + /// IsPersisted is true if the anchor is ever persisted. /// public class Anchor : VIVE.OpenXR.Feature.Space { @@ -152,29 +613,60 @@ namespace VIVE.OpenXR.Toolkits.Anchor } } + internal bool isTrackable = false; + + /// + /// If the anchor is created persisted anchor or created from persisted anchor, it will be trackable. + /// + public bool IsTrackable => isTrackable; + + internal bool isPersisted = false; + + /// + /// If the anchor is ever persisted, it will be true. + /// + public bool IsPersisted => isPersisted; + internal Anchor(XrSpace anchor, string name) : base(anchor) { + Debug.Log($"Anchor: new Anchor({anchor}, {name})"); // Remove this line later. // Get the current tracking space. this.name = name; } + internal Anchor(XrSpace anchor) : base(anchor) + { + Debug.Log($"Anchor: new Anchor({anchor})"); // Remove this line later. + // Get the current tracking space. + name = GetSpatialAnchorName(); + } + internal Anchor(Anchor other) : base(other.space) { // Get the current tracking space. name = other.name; + isTrackable = other.isTrackable; + isPersisted = other.isPersisted; } /// /// Get the anchor's name by using this anchor's handle, instead of the anchor's Name. This will update the anchor's Name. /// - /// + /// Anchor's name. Always return non null string. public string GetSpatialAnchorName() { - AnchorManager.CheckFeature(); + if (space == 0) + { + Debug.LogError("Anchor: GetSpatialAnchorName: The anchor is invalid."); + return ""; + } + AnchorManager.EnsureFeature(); if (AnchorManager.GetSpatialAnchorName(this, out string name)) return name; - return null; + + Debug.LogError("Anchor: GetSpatialAnchorName: Failed to get Anchor name."); + return ""; } } } -} \ No newline at end of file +} diff --git a/com.htc.upm.vive.openxr/Runtime/Toolkits/Common.meta b/com.htc.upm.vive.openxr/Runtime/Toolkits/Common.meta new file mode 100644 index 0000000..b77ec5e --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Toolkits/Common.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5544ca439cd389c4ba5255504ce221a4 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Toolkits/Common/VIVEInput.cs b/com.htc.upm.vive.openxr/Runtime/Toolkits/Common/VIVEInput.cs new file mode 100644 index 0000000..d1985ca --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Toolkits/Common/VIVEInput.cs @@ -0,0 +1,815 @@ +// Copyright HTC Corporation All Rights Reserved. + +using System; +using System.Collections.Generic; +using System.Linq; +using UnityEngine; +using UnityEngine.InputSystem; +using UnityEngine.XR.OpenXR; +using VIVE.OpenXR.Hand; + +#if UNITY_XR_HANDS +using UnityEngine.XR.Hands; +using UnityEngine.XR.Hands.OpenXR; +#endif + +namespace VIVE.OpenXR.Toolkits.Common +{ + public enum DeviceCategory + { + None = 0, + HMD = 1, + CenterEye = 2, + LeftController = 3, + RightController = 4, + LeftHand = 5, + RightHand = 6, + Tracker0 = 7, + Tracker1 = 8, + Tracker2 = 9, + Tracker3 = 10, + Tracker4 = 11, + } + public enum PoseState + { + None = 0, + IsTracked = 1, + Position = 2, + Rotation = 3, + Velocity = 4, + AngularVelocity = 5, + Acceleration = 6, + AngularAcceleration = 7, + } + public enum Handedness + { + None = -1, + Right = 0, + Left = 1, + } + public enum HandEvent + { + None = 0, + PinchValue = 0x00000001, + PinchPose = 0x00000002, + GraspValue = 0x00000010, + GraspPose = 0x00000020, + } + public enum ButtonEvent + { + None = 0, + GripValue = 0x00000001, + GripPress = 0x00000002, + TriggerValue = 0x00000010, + TriggerTouch = 0x00000020, + TriggerPress = 0x00000040, + Primary2DAxisValue = 0x00000100, + Primary2DAxisTouch = 0x00000200, + Primary2DAxisPress = 0x00000400, + Secondary2DAxisValue = 0x00001000, + Secondary2DAxisTouch = 0x00002000, + Secondary2DAxisPress = 0x00004000, + PrimaryButton = 0x00010000, + SecondaryButton = 0x00020000, + ParkingTouch = 0x00100000, + Menu = 0x01000000, + } + public enum HandJointType : Int32 + { + Palm = XrHandJointEXT.XR_HAND_JOINT_PALM_EXT, + Wrist = XrHandJointEXT.XR_HAND_JOINT_WRIST_EXT, + Thumb_Joint0 = XrHandJointEXT.XR_HAND_JOINT_THUMB_METACARPAL_EXT, + Thumb_Joint1 = XrHandJointEXT.XR_HAND_JOINT_THUMB_PROXIMAL_EXT, + Thumb_Joint2 = XrHandJointEXT.XR_HAND_JOINT_THUMB_DISTAL_EXT, + Thumb_Tip = XrHandJointEXT.XR_HAND_JOINT_THUMB_TIP_EXT, + Index_Joint0 = XrHandJointEXT.XR_HAND_JOINT_INDEX_METACARPAL_EXT, + Index_Joint1 = XrHandJointEXT.XR_HAND_JOINT_INDEX_PROXIMAL_EXT, + Index_Joint2 = XrHandJointEXT.XR_HAND_JOINT_INDEX_INTERMEDIATE_EXT, + Index_Joint3 = XrHandJointEXT.XR_HAND_JOINT_INDEX_DISTAL_EXT, + Index_Tip = XrHandJointEXT.XR_HAND_JOINT_INDEX_TIP_EXT, + Middle_Joint0 = XrHandJointEXT.XR_HAND_JOINT_MIDDLE_METACARPAL_EXT, + Middle_Joint1 = XrHandJointEXT.XR_HAND_JOINT_MIDDLE_PROXIMAL_EXT, + Middle_Joint2 = XrHandJointEXT.XR_HAND_JOINT_MIDDLE_INTERMEDIATE_EXT, + Middle_Joint3 = XrHandJointEXT.XR_HAND_JOINT_MIDDLE_DISTAL_EXT, + Middle_Tip = XrHandJointEXT.XR_HAND_JOINT_MIDDLE_TIP_EXT, + Ring_Joint0 = XrHandJointEXT.XR_HAND_JOINT_RING_METACARPAL_EXT, + Ring_Joint1 = XrHandJointEXT.XR_HAND_JOINT_RING_PROXIMAL_EXT, + Ring_Joint2 = XrHandJointEXT.XR_HAND_JOINT_RING_INTERMEDIATE_EXT, + Ring_Joint3 = XrHandJointEXT.XR_HAND_JOINT_RING_DISTAL_EXT, + Ring_Tip = XrHandJointEXT.XR_HAND_JOINT_RING_TIP_EXT, + Pinky_Joint0 = XrHandJointEXT.XR_HAND_JOINT_LITTLE_METACARPAL_EXT, + Pinky_Joint1 = XrHandJointEXT.XR_HAND_JOINT_LITTLE_PROXIMAL_EXT, + Pinky_Joint2 = XrHandJointEXT.XR_HAND_JOINT_LITTLE_INTERMEDIATE_EXT, + Pinky_Joint3 = XrHandJointEXT.XR_HAND_JOINT_LITTLE_DISTAL_EXT, + Pinky_Tip = XrHandJointEXT.XR_HAND_JOINT_LITTLE_TIP_EXT, + Count = XrHandJointEXT.XR_HAND_JOINT_MAX_ENUM_EXT, + } + + public static class VIVEInput + { + private struct InputActionMapping + { + public DeviceCategory device; + public PoseState poseState; + public ButtonEvent buttonEvent; + public HandEvent handEvent; + public InputAction inputAction { get; private set; } + + public InputActionMapping(string bindingPath, DeviceCategory device, + PoseState poseState = PoseState.None, ButtonEvent buttonEvent = ButtonEvent.None, HandEvent handEvent = HandEvent.None) + { + inputAction = new InputAction(binding: bindingPath); + inputAction.Enable(); + this.device = device; + this.poseState = poseState; + this.buttonEvent = buttonEvent; + this.handEvent = handEvent; + } + + public static InputActionMapping Identify => new InputActionMapping("", DeviceCategory.None); + + public override bool Equals(object obj) + { + return obj is InputActionMapping inputActionMapping && + device == inputActionMapping.device && + poseState == inputActionMapping.poseState && + buttonEvent == inputActionMapping.buttonEvent && + handEvent == inputActionMapping.handEvent && + inputAction == inputActionMapping.inputAction; + } + public override int GetHashCode() + { + return device.GetHashCode() ^ poseState.GetHashCode() ^ buttonEvent.GetHashCode() ^ handEvent.GetHashCode() ^ inputAction.GetHashCode(); + } + public static bool operator ==(InputActionMapping source, InputActionMapping target) => source.Equals(target); + public static bool operator !=(InputActionMapping source, InputActionMapping target) => !(source == (target)); + } + private struct JointData + { + public bool isValid { get; private set; } + public Vector3 position { get; private set; } + public Quaternion rotation { get; private set; } + + public JointData(bool isValid, Vector3 position, Quaternion rotation) + { + this.isValid = isValid; + this.position = position; + this.rotation = rotation; + } + + public static JointData Identify => new JointData(false, Vector3.zero, Quaternion.identity); + } + private struct HandData + { + public bool isTracked { get; private set; } + public int updateTime { get; private set; } + public JointData[] joints { get; private set; } + + public HandData(JointData[] joints) + { + this.joints = joints; + isTracked = !this.joints.Any(x => x.isValid == false); + updateTime = Time.frameCount; + } + + public void Update(JointData[] joints) + { + this.joints = joints; + isTracked = !this.joints.Any(x => x.isValid == false); + updateTime = Time.frameCount; + } + + public static HandData Identify + { + get + { + JointData[] newJoints = new JointData[(int)HandJointType.Count]; + for (int i = 0; i < newJoints.Length; i++) + { + newJoints[i] = JointData.Identify; + } + return new HandData(newJoints); + } + } + } + + private static bool isInitInputActions = false; + private static List inputActions = new List(); + private static HandData leftHand = HandData.Identify; + private static HandData rightHand = HandData.Identify; +#if UNITY_XR_HANDS + private static XRHandSubsystem handSubsystem = null; +#endif + + #region Public Interface + + /// + /// Get the pose state of the specified device. + /// + /// The device category. + /// The pose state to be retrieved. + /// The result of the event. + /// True if the pose state was successfully retrieved; otherwise, false. + public static bool GetPoseState(DeviceCategory device, PoseState poseState, out bool eventResult) + { + CheckInitialize(); + eventResult = false; + if ((device == DeviceCategory.LeftHand || device == DeviceCategory.RightHand) && poseState == PoseState.IsTracked) + { + eventResult = IsHandTracked(GetHandedness(device)); + return true; + } + else + { + InputActionMapping inputActionMapping = inputActions.FirstOrDefault(x => x.device == device && x.poseState == poseState); + if (inputActionMapping == null) { return false; } + + try + { + eventResult = inputActionMapping.inputAction.ReadValue() > 0; + return true; + } + catch (InvalidOperationException) + { + return false; + } + } + } + + /// + /// Get the pose state of the specified device. + /// + /// The device category. + /// The pose state to be retrieved. + /// The result of the event. + /// True if the pose state was successfully retrieved; otherwise, false. + public static bool GetPoseState(DeviceCategory device, PoseState poseState, out Vector3 eventResult) + { + CheckInitialize(); + eventResult = Vector3.zero; + if ((device == DeviceCategory.LeftHand || device == DeviceCategory.RightHand) && poseState == PoseState.Position) + { + GetJointPose(GetHandedness(device), HandJointType.Wrist, out Pose jointPose); + eventResult = jointPose.position; + return true; + } + else + { + InputActionMapping inputActionMapping = inputActions.FirstOrDefault(x => x.device == device && x.poseState == poseState); + if (inputActionMapping == null) { return false; } + + try + { + eventResult = inputActionMapping.inputAction.ReadValue(); + return true; + } + catch (InvalidOperationException) + { + return false; + } + } + } + + /// + /// Get the pose state of the specified device. + /// + /// The device category. + /// The pose state to be retrieved. + /// The result of the event. + /// True if the pose state was successfully retrieved; otherwise, false. + public static bool GetPoseState(DeviceCategory device, PoseState poseState, out Quaternion eventResult) + { + CheckInitialize(); + eventResult = Quaternion.identity; + if ((device == DeviceCategory.LeftHand || device == DeviceCategory.RightHand) && poseState == PoseState.Rotation) + { + GetJointPose(GetHandedness(device), HandJointType.Wrist, out Pose jointPose); + eventResult = jointPose.rotation; + return true; + } + else + { + InputActionMapping inputActionMapping = inputActions.FirstOrDefault(x => x.device == device && x.poseState == poseState); + if (inputActionMapping == null) { return false; } + + try + { + eventResult = inputActionMapping.inputAction.ReadValue(); + return true; + } + catch (InvalidOperationException) + { + return false; + } + } + } + + /// + /// Check if a specified button event has toggled at this frame and return the result. + /// + /// The handedness (left or right hand) to check the button event for. + /// The specified button event to check. + /// Output whether the button event has toggled. + /// Returns true if the button event was successfully retrieved, otherwise false. + public static bool GetButtonDown(Handedness handedness, ButtonEvent buttonEvent, out bool eventResult) + { + CheckInitialize(); + eventResult = false; + InputActionMapping inputActionMapping = inputActions.FirstOrDefault(x => x.device == GetController(handedness) && x.buttonEvent == buttonEvent); + if (inputActionMapping != null) + { + eventResult = inputActionMapping.inputAction.WasPressedThisFrame(); + return true; + } + return false; + } + + /// + /// Check if a specified button event has toggled at this frame and return the result. + /// + /// The handedness (left or right hand) to check the button event for. + /// The specified button event to check. + /// Output whether the button event has toggled. + /// Returns true if the button event was successfully retrieved, otherwise false. + public static bool GetButtonUp(Handedness handedness, ButtonEvent buttonEvent, out bool eventResult) + { + CheckInitialize(); + eventResult = false; + InputActionMapping inputActionMapping = inputActions.FirstOrDefault(x => x.device == GetController(handedness) && x.buttonEvent == buttonEvent); + if (inputActionMapping != null) + { + eventResult = inputActionMapping.inputAction.WasReleasedThisFrame(); + return true; + } + return false; + } + + /// + /// Check if a specified button event has toggled and return the result. + /// + /// The handedness (left or right hand) to check the button event for. + /// The specified button event to check. + /// Output for the button event. + /// Returns true if the button event was successfully retrieved, otherwise false. + public static bool GetButtonValue(Handedness handedness, ButtonEvent buttonEvent, out bool eventResult) + { + CheckInitialize(); + eventResult = false; + InputActionMapping inputActionMapping = inputActions.FirstOrDefault(x => x.device == GetController(handedness) && x.buttonEvent == buttonEvent); + if (inputActionMapping != null) + { + try + { + eventResult = inputActionMapping.inputAction.ReadValue() == 1; + return true; + } + catch (InvalidOperationException) + { + return false; + } + } + return false; + + } + + /// + /// Check if a specified button event has toggled and return the result. + /// + /// The handedness (left or right hand) to check the button event for. + /// The specified button event to check. + /// Output for the button event. + /// Returns true if the button event was successfully retrieved, otherwise false. + public static bool GetButtonValue(Handedness handedness, ButtonEvent buttonEvent, out float eventResult) + { + CheckInitialize(); + eventResult = 0f; + InputActionMapping inputActionMapping = inputActions.FirstOrDefault(x => x.device == GetController(handedness) && x.buttonEvent == buttonEvent); + if (inputActionMapping != null) + { + try + { + eventResult = inputActionMapping.inputAction.ReadValue(); + return true; + } + catch (InvalidOperationException) + { + return false; + } + } + return false; + + } + + /// + /// Check if a specified button event has toggled and return the result. + /// + /// The handedness (left or right hand) to check the button event for. + /// The specified button event to check. + /// Output for the button event. + /// Returns true if the button event was successfully retrieved, otherwise false. + public static bool GetButtonValue(Handedness handedness, ButtonEvent buttonEvent, out Vector2 eventResult) + { + CheckInitialize(); + eventResult = Vector2.zero; + InputActionMapping inputActionMapping = inputActions.FirstOrDefault(x => x.device == GetController(handedness) && x.buttonEvent == buttonEvent); + if (inputActionMapping != null) + { + try + { + eventResult = inputActionMapping.inputAction.ReadValue(); + return true; + } + catch (InvalidOperationException) + { + return false; + } + } + return false; + } + + /// + /// Check if a specified hand event has toggled and return the result. + /// + /// The handedness (left or right hand) to check the hand event for. + /// The specified hand event to check. + /// Output for the hand event. + /// Returns true if the hand event was successfully retrieved, otherwise false. + public static bool GetHandValue(Handedness handedness, HandEvent handEvent, out float eventResult) + { + CheckInitialize(); + eventResult = 0; + InputActionMapping inputActionMapping = inputActions.FirstOrDefault(x => x.device == GetHand(handedness) && x.handEvent == handEvent); + if (inputActionMapping != null) + { + try + { + eventResult = inputActionMapping.inputAction.ReadValue(); + return true; + } + catch (InvalidOperationException) + { + return false; + } + } + return false; + } + + /// + /// Check if a specified hand event has toggled and return the result. + /// + /// The handedness (left or right hand) to check the hand event for. + /// The specified hand event to check. + /// Output for the hand event. + /// Returns true if the hand event was successfully retrieved, otherwise false. + public static bool GetHandValue(Handedness handedness, HandEvent handEvent, out Pose eventResult) + { + CheckInitialize(); + eventResult = Pose.identity; + InputActionMapping inputActionMapping = inputActions.FirstOrDefault(x => x.device == GetHand(handedness) && x.handEvent == handEvent); + if (inputActionMapping != null) + { + try + { + UnityEngine.XR.OpenXR.Input.Pose pose = inputActionMapping.inputAction.ReadValue(); + eventResult = new Pose(pose.position, pose.rotation); + return true; + } + catch (InvalidOperationException) + { + return false; + } + } + return false; + } + + /// + /// Retrieves the pose of a specified hand joint for the given handedness. + /// + /// The handedness (left or right hand) to get the joint pose for. + /// The specific hand joint to retrieve the pose of. + /// Outputs the pose of the specified hand joint. + /// Returns true if the joint pose was successfully retrieved, otherwise false. + public static bool GetJointPose(Handedness handedness, HandJointType joint, out Pose jointPose) + { + CheckHandUpdated(); + jointPose = Pose.identity; + if (handedness == Handedness.Left) + { + jointPose = new Pose(leftHand.joints[(int)joint].position, leftHand.joints[(int)joint].rotation); + return leftHand.joints[(int)joint].isValid; + } + else + { + jointPose = new Pose(rightHand.joints[(int)joint].position, rightHand.joints[(int)joint].rotation); + return rightHand.joints[(int)joint].isValid; + } + } + + /// + /// Determines if the specified hand is currently being tracked. + /// + /// The handedness (left or right hand) to check for tracking. + /// Returns true if the specified hand is being tracked, otherwise false. + public static bool IsHandTracked(Handedness handedness) + { + CheckHandUpdated(); + return handedness == Handedness.Left ? leftHand.isTracked : rightHand.isTracked; + } + + public static bool IsHandValidate() + { + ViveHandTracking viveHand = OpenXRSettings.Instance.GetFeature(); + if (viveHand) + { + return true; + } +#if UNITY_XR_HANDS + HandTracking xrHand = OpenXRSettings.Instance.GetFeature(); + if (xrHand) + { + return true; + } +#endif + return false; + } + + #endregion + + [RuntimeInitializeOnLoadMethod] + private static bool CheckInitialize() + { + if (!isInitInputActions) + { + Initialized(); + isInitInputActions = true; + } + return isInitInputActions; + } + + private static void Initialized() + { + #region Head + inputActions.Add(new InputActionMapping("/isTracked", DeviceCategory.HMD, poseState: PoseState.IsTracked)); + inputActions.Add(new InputActionMapping("/centerEyePosition", DeviceCategory.HMD, poseState: PoseState.Position)); + inputActions.Add(new InputActionMapping("/centerEyeRotation", DeviceCategory.HMD, poseState: PoseState.Rotation)); + inputActions.Add(new InputActionMapping("/centerEyeVelocity", DeviceCategory.HMD, poseState: PoseState.Velocity)); + inputActions.Add(new InputActionMapping("/centerEyeAngularVelocity", DeviceCategory.HMD, poseState: PoseState.AngularVelocity)); + inputActions.Add(new InputActionMapping("/centerEyeAcceleration", DeviceCategory.HMD, poseState: PoseState.Acceleration)); + inputActions.Add(new InputActionMapping("/centerEyeAngularAcceleration", DeviceCategory.HMD, poseState: PoseState.AngularAcceleration)); + #endregion + #region Eye + inputActions.Add(new InputActionMapping("/pose/isTracked", DeviceCategory.CenterEye, poseState: PoseState.IsTracked)); + inputActions.Add(new InputActionMapping("/pose/position", DeviceCategory.CenterEye, poseState: PoseState.Position)); + inputActions.Add(new InputActionMapping("/pose/rotation", DeviceCategory.CenterEye, poseState: PoseState.Rotation)); + inputActions.Add(new InputActionMapping("/pose/velocity", DeviceCategory.CenterEye, poseState: PoseState.Velocity)); + inputActions.Add(new InputActionMapping("/pose/angularVelocity", DeviceCategory.CenterEye, poseState: PoseState.AngularVelocity)); + #endregion + #region Controller + inputActions.Add(new InputActionMapping("{LeftHand}/isTracked", DeviceCategory.LeftController, poseState: PoseState.IsTracked)); + inputActions.Add(new InputActionMapping("{LeftHand}/pointerPosition", DeviceCategory.LeftController, poseState: PoseState.Position)); + inputActions.Add(new InputActionMapping("{LeftHand}/pointerRotation", DeviceCategory.LeftController, poseState: PoseState.Rotation)); + inputActions.Add(new InputActionMapping("{LeftHand}/deviceVelocity", DeviceCategory.LeftController, poseState: PoseState.Velocity)); + inputActions.Add(new InputActionMapping("{LeftHand}/deviceAngularVelocity", DeviceCategory.LeftController, poseState: PoseState.AngularVelocity)); + inputActions.Add(new InputActionMapping("{LeftHand}/deviceAcceleration", DeviceCategory.LeftController, poseState: PoseState.Acceleration)); + inputActions.Add(new InputActionMapping("{LeftHand}/deviceAngularAcceleration", DeviceCategory.LeftController, poseState: PoseState.AngularAcceleration)); + inputActions.Add(new InputActionMapping("{LeftHand}/{grip}", DeviceCategory.LeftController, buttonEvent: ButtonEvent.GripValue)); + inputActions.Add(new InputActionMapping("{LeftHand}/{gripButton}", DeviceCategory.LeftController, buttonEvent: ButtonEvent.GripPress)); + inputActions.Add(new InputActionMapping("{LeftHand}/{trigger}", DeviceCategory.LeftController, buttonEvent: ButtonEvent.TriggerValue)); + inputActions.Add(new InputActionMapping("{LeftHand}/triggerTouched", DeviceCategory.LeftController, buttonEvent: ButtonEvent.TriggerTouch)); + inputActions.Add(new InputActionMapping("{LeftHand}/{triggerButton}", DeviceCategory.LeftController, buttonEvent: ButtonEvent.TriggerPress)); + inputActions.Add(new InputActionMapping("{LeftHand}/{primary2DAxis}", DeviceCategory.LeftController, buttonEvent: ButtonEvent.Primary2DAxisValue)); + inputActions.Add(new InputActionMapping("{LeftHand}/{primary2DAxisTouch}", DeviceCategory.LeftController, buttonEvent: ButtonEvent.Primary2DAxisTouch)); + inputActions.Add(new InputActionMapping("{LeftHand}/{primary2DAxisClick}", DeviceCategory.LeftController, buttonEvent: ButtonEvent.Primary2DAxisPress)); + inputActions.Add(new InputActionMapping("{LeftHand}/{secondary2DAxis}", DeviceCategory.LeftController, buttonEvent: ButtonEvent.Secondary2DAxisValue)); + inputActions.Add(new InputActionMapping("{LeftHand}/{secondary2DAxisTouch}", DeviceCategory.LeftController, buttonEvent: ButtonEvent.Secondary2DAxisTouch)); + inputActions.Add(new InputActionMapping("{LeftHand}/{secondary2DAxisClick}", DeviceCategory.LeftController, buttonEvent: ButtonEvent.Secondary2DAxisPress)); + inputActions.Add(new InputActionMapping("{LeftHand}/{primaryButton}", DeviceCategory.LeftController, buttonEvent: ButtonEvent.PrimaryButton)); + inputActions.Add(new InputActionMapping("{LeftHand}/{secondaryButton}", DeviceCategory.LeftController, buttonEvent: ButtonEvent.SecondaryButton)); + inputActions.Add(new InputActionMapping("{LeftHand}/parkingTouched", DeviceCategory.LeftController, buttonEvent: ButtonEvent.ParkingTouch)); + inputActions.Add(new InputActionMapping("{LeftHand}/menu", DeviceCategory.LeftController, buttonEvent: ButtonEvent.Menu)); + + inputActions.Add(new InputActionMapping("{RightHand}/isTracked", DeviceCategory.RightController, poseState: PoseState.IsTracked)); + inputActions.Add(new InputActionMapping("{RightHand}/pointerPosition", DeviceCategory.RightController, poseState: PoseState.Position)); + inputActions.Add(new InputActionMapping("{RightHand}/pointerRotation", DeviceCategory.RightController, poseState: PoseState.Rotation)); + inputActions.Add(new InputActionMapping("{RightHand}/deviceVelocity", DeviceCategory.RightController, poseState: PoseState.Velocity)); + inputActions.Add(new InputActionMapping("{RightHand}/deviceAngularVelocity", DeviceCategory.RightController, poseState: PoseState.AngularVelocity)); + inputActions.Add(new InputActionMapping("{RightHand}/deviceAcceleration", DeviceCategory.RightController, poseState: PoseState.Acceleration)); + inputActions.Add(new InputActionMapping("{RightHand}/deviceAngularAcceleration", DeviceCategory.RightController, poseState: PoseState.AngularAcceleration)); + inputActions.Add(new InputActionMapping("{RightHand}/{grip}", DeviceCategory.RightController, buttonEvent: ButtonEvent.GripValue)); + inputActions.Add(new InputActionMapping("{RightHand}/{gripButton}", DeviceCategory.RightController, buttonEvent: ButtonEvent.GripPress)); + inputActions.Add(new InputActionMapping("{RightHand}/{trigger}", DeviceCategory.RightController, buttonEvent: ButtonEvent.TriggerValue)); + inputActions.Add(new InputActionMapping("{RightHand}/triggerTouched", DeviceCategory.RightController, buttonEvent: ButtonEvent.TriggerTouch)); + inputActions.Add(new InputActionMapping("{RightHand}/{triggerButton}", DeviceCategory.RightController, buttonEvent: ButtonEvent.TriggerPress)); + inputActions.Add(new InputActionMapping("{RightHand}/{primary2DAxis}", DeviceCategory.RightController, buttonEvent: ButtonEvent.Primary2DAxisValue)); + inputActions.Add(new InputActionMapping("{RightHand}/{primary2DAxisTouch}", DeviceCategory.RightController, buttonEvent: ButtonEvent.Primary2DAxisTouch)); + inputActions.Add(new InputActionMapping("{RightHand}/{primary2DAxisClick}", DeviceCategory.RightController, buttonEvent: ButtonEvent.Primary2DAxisPress)); + inputActions.Add(new InputActionMapping("{RightHand}/{secondary2DAxis}", DeviceCategory.RightController, buttonEvent: ButtonEvent.Secondary2DAxisValue)); + inputActions.Add(new InputActionMapping("{RightHand}/{secondary2DAxisTouch}", DeviceCategory.RightController, buttonEvent: ButtonEvent.Secondary2DAxisTouch)); + inputActions.Add(new InputActionMapping("{RightHand}/{secondary2DAxisClick}", DeviceCategory.RightController, buttonEvent: ButtonEvent.Secondary2DAxisPress)); + inputActions.Add(new InputActionMapping("{RightHand}/{primaryButton}", DeviceCategory.RightController, buttonEvent: ButtonEvent.PrimaryButton)); + inputActions.Add(new InputActionMapping("{RightHand}/{secondaryButton}", DeviceCategory.RightController, buttonEvent: ButtonEvent.SecondaryButton)); + inputActions.Add(new InputActionMapping("{RightHand}/parkingTouched", DeviceCategory.RightController, buttonEvent: ButtonEvent.ParkingTouch)); + #endregion + #region Hand + inputActions.Add(new InputActionMapping("{LeftHand}/selectValue", DeviceCategory.LeftHand, handEvent: HandEvent.PinchValue)); + inputActions.Add(new InputActionMapping("{LeftHand}/pointerPose", DeviceCategory.LeftHand, handEvent: HandEvent.PinchPose)); + inputActions.Add(new InputActionMapping("{LeftHand}/gripValue", DeviceCategory.LeftHand, handEvent: HandEvent.GraspValue)); + inputActions.Add(new InputActionMapping("{LeftHand}/devicePose", DeviceCategory.LeftHand, handEvent: HandEvent.GraspPose)); + + inputActions.Add(new InputActionMapping("{RightHand}/selectValue", DeviceCategory.RightHand, handEvent: HandEvent.PinchValue)); + inputActions.Add(new InputActionMapping("{RightHand}/pointerPose", DeviceCategory.RightHand, handEvent: HandEvent.PinchPose)); + inputActions.Add(new InputActionMapping("{RightHand}/gripValue", DeviceCategory.RightHand, handEvent: HandEvent.GraspValue)); + inputActions.Add(new InputActionMapping("{RightHand}/devicePose", DeviceCategory.RightHand, handEvent: HandEvent.GraspPose)); + #endregion + #region Tracker + inputActions.Add(new InputActionMapping("{Ultimate Tracker 0}/devicePose/isTracked", DeviceCategory.Tracker0, poseState: PoseState.IsTracked)); + inputActions.Add(new InputActionMapping("{Ultimate Tracker 0}/devicePosition", DeviceCategory.Tracker0, poseState: PoseState.Position)); + inputActions.Add(new InputActionMapping("{Ultimate Tracker 0}/deviceRotation", DeviceCategory.Tracker0, poseState: PoseState.Rotation)); + inputActions.Add(new InputActionMapping("{Ultimate Tracker 0}/devicePose/velocity", DeviceCategory.Tracker0, poseState: PoseState.Velocity)); + inputActions.Add(new InputActionMapping("{Ultimate Tracker 0}/devicePose/angularVelocity", DeviceCategory.Tracker0, poseState: PoseState.AngularVelocity)); + + inputActions.Add(new InputActionMapping("{Ultimate Tracker 1}/devicePose/isTracked", DeviceCategory.Tracker1, poseState: PoseState.IsTracked)); + inputActions.Add(new InputActionMapping("{Ultimate Tracker 1}/devicePosition", DeviceCategory.Tracker1, poseState: PoseState.Position)); + inputActions.Add(new InputActionMapping("{Ultimate Tracker 1}/deviceRotation", DeviceCategory.Tracker1, poseState: PoseState.Rotation)); + inputActions.Add(new InputActionMapping("{Ultimate Tracker 1}/devicePose/velocity", DeviceCategory.Tracker1, poseState: PoseState.Velocity)); + inputActions.Add(new InputActionMapping("{Ultimate Tracker 1}/devicePose/angularVelocity", DeviceCategory.Tracker1, poseState: PoseState.AngularVelocity)); + + inputActions.Add(new InputActionMapping("{Ultimate Tracker 2}/devicePose/isTracked", DeviceCategory.Tracker2, poseState: PoseState.IsTracked)); + inputActions.Add(new InputActionMapping("{Ultimate Tracker 2}/devicePosition", DeviceCategory.Tracker2, poseState: PoseState.Position)); + inputActions.Add(new InputActionMapping("{Ultimate Tracker 2}/deviceRotation", DeviceCategory.Tracker2, poseState: PoseState.Rotation)); + inputActions.Add(new InputActionMapping("{Ultimate Tracker 2}/devicePose/velocity", DeviceCategory.Tracker2, poseState: PoseState.Velocity)); + inputActions.Add(new InputActionMapping("{Ultimate Tracker 2}/devicePose/angularVelocity", DeviceCategory.Tracker2, poseState: PoseState.AngularVelocity)); + + inputActions.Add(new InputActionMapping("{Ultimate Tracker 3}/devicePose/isTracked", DeviceCategory.Tracker3, poseState: PoseState.IsTracked)); + inputActions.Add(new InputActionMapping("{Ultimate Tracker 3}/devicePosition", DeviceCategory.Tracker3, poseState: PoseState.Position)); + inputActions.Add(new InputActionMapping("{Ultimate Tracker 3}/deviceRotation", DeviceCategory.Tracker3, poseState: PoseState.Rotation)); + inputActions.Add(new InputActionMapping("{Ultimate Tracker 3}/devicePose/velocity", DeviceCategory.Tracker3, poseState: PoseState.Velocity)); + inputActions.Add(new InputActionMapping("{Ultimate Tracker 3}/devicePose/angularVelocity", DeviceCategory.Tracker3, poseState: PoseState.AngularVelocity)); + + inputActions.Add(new InputActionMapping("{Ultimate Tracker 4}/devicePose/isTracked", DeviceCategory.Tracker4, poseState: PoseState.IsTracked)); + inputActions.Add(new InputActionMapping("{Ultimate Tracker 4}/devicePosition", DeviceCategory.Tracker4, poseState: PoseState.Position)); + inputActions.Add(new InputActionMapping("{Ultimate Tracker 4}/deviceRotation", DeviceCategory.Tracker4, poseState: PoseState.Rotation)); + inputActions.Add(new InputActionMapping("{Ultimate Tracker 4}/devicePose/velocity", DeviceCategory.Tracker4, poseState: PoseState.Velocity)); + inputActions.Add(new InputActionMapping("{Ultimate Tracker 4}/devicePose/angularVelocity", DeviceCategory.Tracker4, poseState: PoseState.AngularVelocity)); + #endregion + } + + private static void CheckHandUpdated() + { + if (Time.frameCount > leftHand.updateTime || + Time.frameCount > rightHand.updateTime) + { + ViveHandTracking viveHand = OpenXRSettings.Instance.GetFeature(); + if (viveHand) + { + UpdateViveHand(true, viveHand); + UpdateViveHand(false, viveHand); + } + +#if UNITY_XR_HANDS + HandTracking xrHand = OpenXRSettings.Instance.GetFeature(); + if (xrHand) + { + if (handSubsystem == null || !handSubsystem.running) + { + if (handSubsystem != null && !handSubsystem.running) + { + handSubsystem.updatedHands -= OnUpdatedHands; + handSubsystem = null; + } + + var handSubsystems = new List(); + SubsystemManager.GetSubsystems(handSubsystems); + for (var i = 0; i < handSubsystems.Count; ++i) + { + var xrHnad = handSubsystems[i]; + if (xrHnad.running) + { + handSubsystem = xrHnad; + break; + } + } + if (handSubsystem != null && handSubsystem.running) + { + handSubsystem.updatedHands += OnUpdatedHands; + } + } + } +#endif + } + } + + private static void UpdateViveHand(bool isLeft, ViveHandTracking viveHand) + { + bool isUpdated = viveHand.GetJointLocations(isLeft, out XrHandJointLocationEXT[] viveJoints); + JointData[] joints = new JointData[viveJoints.Length]; + for (int i = 0; i < joints.Length; i++) + { + bool isValid = isUpdated && + viveJoints[i].locationFlags.HasFlag(XrSpaceLocationFlags.XR_SPACE_LOCATION_POSITION_TRACKED_BIT) && + viveJoints[i].locationFlags.HasFlag(XrSpaceLocationFlags.XR_SPACE_LOCATION_ORIENTATION_TRACKED_BIT); + Vector3 position = viveJoints[i].pose.position.ToUnityVector(); + Quaternion rotation = viveJoints[i].pose.orientation.ToUnityQuaternion(); + joints[i] = new JointData(isValid, position, rotation); + } + if (isLeft) + { + leftHand.Update(joints); + } + else + { + rightHand.Update(joints); + } + } + +#if UNITY_XR_HANDS + private static void OnUpdatedHands(XRHandSubsystem xrHnad, XRHandSubsystem.UpdateSuccessFlags flags, XRHandSubsystem.UpdateType type) + { + if (xrHnad != null && xrHnad.running) + { + UpdateXRHand(true, xrHnad, flags.HasFlag(XRHandSubsystem.UpdateSuccessFlags.LeftHandJoints)); + UpdateXRHand(false, xrHnad, flags.HasFlag(XRHandSubsystem.UpdateSuccessFlags.RightHandJoints)); + } + } + + private static void UpdateXRHand(bool isLeft, XRHandSubsystem xrHnad, bool isUpdated) + { + JointData[] joints = new JointData[(int)HandJointType.Count]; + for (int i = 0; i < joints.Length; i++) + { + XRHandJointID jointId = JointTypeToXRId(i); + XRHandJoint joint = (isLeft ? xrHnad.leftHand : xrHnad.rightHand).GetJoint(jointId); + bool isValid = isUpdated && joint.trackingState.HasFlag(XRHandJointTrackingState.Pose); + joint.TryGetPose(out Pose pose); + joints[i] = new JointData(isValid, pose.position, pose.rotation); + } + if (isLeft) + { + leftHand.Update(joints); + } + else + { + rightHand.Update(joints); + } + } + + private static XRHandJointID JointTypeToXRId(int id) + { + switch (id) + { + case 0: + return XRHandJointID.Palm; + case 1: + return XRHandJointID.Wrist; + default: + return (XRHandJointID)(id + 1); + } + } +#endif + + private static DeviceCategory GetController(Handedness handedness) + { + DeviceCategory device = DeviceCategory.None; + switch (handedness) + { + case Handedness.Left: + device = DeviceCategory.LeftController; + break; + case Handedness.Right: + device = DeviceCategory.RightController; + break; + } + return device; + } + + private static DeviceCategory GetHand(Handedness handedness) + { + DeviceCategory device = DeviceCategory.None; + switch (handedness) + { + case Handedness.Left: + device = DeviceCategory.LeftHand; + break; + case Handedness.Right: + device = DeviceCategory.RightHand; + break; + } + return device; + } + + private static Handedness GetHandedness(DeviceCategory device) + { + Handedness handedness = Handedness.None; + switch (device) + { + case DeviceCategory.LeftHand: + handedness = Handedness.Left; + break; + case DeviceCategory.RightHand: + handedness = Handedness.Right; + break; + } + return handedness; + } + } +} diff --git a/com.htc.upm.vive.openxr/Runtime/Toolkits/Common/VIVEInput.cs.meta b/com.htc.upm.vive.openxr/Runtime/Toolkits/Common/VIVEInput.cs.meta new file mode 100644 index 0000000..9283673 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Toolkits/Common/VIVEInput.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 744a8b8476e9f394b87927173e7994b0 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Toolkits/Future.meta b/com.htc.upm.vive.openxr/Runtime/Toolkits/Future.meta new file mode 100644 index 0000000..c037b63 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Toolkits/Future.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a3a84b60570d8b243984fbe7169ca44a +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Toolkits/Future/FutureTask.cs b/com.htc.upm.vive.openxr/Runtime/Toolkits/Future/FutureTask.cs new file mode 100644 index 0000000..6555755 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Toolkits/Future/FutureTask.cs @@ -0,0 +1,390 @@ +// Copyright HTC Corporation All Rights Reserved. +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading; +using System.Threading.Tasks; +using VIVE.OpenXR.Feature; +using static VIVE.OpenXR.Feature.FutureWrapper; + +namespace VIVE.OpenXR.Toolkits +{ + /// + /// FutureTask is not a C# Task. It is a wrapper for OpenXR Future. + /// Each OpenXR Future may have its own FutureTask type because the result and the + /// complete function are different. + /// However the poll and complete are common. This class use c# Task to poll the future. + /// You can if you do not want to wait for the result. + /// However Cancel should be called before the Complete. + /// When is true, call to complete the future and get the result. + /// + /// You can customize the type depending on the complete's result. + public class FutureTask : IDisposable + { + private Task<(XrResult, XrFutureStateEXT)> pollTask; + private Task autoCompleteTask; + + Func completeFunc; + private CancellationTokenSource cts; + private IntPtr future; + bool autoComplete = false; + private int pollIntervalMS = 10; + + /// + /// Set poll inverval in milliseconds. The value will be clamped between 1 and 2000. + /// + public int PollIntervalMS { + get => pollIntervalMS; + set => pollIntervalMS = Math.Clamp(value, 1, 2000); + } + + public bool IsAutoComplete => autoComplete; + + bool isCompleted = false; + public bool IsCompleted => isCompleted; + + public bool Debug { get; set; } = false; + + /// + /// The FutureTask is used to poll and complete the future. + /// Once the FutureTask is create, poll will start running in the period of pollIntervalMS. + /// if auto complete is set, the future will be do completed once user check IsPollCompleted and IsCompleted. + /// I prefered to use non-autoComplete. + /// If no auto complete, you can cancel the task and no need to free resouce. + /// Once it completed, you need handle the result to avoid leakage. + /// + /// + /// + /// Set poll inverval in milliseconds. The value will be clamped between 1 and 2000. + /// If true, do Complete when check IsPollCompleted and IsCompleted + public FutureTask(IntPtr future, Func completeFunc, int pollIntervalMS = 10, bool autoComplete = false) + { + cts = new CancellationTokenSource(); + this.completeFunc = completeFunc; + this.future = future; + this.pollIntervalMS = Math.Clamp(pollIntervalMS, 1, 2000); + + // User may get PollTask and run. So, we need to make sure the pollTask is created. + pollTask = MakePollTask(this, cts.Token); + + // will set autoComplete true in AutoComplete. + this.autoComplete = false; + if (autoComplete) + AutoComplete(); + } + + /// + /// AutoComplete will complete the future once the poll task is ready and success. + /// If you want to handle error, you should not use AutoComplete. + /// + public void AutoComplete() + { + if (autoComplete) + return; + autoComplete = true; + autoCompleteTask = pollTask.ContinueWith(task => + { + // If the task is cancelled or faulted, we do not need to complete the future. + if (task.IsCanceled || task.IsFaulted) + { + isCompleted = true; + return; + } + + var result = task.Result; + + // Make sure call Complete only if poll task is ready and success. + if (result.Item1 == XrResult.XR_SUCCESS) + { + if (result.Item2 == XrFutureStateEXT.Ready) + { + Complete(); + } + } + isCompleted = true; + }); + } + + /// + /// Used for create FromResult if you need return the result immediately. + /// + /// + /// + FutureTask(Task<(XrResult, XrFutureStateEXT)> pollTask, Func completeFunc) + { + this.pollTask = pollTask; + this.completeFunc = completeFunc; + this.future = IntPtr.Zero; + } + + public Task<(XrResult, XrFutureStateEXT)> PollTask => pollTask; + + /// + /// If AutoComplete is set, the task will be created. Otherwise, it will be null. + /// + public Task AutoCompleteTask => autoCompleteTask; + + public bool IsPollCompleted => pollTask.IsCompleted; + + public XrResult PollResult => pollTask.Result.Item1; + + public IntPtr Future => future; + + /// + /// Cancel the future. If the future is not completed yet, it will be cancelled. Otherwise, nothing will happen. + /// + public void Cancel() + { + if (!isCompleted) + { + cts?.Cancel(); + FutureWrapper.Instance?.CancelFuture(future); + } + future = IntPtr.Zero; + } + + /// + /// Make sure do Complete after IsPollCompleted. If the future is not poll completed yet, throw exception. + /// + /// The result of the completeFunc. + /// Thrown when the pollTask is not completed yet. + public TResult Complete() + { + if (isCompleted) + return result; + if (pollTask.IsCompleted) + { + if (this.Debug) + UnityEngine.Debug.Log("FutureTask is completed."); + isCompleted = true; + if (pollTask.Result.Item1 == XrResult.XR_SUCCESS) + { + result = completeFunc(future); + isCompleted = true; + return result; + } + if (this.Debug) + UnityEngine.Debug.Log("FutureTask is completed with error. Check if pollTask result error."); + return default; + } + else + { + throw new Exception("FutureTask is not completed yet."); + } + } + + /// + /// Wait until poll task is completed. If the task is not completed, it will block the thread. + /// If AutoComplete is set, wait until the complete task is completed. + /// + public void Wait() + { + pollTask.Wait(); + if (autoComplete) + autoCompleteTask.Wait(); + } + + TResult result; + private bool disposedValue; + + /// + /// This Result did not block the thread. If not completed, it will return undefined value. Make sure you call it when Complete is done. + /// + public TResult Result => result; + + public static FutureTask FromResult(TResult result) + { + return new FutureTask(Task.FromResult((XrResult.XR_SUCCESS, XrFutureStateEXT.Ready)), (future) => result); + } + + /// + /// Poll until the future is ready. Caceled if the cts is cancelled. But the future will not be cancelled. + /// + /// + /// + /// + /// + static async Task<(XrResult, XrFutureStateEXT)> MakePollTask(FutureTask futureTask, CancellationToken ct) + { + XrFuturePollInfoEXT pollInfo = new XrFuturePollInfoEXT() + { + type = XrStructureType.XR_TYPE_FUTURE_POLL_INFO_EXT, + next = IntPtr.Zero, + future = futureTask.Future + }; + do + { + ct.ThrowIfCancellationRequested(); + + XrResult ret = FutureWrapper.Instance.PollFuture(ref pollInfo, out FutureWrapper.XrFuturePollResultEXT pollResult); + if (ret == XrResult.XR_SUCCESS) + { + if (pollResult.state == XrFutureStateEXT.Ready) + { + if (futureTask.Debug) + UnityEngine.Debug.Log("Future is ready."); + return (XrResult.XR_SUCCESS, pollResult.state); + } + else if (pollResult.state == XrFutureStateEXT.Pending) + { + if (futureTask.Debug) + UnityEngine.Debug.Log("Wait for future."); + await Task.Delay(futureTask.pollIntervalMS); + continue; + } + } + else + { + return (ret, XrFutureStateEXT.None); + } + } while (true); + } + + protected virtual void Dispose(bool disposing) + { + if (!disposedValue) + { + if (disposing) + { + pollTask?.Dispose(); + pollTask = null; + autoCompleteTask?.Dispose(); + autoCompleteTask = null; + cts?.Dispose(); + cts = null; + } + + if (future != IntPtr.Zero && !isCompleted) + FutureWrapper.Instance?.CancelFuture(future); + future = IntPtr.Zero; + disposedValue = true; + } + } + + public void Dispose() + { + // Do not change this code. Put cleanup code in 'Dispose(bool disposing)' method + Dispose(disposing: true); + GC.SuppressFinalize(this); + } + } + + /// + /// Help to manage the future task. Tasks are name less. In order to manager tasks, + /// additonal information are required. And this class is used to store those information. + /// Helps to retrive the task by the identity, or retrive the identity by the task. + /// + /// What the task work for. How to identify this task. + /// The task's output type, for example, XrResult or Tuple. + public class FutureTaskManager : IDisposable + { + readonly List<(Identity, FutureTask)> tasks = new List<(Identity, FutureTask)>(); + private bool disposedValue; + + public FutureTaskManager() { } + + public FutureTask GetTask(Identity identity) + { + return tasks.FirstOrDefault(x => x.Item1.Equals(identity)).Item2; + } + + /// + /// Add a task to the manager. + /// + /// + /// + public void AddTask(Identity identity, FutureTask task) + { + tasks.Add((identity, task)); + } + + /// + /// Remove keeped task and cancel it If task is not completed. + /// + /// + public void RemoveTask(Identity identity) + { + var task = tasks.FirstOrDefault(x => x.Item1.Equals(identity)); + if (task.Item2 != null) + { + task.Item2.Cancel(); + task.Item2.Dispose(); + } + tasks.Remove(task); + } + + /// + /// Remove keeped task and cancel it If task is not completed. + /// + /// + public void RemoveTask(FutureTask task) + { + var t = tasks.FirstOrDefault(x => x.Item2 == task); + if (t.Item2 != null) + { + t.Item2.Cancel(); + t.Item2.Dispose(); + } + tasks.Remove(t); + } + + /// + /// Get all tasks's list. + /// + /// + public List<(Identity, FutureTask)> GetTasks() + { + return tasks; + } + + /// + /// Check if has any task. + /// + /// + public bool IsEmpty() + { + return tasks.Count == 0; + } + + /// + /// Clear all tasks and cancel them. If tasks are auto completed, make sure their results handled. + /// Otherwise, the resource will be leaked. + /// + /// + public void Clear(bool cancelTask = true) + { + if (cancelTask) + { + foreach (var task in tasks) + { + if (task.Item2 != null) + { + task.Item2.Cancel(); + task.Item2.Dispose(); + } + } + } + tasks.Clear(); + } + + protected virtual void Dispose(bool disposing) + { + if (!disposedValue) + { + if (disposing) + { + Clear(); + } + + disposedValue = true; + } + } + + public void Dispose() + { + // Do not change this code. Put cleanup code in 'Dispose(bool disposing)' method + Dispose(disposing: true); + GC.SuppressFinalize(this); + } + } +} diff --git a/com.htc.upm.vive.openxr/Runtime/Toolkits/Future/FutureTask.cs.meta b/com.htc.upm.vive.openxr/Runtime/Toolkits/Future/FutureTask.cs.meta new file mode 100644 index 0000000..e6ef74c --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Toolkits/Future/FutureTask.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f234725d9eefc7540843fd691e94553a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Toolkits/Passthrough.meta b/com.htc.upm.vive.openxr/Runtime/Toolkits/Passthrough.meta new file mode 100644 index 0000000..36bd9d0 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Toolkits/Passthrough.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 10e073adb659279408a85f7b31ed9d91 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Toolkits/Passthrough/PassthroughAPI.cs b/com.htc.upm.vive.openxr/Runtime/Toolkits/Passthrough/PassthroughAPI.cs new file mode 100644 index 0000000..b4aa10f --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Toolkits/Passthrough/PassthroughAPI.cs @@ -0,0 +1,783 @@ +// Copyright HTC Corporation All Rights Reserved. + +using System; +using System.Collections.Generic; +using System.Runtime.InteropServices; +using UnityEngine; +using UnityEngine.XR.OpenXR; +using System.Threading.Tasks; +using VIVE.OpenXR; + +namespace VIVE.OpenXR.Passthrough +{ + public static class PassthroughAPI + { + #region LOG + const string LOG_TAG = "VIVE.OpenXR.Passthrough.PassthroughAPI"; + static void DEBUG(string msg) { Debug.LogFormat("{0} {1}", LOG_TAG, msg); } + static void WARNING(string msg) { Debug.LogWarningFormat("{0} {1}", LOG_TAG, msg); } + static void ERROR(string msg) { Debug.LogErrorFormat("{0} {1}", LOG_TAG, msg); } + #endregion + + private static VivePassthrough passthroughFeature = null; + private static bool AssertFeature() + { + if (passthroughFeature == null) { passthroughFeature = OpenXRSettings.Instance.GetFeature(); } + if (passthroughFeature) { return true; } + return false; + } + +#if UNITY_STANDALONE + private static Dictionary passthrough2Layer = new Dictionary(); + private static Dictionary passthrough2LayerPtr = new Dictionary(); + private static Dictionary passthrough2IsUnderLay= new Dictionary(); + private static Dictionary passthrough2meshTransform = new Dictionary(); + private static Dictionary passthrough2meshTransformInfoPtr = new Dictionary(); +#endif + + #region Public APIs + /// + /// Creates a fullscreen passthrough. + /// Passthroughs will be destroyed automatically when the current is destroyed. + /// + /// The created + /// The specifies whether the passthrough is an overlay or underlay. + /// A delegate will be invoked when the current OpenXR Session is going to be destroyed. + /// The alpha value of the passthrough layer within the range [0, 1] where 1 (Opaque) is default. + /// The composition depth relative to other composition layers if present where 0 is default. + /// XR_SUCCESS for success. + public static XrResult CreatePlanarPassthrough(out XrPassthroughHTC passthrough, CompositionLayer.LayerType layerType, VivePassthrough.OnPassthroughSessionDestroyDelegate onDestroyPassthroughSessionHandler = null, float alpha = 1f, uint compositionDepth = 0) + { + passthrough = 0; + XrResult res = XrResult.XR_ERROR_RUNTIME_FAILURE; + + if (!AssertFeature()) + { + ERROR("HTC_Passthrough feature instance not found."); + return res; + } + XrPassthroughCreateInfoHTC createInfo = new XrPassthroughCreateInfoHTC( + XrStructureType.XR_TYPE_PASSTHROUGH_CREATE_INFO_HTC, + new IntPtr(6), //Enter IntPtr(0) for backward compatibility (using createPassthrough to enable the passthrough feature), or enter IntPtr(6) to enable the passthrough feature based on the layer submitted to endframe. + XrPassthroughFormHTC.XR_PASSTHROUGH_FORM_PLANAR_HTC + ); + +#if UNITY_ANDROID + res = passthroughFeature.CreatePassthroughHTC(createInfo, out passthrough, layerType, compositionDepth, onDestroyPassthroughSessionHandler); + DEBUG("CreatePlanarPassthrough() CreatePassthroughHTC result: " + res + ", passthrough: " + passthrough); +#endif +#if UNITY_STANDALONE + res = XR_HTC_passthrough.xrCreatePassthroughHTC(createInfo, out passthrough); + if(res == XrResult.XR_SUCCESS) + { + XrPassthroughColorHTC passthroughColor = new XrPassthroughColorHTC( + in_type: XrStructureType.XR_TYPE_PASSTHROUGH_COLOR_HTC, + in_next: IntPtr.Zero, + in_alpha: alpha); + XrCompositionLayerPassthroughHTC compositionLayerPassthrough = new XrCompositionLayerPassthroughHTC( + in_type: XrStructureType.XR_TYPE_COMPOSITION_LAYER_PASSTHROUGH_HTC, + in_next: IntPtr.Zero, + in_layerFlags: (UInt64)XrCompositionLayerFlagBits.XR_COMPOSITION_LAYER_UNPREMULTIPLIED_ALPHA_BIT, + in_space: 0, + in_passthrough: passthrough, + in_color: passthroughColor); + passthrough2Layer.Add(passthrough, compositionLayerPassthrough); + IntPtr layerPtr = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(XrCompositionLayerPassthroughHTC))); + passthrough2LayerPtr.Add(passthrough, layerPtr); + if (layerType == CompositionLayer.LayerType.Underlay) + passthrough2IsUnderLay.Add(passthrough, true); + if (layerType == CompositionLayer.LayerType.Overlay) + passthrough2IsUnderLay.Add(passthrough, false); + } +#endif + if (res == XrResult.XR_SUCCESS) + { + SetPassthroughAlpha(passthrough, alpha); + } + return res; + } + + /// + /// Creates a projected passthrough (i.e. Passthrough is only partially visible). Visible region of the projected passthrough is determined by the mesh and its transform. + /// Passthroughs will be destroyed automatically when the current is destroyed. + /// + /// The created + /// The specifies whether the passthrough is an overlay or underlay. + /// Positions of the vertices in the mesh. + /// List of triangles represented by indices into the . + /// The projected passthrough's + /// Position of the mesh. + /// Orientation of the mesh. + /// Scale of the mesh. + /// A delegate will be invoked when the current OpenXR Session is going to be destroyed. + /// The alpha value of the passthrough layer within the range [0, 1] where 1 (Opaque) is default. + /// The composition depth relative to other composition layers if present where 0 is default. + /// Specify whether or not the position and rotation of the mesh transform have to be converted from tracking space to world space. + /// Specify whether or not the parameters , , and have to be converted to OpenXR coordinate. + /// XR_SUCCESS for success. + public static XrResult CreateProjectedPassthrough(out XrPassthroughHTC passthrough, CompositionLayer.LayerType layerType, + [In, Out] Vector3[] vertexBuffer, [In, Out] int[] indexBuffer, //For Mesh + ProjectedPassthroughSpaceType spaceType, Vector3 meshPosition, Quaternion meshOrientation, Vector3 meshScale, //For Mesh Transform + VivePassthrough.OnPassthroughSessionDestroyDelegate onDestroyPassthroughSessionHandler = null, + float alpha = 1f, uint compositionDepth = 0, bool trackingToWorldSpace = true, bool convertFromUnityToOpenXR = true) + { + passthrough = 0; + XrResult res = XrResult.XR_ERROR_RUNTIME_FAILURE; + + if (!AssertFeature()) + { + ERROR("HTC_Passthrough feature instance not found."); + return res; + } + + if (vertexBuffer.Length < 3 || indexBuffer.Length % 3 != 0) //Must have at least 3 vertices and complete triangles + { + ERROR("Mesh data invalid."); + return res; + } + + XrPassthroughCreateInfoHTC createInfo = new XrPassthroughCreateInfoHTC( + XrStructureType.XR_TYPE_PASSTHROUGH_CREATE_INFO_HTC, + new IntPtr(6), //Enter IntPtr(0) for backward compatibility (using createPassthrough to enable the passthrough feature), or enter IntPtr(6) to enable the passthrough feature based on the layer submitted to endframe. + XrPassthroughFormHTC.XR_PASSTHROUGH_FORM_PROJECTED_HTC + ); + +#if UNITY_STANDALONE + res = XR_HTC_passthrough.xrCreatePassthroughHTC(createInfo, out passthrough); + if (res == XrResult.XR_SUCCESS) + { + XrPassthroughMeshTransformInfoHTC PassthroughMeshTransformInfo = new XrPassthroughMeshTransformInfoHTC( + in_type: XrStructureType.XR_TYPE_PASSTHROUGH_MESH_TRANSFORM_INFO_HTC, + in_next: IntPtr.Zero, + in_vertexCount: 0, + in_vertices: new XrVector3f[0], + in_indexCount: 0, + in_indices: new UInt32[0], + in_baseSpace: XR_HTC_passthrough.Interop.GetTrackingSpace(), + in_time: XR_HTC_passthrough.Interop.GetFrameState().predictedDisplayTime, + in_pose: new XrPosef(), + in_scale: new XrVector3f() + ); + IntPtr meshTransformInfoPtr = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(XrPassthroughMeshTransformInfoHTC))); + Marshal.StructureToPtr(PassthroughMeshTransformInfo, meshTransformInfoPtr, false); + XrPassthroughColorHTC passthroughColor = new XrPassthroughColorHTC( + in_type: XrStructureType.XR_TYPE_PASSTHROUGH_COLOR_HTC, + in_next: IntPtr.Zero, + in_alpha: alpha); + XrCompositionLayerPassthroughHTC compositionLayerPassthrough = new XrCompositionLayerPassthroughHTC( + in_type: XrStructureType.XR_TYPE_COMPOSITION_LAYER_PASSTHROUGH_HTC, + in_next: meshTransformInfoPtr, + in_layerFlags: (UInt64)XrCompositionLayerFlagBits.XR_COMPOSITION_LAYER_UNPREMULTIPLIED_ALPHA_BIT, + in_space: 0, + in_passthrough: passthrough, + in_color: passthroughColor); + passthrough2meshTransform.Add(passthrough, PassthroughMeshTransformInfo); + passthrough2meshTransformInfoPtr.Add(passthrough, meshTransformInfoPtr); + passthrough2Layer.Add(passthrough, compositionLayerPassthrough); + IntPtr layerPtr = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(XrCompositionLayerPassthroughHTC))); + passthrough2LayerPtr.Add(passthrough, layerPtr); + if (layerType == CompositionLayer.LayerType.Underlay) + passthrough2IsUnderLay.Add(passthrough, true); + if (layerType == CompositionLayer.LayerType.Overlay) + passthrough2IsUnderLay.Add(passthrough, false); + } +#endif +#if UNITY_ANDROID + res = passthroughFeature.CreatePassthroughHTC(createInfo, out passthrough, layerType, compositionDepth, onDestroyPassthroughSessionHandler); + DEBUG("CreateProjectedPassthrough() CreatePassthroughHTC result: " + res + ", passthrough: " + passthrough); +#endif + if (res == XrResult.XR_SUCCESS) + { + SetPassthroughAlpha(passthrough, alpha); + SetProjectedPassthroughMesh(passthrough, vertexBuffer, indexBuffer, convertFromUnityToOpenXR); + SetProjectedPassthroughMeshTransform(passthrough, spaceType, meshPosition, meshOrientation, meshScale, trackingToWorldSpace, convertFromUnityToOpenXR); + } + + return res; + } + + /// + /// Creates a projected passthrough (i.e. Passthrough is only partially visible). Visible region of the projected passthrough is determined by the mesh and its transform. + /// Passthroughs will be destroyed automatically when the current is destroyed. + /// + /// The created + /// The specifies whether the passthrough is an overlay or underlay. + /// A delegate will be invoked when the current OpenXR Session is going to be destroyed. + /// The alpha value of the passthrough layer within the range [0, 1] where 1 (Opaque) is default. + /// The composition depth relative to other composition layers if present where 0 is default. + /// XR_SUCCESS for success. + public static XrResult CreateProjectedPassthrough(out XrPassthroughHTC passthrough, CompositionLayer.LayerType layerType, VivePassthrough.OnPassthroughSessionDestroyDelegate onDestroyPassthroughSessionHandler = null, float alpha = 1f, uint compositionDepth = 0) + { + passthrough = 0; + XrResult res = XrResult.XR_ERROR_RUNTIME_FAILURE; + + if (!AssertFeature()) + { + ERROR("HTC_Passthrough feature instance not found."); + return res; + } + + XrPassthroughCreateInfoHTC createInfo = new XrPassthroughCreateInfoHTC( + XrStructureType.XR_TYPE_PASSTHROUGH_CREATE_INFO_HTC, + new IntPtr(6), //Enter IntPtr(0) for backward compatibility (using createPassthrough to enable the passthrough feature), or enter IntPtr(6) to enable the passthrough feature based on the layer submitted to endframe. + XrPassthroughFormHTC.XR_PASSTHROUGH_FORM_PROJECTED_HTC + ); + +#if UNITY_STANDALONE + res = XR_HTC_passthrough.xrCreatePassthroughHTC(createInfo, out passthrough); + if (res == XrResult.XR_SUCCESS) + { + XrPassthroughMeshTransformInfoHTC PassthroughMeshTransformInfo = new XrPassthroughMeshTransformInfoHTC( + in_type: XrStructureType.XR_TYPE_PASSTHROUGH_MESH_TRANSFORM_INFO_HTC, + in_next: IntPtr.Zero, + in_vertexCount: 0, + in_vertices: new XrVector3f[0], + in_indexCount: 0, + in_indices: new UInt32[0], + in_baseSpace: XR_HTC_passthrough.Interop.GetTrackingSpace(), + in_time: XR_HTC_passthrough.Interop.GetFrameState().predictedDisplayTime, + in_pose: new XrPosef(), + in_scale: new XrVector3f() + ); + IntPtr meshTransformInfoPtr = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(XrPassthroughMeshTransformInfoHTC))); + Marshal.StructureToPtr(PassthroughMeshTransformInfo, meshTransformInfoPtr, false); + XrPassthroughColorHTC passthroughColor = new XrPassthroughColorHTC( + in_type: XrStructureType.XR_TYPE_PASSTHROUGH_COLOR_HTC, + in_next: IntPtr.Zero, + in_alpha: alpha); + XrCompositionLayerPassthroughHTC compositionLayerPassthrough = new XrCompositionLayerPassthroughHTC( + in_type: XrStructureType.XR_TYPE_COMPOSITION_LAYER_PASSTHROUGH_HTC, + in_next: meshTransformInfoPtr, + in_layerFlags: (UInt64)XrCompositionLayerFlagBits.XR_COMPOSITION_LAYER_UNPREMULTIPLIED_ALPHA_BIT, + in_space: 0, + in_passthrough: passthrough, + in_color: passthroughColor); + passthrough2meshTransform.Add(passthrough, PassthroughMeshTransformInfo); + passthrough2meshTransformInfoPtr.Add(passthrough, meshTransformInfoPtr); + passthrough2Layer.Add(passthrough, compositionLayerPassthrough); + IntPtr layerPtr = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(XrCompositionLayerPassthroughHTC))); + passthrough2LayerPtr.Add(passthrough, layerPtr); + if (layerType == CompositionLayer.LayerType.Underlay) + passthrough2IsUnderLay.Add(passthrough, true); + if (layerType == CompositionLayer.LayerType.Overlay) + passthrough2IsUnderLay.Add(passthrough, false); + } +#endif +#if UNITY_ANDROID + res = passthroughFeature.CreatePassthroughHTC(createInfo, out passthrough, layerType, onDestroyPassthroughSessionHandler); + DEBUG("CreateProjectedPassthrough() CreatePassthroughHTC result: " + res + ", passthrough: " + passthrough); +#endif + if (res == XrResult.XR_SUCCESS) + { + SetPassthroughAlpha(passthrough, alpha); + } + + return res; + } + +#if UNITY_STANDALONE + private static async void SubmitLayer() + { + await Task.Run(() => { + int layerListCount = 0; + while(layerListCount == 0) + { + System.Threading.Thread.Sleep(1); + XR_HTC_passthrough.Interop.GetOriginEndFrameLayerList(out List layerList);//GetOriginEndFrameLayers + layerListCount = layerList.Count; + foreach (var passthrough in passthrough2IsUnderLay.Keys) + { + //Get and submit layer list + if (layerListCount != 0) + { + Marshal.StructureToPtr(passthrough2Layer[passthrough], passthrough2LayerPtr[passthrough], false); + if (passthrough2IsUnderLay[passthrough]) + layerList.Insert(0, passthrough2LayerPtr[passthrough]); + else + layerList.Insert(1, passthrough2LayerPtr[passthrough]); + } + } + if(layerListCount != 0) + XR_HTC_passthrough.Interop.SubmitLayers(layerList); + } + }); + + } +#endif + + /// + /// To Destroying a passthrough. + /// You should call this function when the delegate is invoked. + /// + /// The created + /// XR_SUCCESS for success. + public static XrResult DestroyPassthrough(XrPassthroughHTC passthrough) + { + XrResult res = XrResult.XR_ERROR_RUNTIME_FAILURE; + + if (!AssertFeature()) + { + ERROR("HTC_Passthrough feature instance not found."); + return res; + } + if (!passthroughFeature.PassthroughList.Contains(passthrough)) + { + ERROR("Passthrough to be destroyed not found"); + return res; + } + +#if UNITY_STANDALONE + XrPassthroughHTC pt = passthrough2Layer[passthrough].passthrough; + XR_HTC_passthrough.xrDestroyPassthroughHTC(pt); + passthrough2IsUnderLay.Remove(passthrough); + SubmitLayer(); + passthrough2Layer.Remove(pt); + if(passthrough2LayerPtr.ContainsKey(passthrough)) Marshal.FreeHGlobal(passthrough2LayerPtr[passthrough]); + passthrough2LayerPtr.Remove(passthrough); + if(passthrough2meshTransformInfoPtr.ContainsKey(passthrough)) Marshal.FreeHGlobal(passthrough2meshTransformInfoPtr[passthrough]); + passthrough2meshTransformInfoPtr.Remove(passthrough); + passthrough2meshTransform.Remove(passthrough); + + res = XrResult.XR_SUCCESS; +#elif UNITY_ANDROID + res = passthroughFeature.DestroyPassthroughHTC(passthrough); + DEBUG("DestroyPassthrough() DestroyPassthroughHTC result: " + res + ", passthrough: " + passthrough); +#endif + return res; + } + + /// + /// Modifies the opacity of a specific passthrough layer. + /// Can be used for both Planar and Projected passthroughs. + /// + /// The created + /// The alpha value of the passthrough layer within the range [0, 1] where 1 (Opaque) is default. + /// + /// Specify whether out of range alpha values should be clamped automatically. + /// When set to true, the function will clamp and apply the alpha value automatically. + /// When set to false, the function will return false if the alpha is out of range. + /// Default is true. + /// + /// XR_SUCCESS for success. + public static bool SetPassthroughAlpha(XrPassthroughHTC passthrough, float alpha, bool autoClamp = true) + { + bool ret = false; + if (!AssertFeature()) + { + ERROR("HTC_Passthrough feature instance not found."); + return ret; + } + +#if UNITY_ANDROID + if (autoClamp) + { + ret = passthroughFeature.SetAlpha(passthrough, Mathf.Clamp01(alpha)); + } + else + { + if (alpha < 0f || alpha > 1f) + { + ERROR("SetPassthroughAlpha: Alpha out of range"); + return ret; + } + + ret = passthroughFeature.SetAlpha(passthrough, alpha); + } + DEBUG("SetPassthroughAlpha() SetAlpha result: " + ret + ", passthrough: " + passthrough); +#endif + +#if UNITY_STANDALONE + if (passthrough2Layer.ContainsKey(passthrough)) + { + XrCompositionLayerPassthroughHTC layer = passthrough2Layer[passthrough]; + layer.color.alpha = alpha; + passthrough2Layer[passthrough] = layer; + SubmitLayer(); + ret = true; + } + else + ret = false; +#endif + return ret; + } + + /// + /// Modifies the mesh data of a projected passthrough layer. + /// + /// The created + /// Positions of the vertices in the mesh. + /// List of triangles represented by indices into the . + /// Specify whether or not the parameters , , and have to be converted to OpenXR coordinate. + /// XR_SUCCESS for success. + public static bool SetProjectedPassthroughMesh(XrPassthroughHTC passthrough, [In, Out] Vector3[] vertexBuffer, [In, Out] int[] indexBuffer, bool convertFromUnityToOpenXR = true) + { + bool ret = false; + + if (!AssertFeature()) + { + ERROR("HTC_Passthrough feature instance not found."); + return ret; + } + + if (vertexBuffer.Length < 3 || indexBuffer.Length % 3 != 0) //Must have at least 3 vertices and complete triangles + { + ERROR("Mesh data invalid."); + return ret; + } + + XrVector3f[] vertexBufferXrVector = new XrVector3f[vertexBuffer.Length]; + + for (int i = 0; i < vertexBuffer.Length; i++) + { + vertexBufferXrVector[i] = OpenXRHelper.ToOpenXRVector(vertexBuffer[i], convertFromUnityToOpenXR); + } + + uint[] indexBufferUint = new uint[indexBuffer.Length]; + + for (int i = 0; i < indexBuffer.Length; i++) + { + indexBufferUint[i] = (uint)indexBuffer[i]; + } + +#if UNITY_STANDALONE + if (passthrough2meshTransformInfoPtr.ContainsKey(passthrough)) + { + XrPassthroughMeshTransformInfoHTC MeshTransformInfo = passthrough2meshTransform[passthrough]; + MeshTransformInfo.vertexCount = (uint)vertexBuffer.Length; + MeshTransformInfo.vertices = vertexBufferXrVector; + MeshTransformInfo.indexCount = (uint)indexBuffer.Length; + MeshTransformInfo.indices = indexBufferUint; + passthrough2meshTransform[passthrough] = MeshTransformInfo; + Marshal.StructureToPtr(MeshTransformInfo, passthrough2meshTransformInfoPtr[passthrough], false); + XrCompositionLayerPassthroughHTC layer = passthrough2Layer[passthrough]; + layer.next = passthrough2meshTransformInfoPtr[passthrough]; + passthrough2Layer[passthrough] = layer; + SubmitLayer(); + ret = true; + } + else + ret = false; +#endif + //Note: Ignore Clock-Wise definition of index buffer for now as passthrough extension does not have back-face culling +#if UNITY_ANDROID + ret = passthroughFeature.SetMesh(passthrough, (uint)vertexBuffer.Length, vertexBufferXrVector, (uint)indexBuffer.Length, indexBufferUint); ; + DEBUG("SetProjectedPassthroughMesh() SetMesh result: " + ret + ", passthrough: " + passthrough); +#endif + return ret; + } + + /// + /// Modifies the mesh transform of a projected passthrough layer. + /// + /// The created + /// The projected passthrough's + /// Position of the mesh. + /// Orientation of the mesh. + /// Scale of the mesh. + /// Specify whether or not the position and rotation of the mesh transform have to be converted from tracking space to world space. + /// Specify whether or not the parameters , , and have to be converted to OpenXR coordinate. + /// XR_SUCCESS for success. + public static bool SetProjectedPassthroughMeshTransform(XrPassthroughHTC passthrough, ProjectedPassthroughSpaceType spaceType, Vector3 meshPosition, Quaternion meshOrientation, Vector3 meshScale, bool trackingToWorldSpace = true, bool convertFromUnityToOpenXR = true) + { + bool ret = false; + + if (!AssertFeature()) + { + ERROR("HTC_Passthrough feature instance not found."); + return ret; + } + + Vector3 trackingSpaceMeshPosition = meshPosition; + Quaternion trackingSpaceMeshRotation = meshOrientation; + TrackingSpaceOrigin currentTrackingSpaceOrigin = TrackingSpaceOrigin.Instance; + + if (currentTrackingSpaceOrigin != null && trackingToWorldSpace) //Apply origin correction to the mesh pose + { + Matrix4x4 trackingSpaceOriginTRS = Matrix4x4.TRS(currentTrackingSpaceOrigin.transform.position, currentTrackingSpaceOrigin.transform.rotation, Vector3.one); + Matrix4x4 worldSpaceLayerPoseTRS = Matrix4x4.TRS(meshPosition, meshOrientation, Vector3.one); + + Matrix4x4 trackingSpaceLayerPoseTRS = trackingSpaceOriginTRS.inverse * worldSpaceLayerPoseTRS; + + trackingSpaceMeshPosition = trackingSpaceLayerPoseTRS.GetColumn(3); //4th Column of TRS Matrix is the position + trackingSpaceMeshRotation = Quaternion.LookRotation(trackingSpaceLayerPoseTRS.GetColumn(2), trackingSpaceLayerPoseTRS.GetColumn(1)); + } + + XrPosef meshXrPose; + meshXrPose.position = OpenXRHelper.ToOpenXRVector(trackingSpaceMeshPosition, convertFromUnityToOpenXR); + meshXrPose.orientation = OpenXRHelper.ToOpenXRQuaternion(trackingSpaceMeshRotation, convertFromUnityToOpenXR); + + XrVector3f meshXrScale = OpenXRHelper.ToOpenXRVector(meshScale, false); + +#if UNITY_STANDALONE + if (passthrough2meshTransformInfoPtr.ContainsKey(passthrough)) + { + XrPassthroughMeshTransformInfoHTC MeshTransformInfo = passthrough2meshTransform[passthrough]; + MeshTransformInfo.pose = meshXrPose; + MeshTransformInfo.scale = meshXrScale; + passthrough2meshTransform[passthrough] = MeshTransformInfo; + Marshal.StructureToPtr(MeshTransformInfo, passthrough2meshTransformInfoPtr[passthrough], false); + XrCompositionLayerPassthroughHTC layer = passthrough2Layer[passthrough]; + layer.next = passthrough2meshTransformInfoPtr[passthrough]; + passthrough2Layer[passthrough] = layer; + SubmitLayer(); + ret = true; + } + else + ret = false; +#endif + +#if UNITY_ANDROID + ret = passthroughFeature.SetMeshTransform(passthrough, passthroughFeature.GetXrSpaceFromSpaceType(spaceType), meshXrPose, meshXrScale); + DEBUG("SetProjectedPassthroughMeshTransform() SetMeshTransform result: " + ret + ", passthrough: " + passthrough); +#endif + return ret; + } + + /// + /// Modifies layer type and composition depth of a passthrough layer. + /// + /// The created + /// The specifies whether the passthrough is an overlay or underlay. + /// The composition depth relative to other composition layers if present where 0 is default. + /// XR_SUCCESS for success. + public static bool SetPassthroughLayerType(XrPassthroughHTC passthrough, CompositionLayer.LayerType layerType, uint compositionDepth = 0) + { + bool ret = false; + + if (!AssertFeature()) + { + ERROR("HTC_Passthrough feature instance not found."); + return ret; + } + +#if UNITY_STANDALONE + if (passthrough2IsUnderLay.ContainsKey(passthrough)) + { + passthrough2IsUnderLay[passthrough] = layerType == CompositionLayer.LayerType.Underlay ? true : false; + SubmitLayer(); + ret = true; + } + else + ret = false; +#endif + +#if UNITY_ANDROID + ret = passthroughFeature.SetLayerType(passthrough, layerType, compositionDepth); + DEBUG("SetPassthroughLayerType() SetLayerType result: " + ret + ", passthrough: " + passthrough); +#endif + return ret; + } + + /// + /// Modifies the space of a projected passthrough layer. + /// + /// The created + /// The projected passthrough's + /// XR_SUCCESS for success. + public static bool SetProjectedPassthroughSpaceType(XrPassthroughHTC passthrough, ProjectedPassthroughSpaceType spaceType) + { + bool ret = false; + + if (!AssertFeature()) + { + ERROR("HTC_Passthrough feature instance not found."); + return ret; + } + +#if UNITY_STANDALONE + if (passthrough2meshTransformInfoPtr.ContainsKey(passthrough)) + { + XrPassthroughMeshTransformInfoHTC MeshTransformInfo = passthrough2meshTransform[passthrough]; + MeshTransformInfo.baseSpace = passthroughFeature.GetXrSpaceFromSpaceType(spaceType); + passthrough2meshTransform[passthrough] = MeshTransformInfo; + Marshal.StructureToPtr(MeshTransformInfo, passthrough2meshTransformInfoPtr[passthrough], false); + XrCompositionLayerPassthroughHTC layer = passthrough2Layer[passthrough]; + layer.next = passthrough2meshTransformInfoPtr[passthrough]; + passthrough2Layer[passthrough] = layer; + SubmitLayer(); + ret = true; + } + else + ret = false; +#endif + +#if UNITY_ANDROID + ret = passthroughFeature.SetMeshTransformSpace(passthrough, passthroughFeature.GetXrSpaceFromSpaceType(spaceType)); + DEBUG("SetProjectedPassthroughSpaceType() SetMeshTransformSpace result: " + ret + ", passthrough: " + passthrough); +#endif + return ret; + } + + /// + /// Modifies the mesh position of a projected passthrough layer. + /// + /// The created + /// Position of the mesh. + /// Specify whether or not the position and rotation of the mesh transform have to be converted from tracking space to world space. + /// Specify whether or not the parameters , , and have to be converted to OpenXR coordinate. + /// XR_SUCCESS for success. + public static bool SetProjectedPassthroughMeshPosition(XrPassthroughHTC passthrough, Vector3 meshPosition, bool trackingToWorldSpace = true, bool convertFromUnityToOpenXR = true) + { + bool ret = false; + + if (!AssertFeature()) + { + ERROR("HTC_Passthrough feature instance not found."); + return ret; + } + + Vector3 trackingSpaceMeshPosition = meshPosition; + TrackingSpaceOrigin currentTrackingSpaceOrigin = TrackingSpaceOrigin.Instance; + + if (currentTrackingSpaceOrigin != null && trackingToWorldSpace) //Apply origin correction to the mesh pose + { + Matrix4x4 trackingSpaceOriginTRS = Matrix4x4.TRS(currentTrackingSpaceOrigin.transform.position, Quaternion.identity, Vector3.one); + Matrix4x4 worldSpaceLayerPoseTRS = Matrix4x4.TRS(meshPosition, Quaternion.identity, Vector3.one); + + Matrix4x4 trackingSpaceLayerPoseTRS = trackingSpaceOriginTRS.inverse * worldSpaceLayerPoseTRS; + + trackingSpaceMeshPosition = trackingSpaceLayerPoseTRS.GetColumn(3); //4th Column of TRS Matrix is the position + } + +#if UNITY_STANDALONE + if (passthrough2meshTransformInfoPtr.ContainsKey(passthrough)) + { + XrPassthroughMeshTransformInfoHTC MeshTransformInfo = passthrough2meshTransform[passthrough]; + XrPosef meshXrPose = MeshTransformInfo.pose; + meshXrPose.position = OpenXRHelper.ToOpenXRVector(trackingSpaceMeshPosition, convertFromUnityToOpenXR); ; + MeshTransformInfo.pose = meshXrPose; + passthrough2meshTransform[passthrough] = MeshTransformInfo; + Marshal.StructureToPtr(MeshTransformInfo, passthrough2meshTransformInfoPtr[passthrough], false); + XrCompositionLayerPassthroughHTC layer = passthrough2Layer[passthrough]; + layer.next = passthrough2meshTransformInfoPtr[passthrough]; + passthrough2Layer[passthrough] = layer; + SubmitLayer(); + ret = true; + } + else + ret = false; +#endif + +#if UNITY_ANDROID + ret = passthroughFeature.SetMeshTransformPosition(passthrough, OpenXRHelper.ToOpenXRVector(trackingSpaceMeshPosition, convertFromUnityToOpenXR)); + DEBUG("SetProjectedPassthroughMeshPosition() SetMeshTransformPosition result: " + ret + ", passthrough: " + passthrough); +#endif + return ret; + } + + /// + /// Modifies the mesh orientation of a projected passthrough layer. + /// + /// The created + /// Orientation of the mesh. + /// Specify whether or not the position and rotation of the mesh transform have to be converted from tracking space to world space. + /// Specify whether or not the parameters , , and have to be converted to OpenXR coordinate. + /// XR_SUCCESS for success. + public static bool SetProjectedPassthroughMeshOrientation(XrPassthroughHTC passthrough, Quaternion meshOrientation, bool trackingToWorldSpace = true, bool convertFromUnityToOpenXR = true) + { + bool ret = false; + + if (!AssertFeature()) + { + ERROR("HTC_Passthrough feature instance not found."); + return ret; + } + + Quaternion trackingSpaceMeshRotation = meshOrientation; + TrackingSpaceOrigin currentTrackingSpaceOrigin = TrackingSpaceOrigin.Instance; + + if (currentTrackingSpaceOrigin != null && trackingToWorldSpace) //Apply origin correction to the mesh pose + { + Matrix4x4 trackingSpaceOriginTRS = Matrix4x4.TRS(Vector3.zero, currentTrackingSpaceOrigin.transform.rotation, Vector3.one); + Matrix4x4 worldSpaceLayerPoseTRS = Matrix4x4.TRS(Vector3.zero, meshOrientation, Vector3.one); + + Matrix4x4 trackingSpaceLayerPoseTRS = trackingSpaceOriginTRS.inverse * worldSpaceLayerPoseTRS; + + trackingSpaceMeshRotation = Quaternion.LookRotation(trackingSpaceLayerPoseTRS.GetColumn(2), trackingSpaceLayerPoseTRS.GetColumn(1)); + } + +#if UNITY_STANDALONE + if (passthrough2meshTransformInfoPtr.ContainsKey(passthrough)) + { + XrPassthroughMeshTransformInfoHTC MeshTransformInfo = passthrough2meshTransform[passthrough]; + XrPosef meshXrPose = MeshTransformInfo.pose; + meshXrPose.orientation = OpenXRHelper.ToOpenXRQuaternion(trackingSpaceMeshRotation, convertFromUnityToOpenXR); + MeshTransformInfo.pose = meshXrPose; + passthrough2meshTransform[passthrough] = MeshTransformInfo; + Marshal.StructureToPtr(MeshTransformInfo, passthrough2meshTransformInfoPtr[passthrough], false); + XrCompositionLayerPassthroughHTC layer = passthrough2Layer[passthrough]; + layer.next = passthrough2meshTransformInfoPtr[passthrough]; + passthrough2Layer[passthrough] = layer; + SubmitLayer(); + ret = true; + } + else + ret = false; +#endif + +#if UNITY_ANDROID + ret = passthroughFeature.SetMeshTransformOrientation(passthrough, OpenXRHelper.ToOpenXRQuaternion(trackingSpaceMeshRotation, convertFromUnityToOpenXR)); + DEBUG("SetProjectedPassthroughMeshOrientation() SetMeshTransformOrientation result: " + ret + ", passthrough: " + passthrough); +#endif + return ret; + } + + /// + /// Modifies the mesh scale of a passthrough layer. + /// + /// The created + /// Scale of the mesh. + /// XR_SUCCESS for success. + public static bool SetProjectedPassthroughScale(XrPassthroughHTC passthrough, Vector3 meshScale) + { + bool ret = false; + + if (!AssertFeature()) + { + ERROR("HTC_Passthrough feature instance not found."); + return ret; + } + +#if UNITY_STANDALONE + if (passthrough2meshTransformInfoPtr.ContainsKey(passthrough)) + { + XrPassthroughMeshTransformInfoHTC MeshTransformInfo = passthrough2meshTransform[passthrough]; + MeshTransformInfo.scale = OpenXRHelper.ToOpenXRVector(meshScale, false); + passthrough2meshTransform[passthrough] = MeshTransformInfo; + Marshal.StructureToPtr(MeshTransformInfo, passthrough2meshTransformInfoPtr[passthrough], false); + XrCompositionLayerPassthroughHTC layer = passthrough2Layer[passthrough]; + layer.next = passthrough2meshTransformInfoPtr[passthrough]; + passthrough2Layer[passthrough] = layer; + SubmitLayer(); + ret = true; + } + else + ret = false; +#endif + +#if UNITY_ANDROID + ret = passthroughFeature.SetMeshTransformScale(passthrough, OpenXRHelper.ToOpenXRVector(meshScale, false)); + DEBUG("SetProjectedPassthroughScale() SetMeshTransformScale result: " + ret + ", passthrough: " + passthrough); +#endif + return ret; + } + + /// + /// To get the list of IDs of active passthrough layers. + /// + /// + /// The a copy of the list of IDs of active passthrough layers. + /// + public static List GetCurrentPassthroughLayerIDs() + { + if (!AssertFeature()) + { + ERROR("HTC_Passthrough feature instance not found."); + return null; + } + + return passthroughFeature.PassthroughList; + } +#endregion + } +} \ No newline at end of file diff --git a/com.htc.upm.vive.openxr/Runtime/Toolkits/Passthrough/PassthroughAPI.cs.meta b/com.htc.upm.vive.openxr/Runtime/Toolkits/Passthrough/PassthroughAPI.cs.meta new file mode 100644 index 0000000..319e596 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Toolkits/Passthrough/PassthroughAPI.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9bfb5ce0ea49a0a4cb998989754606c0 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Toolkits/PlaneDetection/Scripts/MemoryTools.cs b/com.htc.upm.vive.openxr/Runtime/Toolkits/PlaneDetection/Scripts/MemoryTools.cs deleted file mode 100644 index a5218e4..0000000 --- a/com.htc.upm.vive.openxr/Runtime/Toolkits/PlaneDetection/Scripts/MemoryTools.cs +++ /dev/null @@ -1,51 +0,0 @@ -using System; -using System.Runtime.InteropServices; - -namespace VIVE.OpenXR -{ - public class MemoryTools - { - public static IntPtr ToIntPtr(T[] array) where T : Enum - { - int size = Marshal.SizeOf(typeof(T)) * array.Length; - IntPtr ptr = Marshal.AllocHGlobal(size); - int[] intArray = new int[array.Length]; - for (int i = 0; i < array.Length; i++) - intArray[i] = (int)(object)array[i]; - Marshal.Copy(intArray, 0, ptr, array.Length); - return ptr; - } - - // Make the same size raw buffer from input array. - public static IntPtr MakeRawMemory(T[] refArray) - { - int size = Marshal.SizeOf(typeof(T)) * refArray.Length; - return Marshal.AllocHGlobal(size); - } - - // Make the same size raw buffer from input array. - public static void CopyFromRawMemory(T[] array, IntPtr raw) - { - int step = Marshal.SizeOf(typeof(T)); - for (int i = 0; i < array.Length; i++) - { - array[i] = Marshal.PtrToStructure(IntPtr.Add(raw, i * step)); - } - } - - // Make the same size raw buffer from input array. Make sure the raw has enough size. - public static void CopyToRawMemory(IntPtr raw, T[] array) - { - int step = Marshal.SizeOf(typeof(T)); - for (int i = 0; i < array.Length; i++) - { - Marshal.StructureToPtr(array[i], IntPtr.Add(raw, i * step), false); - } - } - - public static void ReleaseRawMemory(IntPtr ptr) - { - Marshal.FreeHGlobal(ptr); - } - } -} \ No newline at end of file diff --git a/com.htc.upm.vive.openxr/Runtime/Raycast.meta b/com.htc.upm.vive.openxr/Runtime/Toolkits/Raycast.meta similarity index 100% rename from com.htc.upm.vive.openxr/Runtime/Raycast.meta rename to com.htc.upm.vive.openxr/Runtime/Toolkits/Raycast.meta diff --git a/com.htc.upm.vive.openxr/Runtime/Raycast/Resources.meta b/com.htc.upm.vive.openxr/Runtime/Toolkits/Raycast/Resources.meta similarity index 100% rename from com.htc.upm.vive.openxr/Runtime/Raycast/Resources.meta rename to com.htc.upm.vive.openxr/Runtime/Toolkits/Raycast/Resources.meta diff --git a/com.htc.upm.vive.openxr/Runtime/Raycast/Resources/Materials.meta b/com.htc.upm.vive.openxr/Runtime/Toolkits/Raycast/Resources/Materials.meta similarity index 100% rename from com.htc.upm.vive.openxr/Runtime/Raycast/Resources/Materials.meta rename to com.htc.upm.vive.openxr/Runtime/Toolkits/Raycast/Resources/Materials.meta diff --git a/com.htc.upm.vive.openxr/Runtime/Raycast/Resources/Materials/GazePointerDef.mat b/com.htc.upm.vive.openxr/Runtime/Toolkits/Raycast/Resources/Materials/GazePointerDef.mat similarity index 100% rename from com.htc.upm.vive.openxr/Runtime/Raycast/Resources/Materials/GazePointerDef.mat rename to com.htc.upm.vive.openxr/Runtime/Toolkits/Raycast/Resources/Materials/GazePointerDef.mat diff --git a/com.htc.upm.vive.openxr/Runtime/Raycast/Resources/Materials/GazePointerDef.mat.meta b/com.htc.upm.vive.openxr/Runtime/Toolkits/Raycast/Resources/Materials/GazePointerDef.mat.meta similarity index 100% rename from com.htc.upm.vive.openxr/Runtime/Raycast/Resources/Materials/GazePointerDef.mat.meta rename to com.htc.upm.vive.openxr/Runtime/Toolkits/Raycast/Resources/Materials/GazePointerDef.mat.meta diff --git a/com.htc.upm.vive.openxr/Runtime/Raycast/Resources/Shaders.meta b/com.htc.upm.vive.openxr/Runtime/Toolkits/Raycast/Resources/Shaders.meta similarity index 100% rename from com.htc.upm.vive.openxr/Runtime/Raycast/Resources/Shaders.meta rename to com.htc.upm.vive.openxr/Runtime/Toolkits/Raycast/Resources/Shaders.meta diff --git a/com.htc.upm.vive.openxr/Runtime/Raycast/Resources/Shaders/GazePointerDef.shader b/com.htc.upm.vive.openxr/Runtime/Toolkits/Raycast/Resources/Shaders/GazePointerDef.shader similarity index 100% rename from com.htc.upm.vive.openxr/Runtime/Raycast/Resources/Shaders/GazePointerDef.shader rename to com.htc.upm.vive.openxr/Runtime/Toolkits/Raycast/Resources/Shaders/GazePointerDef.shader diff --git a/com.htc.upm.vive.openxr/Runtime/Raycast/Resources/Shaders/GazePointerDef.shader.meta b/com.htc.upm.vive.openxr/Runtime/Toolkits/Raycast/Resources/Shaders/GazePointerDef.shader.meta similarity index 100% rename from com.htc.upm.vive.openxr/Runtime/Raycast/Resources/Shaders/GazePointerDef.shader.meta rename to com.htc.upm.vive.openxr/Runtime/Toolkits/Raycast/Resources/Shaders/GazePointerDef.shader.meta diff --git a/com.htc.upm.vive.openxr/Runtime/Raycast/Scripts.meta b/com.htc.upm.vive.openxr/Runtime/Toolkits/Raycast/Scripts.meta similarity index 100% rename from com.htc.upm.vive.openxr/Runtime/Raycast/Scripts.meta rename to com.htc.upm.vive.openxr/Runtime/Toolkits/Raycast/Scripts.meta diff --git a/com.htc.upm.vive.openxr/Runtime/Raycast/Scripts/CanvasProvider.cs b/com.htc.upm.vive.openxr/Runtime/Toolkits/Raycast/Scripts/CanvasProvider.cs similarity index 100% rename from com.htc.upm.vive.openxr/Runtime/Raycast/Scripts/CanvasProvider.cs rename to com.htc.upm.vive.openxr/Runtime/Toolkits/Raycast/Scripts/CanvasProvider.cs diff --git a/com.htc.upm.vive.openxr/Runtime/Raycast/Scripts/CanvasProvider.cs.meta b/com.htc.upm.vive.openxr/Runtime/Toolkits/Raycast/Scripts/CanvasProvider.cs.meta similarity index 100% rename from com.htc.upm.vive.openxr/Runtime/Raycast/Scripts/CanvasProvider.cs.meta rename to com.htc.upm.vive.openxr/Runtime/Toolkits/Raycast/Scripts/CanvasProvider.cs.meta diff --git a/com.htc.upm.vive.openxr/Runtime/Raycast/Scripts/ControllerRaycastPointer.cs b/com.htc.upm.vive.openxr/Runtime/Toolkits/Raycast/Scripts/ControllerRaycastPointer.cs similarity index 81% rename from com.htc.upm.vive.openxr/Runtime/Raycast/Scripts/ControllerRaycastPointer.cs rename to com.htc.upm.vive.openxr/Runtime/Toolkits/Raycast/Scripts/ControllerRaycastPointer.cs index 7c015e3..e7943e5 100644 --- a/com.htc.upm.vive.openxr/Runtime/Raycast/Scripts/ControllerRaycastPointer.cs +++ b/com.htc.upm.vive.openxr/Runtime/Toolkits/Raycast/Scripts/ControllerRaycastPointer.cs @@ -3,13 +3,14 @@ using UnityEngine; using System.Collections.Generic; using UnityEngine.InputSystem; +using System.Text; namespace VIVE.OpenXR.Raycast { public class ControllerRaycastPointer : RaycastPointer { const string LOG_TAG = "VIVE.OpenXR.Raycast.ControllerRaycastPointer"; - void DEBUG(string msg) { Debug.Log(LOG_TAG + " " + msg); } + void DEBUG(StringBuilder msg) { Debug.LogFormat("{0} {1}", LOG_TAG, msg); } #region Inspector [SerializeField] @@ -56,11 +57,11 @@ namespace VIVE.OpenXR.Raycast { base.Start(); - DEBUG("Start()"); + sb.Clear().Append("Start()"); DEBUG(sb); } private void OnApplicationPause(bool pause) { - DEBUG("OnApplicationPause() " + pause); + sb.Clear().Append("OnApplicationPause() ").Append(pause); DEBUG(sb); } #endregion @@ -69,14 +70,19 @@ namespace VIVE.OpenXR.Raycast bool enabled = RaycastSwitch.Controller.Enabled; bool validPose = getBool(m_IsTracked); +#if UNITY_XR_OPENXR_1_6_0 + m_Interactable = (m_AlwaysEnable || enabled); // The isTracked value of Pose will always be flase in OpenXR 1.6.0 +#else m_Interactable = (m_AlwaysEnable || enabled) && validPose; +#endif if (printIntervalLog) { - DEBUG("IsInteractable() enabled: " + enabled - + ", validPose: " + validPose - + ", m_AlwaysEnable: " + m_AlwaysEnable - + ", m_Interactable: " + m_Interactable); + sb.Clear().Append("IsInteractable() enabled: ").Append(enabled) + .Append(", validPose: ").Append(validPose) + .Append(", m_AlwaysEnable: ").Append(m_AlwaysEnable) + .Append(", m_Interactable: ").Append(m_Interactable); + DEBUG(sb); } return m_Interactable; diff --git a/com.htc.upm.vive.openxr/Runtime/Raycast/Scripts/ControllerRaycastPointer.cs.meta b/com.htc.upm.vive.openxr/Runtime/Toolkits/Raycast/Scripts/ControllerRaycastPointer.cs.meta similarity index 100% rename from com.htc.upm.vive.openxr/Runtime/Raycast/Scripts/ControllerRaycastPointer.cs.meta rename to com.htc.upm.vive.openxr/Runtime/Toolkits/Raycast/Scripts/ControllerRaycastPointer.cs.meta diff --git a/com.htc.upm.vive.openxr/Runtime/Raycast/Scripts/GazeRaycastRing.cs b/com.htc.upm.vive.openxr/Runtime/Toolkits/Raycast/Scripts/GazeRaycastRing.cs similarity index 70% rename from com.htc.upm.vive.openxr/Runtime/Raycast/Scripts/GazeRaycastRing.cs rename to com.htc.upm.vive.openxr/Runtime/Toolkits/Raycast/Scripts/GazeRaycastRing.cs index 37dcc16..dd62862 100644 --- a/com.htc.upm.vive.openxr/Runtime/Raycast/Scripts/GazeRaycastRing.cs +++ b/com.htc.upm.vive.openxr/Runtime/Toolkits/Raycast/Scripts/GazeRaycastRing.cs @@ -1,6 +1,7 @@ // Copyright HTC Corporation All Rights Reserved. using System.Collections.Generic; +using System.Text; using UnityEngine; using UnityEngine.InputSystem; using UnityEngine.XR; @@ -10,8 +11,7 @@ namespace VIVE.OpenXR.Raycast public class GazeRaycastRing : RaycastRing { const string LOG_TAG = "VIVE.OpenXR.Raycast.GazeRaycastRing"; - void DEBUG(string msg) { Debug.Log(LOG_TAG + " " + msg); } - void INTERVAL(string msg) { if (printIntervalLog) { DEBUG(msg); } } + void DEBUG(StringBuilder msg) { Debug.LogFormat("{0} {1}", LOG_TAG, msg); } #region Inspector [SerializeField] @@ -39,12 +39,20 @@ namespace VIVE.OpenXR.Raycast #else tracked = actionReference.action.ReadValue().isTracked; #endif - INTERVAL("getTracked(" + tracked + ")"); + if (printIntervalLog) + { + sb.Clear().Append("getTracked(").Append(tracked).Append(")"); + DEBUG(sb); + } } } else { - INTERVAL("getTracked() invalid input: " + value); + if (printIntervalLog) + { + sb.Clear().Append("getTracked() invalid input: ").Append(value); + DEBUG(sb); + } } return tracked; @@ -66,12 +74,20 @@ namespace VIVE.OpenXR.Raycast #else state = actionReference.action.ReadValue().trackingState; #endif - INTERVAL("getTrackingState(" + state + ")"); + if (printIntervalLog) + { + sb.Clear().Append("getTrackingState(").Append(state).Append(")"); + DEBUG(sb); + } } } else { - INTERVAL("getTrackingState() invalid input: " + value); + if (printIntervalLog) + { + sb.Clear().Append("getTrackingState() invalid input: ").Append(value); + DEBUG(sb); + } } return state; @@ -93,13 +109,21 @@ namespace VIVE.OpenXR.Raycast #else rotation = actionReference.action.ReadValue().rotation; #endif - INTERVAL("getDirection(" + rotation.x.ToString() + ", " + rotation.y.ToString() + ", " + rotation.z.ToString() + ", " + rotation.w.ToString() + ")"); + if (printIntervalLog) + { + sb.Clear().Append("getDirection(").Append(rotation.x).Append(", ").Append(rotation.y).Append(", ").Append(rotation.z).Append(", ").Append(rotation.w).Append(")"); + DEBUG(sb); + } return (rotation * Vector3.forward); } } else { - INTERVAL("getDirection() invalid input: " + value); + if (printIntervalLog) + { + sb.Clear().Append("getDirection() invalid input: ").Append(value); + DEBUG(sb); + } } return Vector3.forward; @@ -121,12 +145,20 @@ namespace VIVE.OpenXR.Raycast #else origin = actionReference.action.ReadValue().position; #endif - INTERVAL("getOrigin(" + origin.x.ToString() + ", " + origin.y.ToString() + ", " + origin.z.ToString() + ")"); + if (printIntervalLog) + { + sb.Clear().Append("getOrigin(").Append(origin.x).Append(", ").Append(origin.y).Append(", ").Append(origin.z).Append(")"); + DEBUG(sb); + } } } else { - INTERVAL("getOrigin() invalid input: " + value); + if (printIntervalLog) + { + sb.Clear().Append("getOrigin() invalid input: ").Append(value); + DEBUG(sb); + } } return origin; @@ -153,7 +185,11 @@ namespace VIVE.OpenXR.Raycast } else { - INTERVAL("getButton() invalid input: " + value); + if (printIntervalLog) + { + sb.Clear().Append("getButton() invalid input: ").Append(value); + DEBUG(sb); + } } return false; @@ -189,7 +225,8 @@ namespace VIVE.OpenXR.Raycast if (printIntervalLog) { - DEBUG("IsInteractable() enabled: " + enabled + ", m_AlwaysEnable: " + m_AlwaysEnable); + sb.Clear().Append("IsInteractable() enabled: ").Append(enabled).Append(", m_AlwaysEnable: ").Append(m_AlwaysEnable); + DEBUG(sb); } return m_Interactable; @@ -205,7 +242,10 @@ namespace VIVE.OpenXR.Raycast { var pressed = getButton(m_ActionsKeys[i]); if (pressed) - DEBUG("ButtonPressed()" + m_ActionsKeys[i].name + " is pressed."); + { + sb.Clear().Append("ButtonPressed()").Append(m_ActionsKeys[i].name).Append(" is pressed."); + DEBUG(sb); + } keyDown |= pressed; } @@ -218,14 +258,29 @@ namespace VIVE.OpenXR.Raycast protected override bool UseEyeData(out Vector3 direction) { - bool tracked = getTracked(m_EyePose); - bool useEye = m_EyeTracking && tracked; + bool isTracked = getTracked(m_EyePose); + InputTrackingState trackingState = getTrackingState(m_EyePose); + bool positionTracked = ((trackingState & InputTrackingState.Position) != 0); + bool rotationTracked = ((trackingState & InputTrackingState.Rotation) != 0); + + bool useEye = m_EyeTracking +#if !UNITY_XR_OPENXR_1_6_0 + && isTracked // The isTracked value of Pose will always be flase in OpenXR 1.6.0 +#endif + //&& positionTracked + && rotationTracked; - getTrackingState(m_EyePose); getOrigin(m_EyePose); direction = getDirection(m_EyePose); - INTERVAL("UseEyeData() m_EyeTracking: " + m_EyeTracking + ", tracked: " + tracked); + if (printIntervalLog) + { + sb.Clear().Append("UseEyeData() m_EyeTracking: ").Append(m_EyeTracking) + .Append(", isTracked: ").Append(isTracked) + .Append(", trackingState: ").Append(trackingState) + .Append(", direction (").Append(direction.x).Append(", ").Append(direction.y).Append(", ").Append(direction.z).Append(")"); + DEBUG(sb); + } if (!useEye) { return base.UseEyeData(out direction); } @@ -243,7 +298,7 @@ namespace VIVE.OpenXR.Raycast m_RingPercent = 0; m_GazeOnTime = Time.unscaledTime; down = true; - DEBUG("OnDown()"); + sb.Clear().Append("OnDown()"); DEBUG(sb); } return down; @@ -258,7 +313,7 @@ namespace VIVE.OpenXR.Raycast m_RingPercent = 0; m_GazeOnTime = Time.unscaledTime; submit = true; - DEBUG("OnSubmit()"); + sb.Clear().Append("OnSubmit()"); DEBUG(sb); } return submit; diff --git a/com.htc.upm.vive.openxr/Runtime/Raycast/Scripts/GazeRaycastRing.cs.meta b/com.htc.upm.vive.openxr/Runtime/Toolkits/Raycast/Scripts/GazeRaycastRing.cs.meta similarity index 100% rename from com.htc.upm.vive.openxr/Runtime/Raycast/Scripts/GazeRaycastRing.cs.meta rename to com.htc.upm.vive.openxr/Runtime/Toolkits/Raycast/Scripts/GazeRaycastRing.cs.meta diff --git a/com.htc.upm.vive.openxr/Runtime/Raycast/Scripts/HandRaycastPointer.cs b/com.htc.upm.vive.openxr/Runtime/Toolkits/Raycast/Scripts/HandRaycastPointer.cs similarity index 90% rename from com.htc.upm.vive.openxr/Runtime/Raycast/Scripts/HandRaycastPointer.cs rename to com.htc.upm.vive.openxr/Runtime/Toolkits/Raycast/Scripts/HandRaycastPointer.cs index 6155bc6..8470472 100644 --- a/com.htc.upm.vive.openxr/Runtime/Raycast/Scripts/HandRaycastPointer.cs +++ b/com.htc.upm.vive.openxr/Runtime/Toolkits/Raycast/Scripts/HandRaycastPointer.cs @@ -2,6 +2,7 @@ using UnityEngine; using UnityEngine.XR; +using System.Text; #if ENABLE_INPUT_SYSTEM using UnityEngine.InputSystem; @@ -12,6 +13,7 @@ namespace VIVE.OpenXR.Raycast public class HandRaycastPointer : RaycastPointer { const string LOG_TAG = "VIVE.OpenXR.Raycast.HandRaycastPointer "; + void DEBUG(StringBuilder msg) { Debug.LogFormat("{0} {1}", LOG_TAG, msg); } #region Inspector public bool IsLeft = false; @@ -198,7 +200,7 @@ namespace VIVE.OpenXR.Raycast } #endif - [Tooltip("Pinch strength to trigger events.")] + [Tooltip("Pinch threshold to trigger events.")] [SerializeField] private float m_PinchThreshold = .5f; public float PinchThreshold { get { return m_PinchThreshold; } set { m_PinchThreshold = value; } } @@ -213,31 +215,29 @@ namespace VIVE.OpenXR.Raycast { base.Update(); - validPose = getAimTracked(m_AimPose); - trackingStatus = getAimTrackingState(m_AimPose); - var origin = getAimPosition(m_AimPose); - var rotation = getAimRotation(m_AimPose); - strength = getStrength(m_PinchStrength); - if (!IsInteractable()) { return; } + pinchStrength = getStrength(m_PinchStrength); + if (m_UsePose) { - transform.localPosition = origin; - transform.localRotation = rotation; + transform.localPosition = getAimPosition(m_AimPose); + transform.localRotation = getAimRotation(m_AimPose); } } - bool validPose = false; - InputTrackingState trackingStatus = InputTrackingState.None; private bool IsInteractable() { bool enabled = RaycastSwitch.Hand.Enabled; - bool positionTracked = ((trackingStatus & InputTrackingState.Position) != 0); - bool rotationTracked = ((trackingStatus & InputTrackingState.Rotation) != 0); + bool isTracked = getAimTracked(m_AimPose); + InputTrackingState trackingState = getAimTrackingState(m_AimPose); + bool positionTracked = ((trackingState & InputTrackingState.Position) != 0); + bool rotationTracked = ((trackingState & InputTrackingState.Rotation) != 0); m_Interactable = (m_AlwaysEnable || enabled) - && validPose +#if !UNITY_XR_OPENXR_1_6_0 + && isTracked // The isTracked value of Pose will always be flase in OpenXR 1.6.0 +#endif && positionTracked && rotationTracked; @@ -245,7 +245,7 @@ namespace VIVE.OpenXR.Raycast { sb.Clear().Append(LOG_TAG).Append("IsInteractable() m_Interactable: ").Append(m_Interactable) .Append(", enabled: ").Append(enabled) - .Append(", validPose: ").Append(validPose) + .Append(", isTracked: ").Append(isTracked) .Append(", positionTracked: ").Append(positionTracked) .Append(", rotationTracked: ").Append(rotationTracked) .Append(", m_AlwaysEnable: ").Append(m_AlwaysEnable); @@ -258,12 +258,12 @@ namespace VIVE.OpenXR.Raycast #region RaycastImpl Actions overrides bool eligibleForClick = false; - float strength = 0; + float pinchStrength = 0; protected override bool OnDown() { if (!eligibleForClick) { - bool down = strength > m_PinchThreshold; + bool down = pinchStrength > m_PinchThreshold; if (down) { eligibleForClick = true; @@ -275,7 +275,7 @@ namespace VIVE.OpenXR.Raycast } protected override bool OnHold() { - bool hold = strength > m_PinchThreshold; + bool hold = pinchStrength > m_PinchThreshold; if (!hold) eligibleForClick = false; return hold; diff --git a/com.htc.upm.vive.openxr/Runtime/Raycast/Scripts/HandRaycastPointer.cs.meta b/com.htc.upm.vive.openxr/Runtime/Toolkits/Raycast/Scripts/HandRaycastPointer.cs.meta similarity index 100% rename from com.htc.upm.vive.openxr/Runtime/Raycast/Scripts/HandRaycastPointer.cs.meta rename to com.htc.upm.vive.openxr/Runtime/Toolkits/Raycast/Scripts/HandRaycastPointer.cs.meta diff --git a/com.htc.upm.vive.openxr/Runtime/Raycast/Scripts/RaycastEvents.cs b/com.htc.upm.vive.openxr/Runtime/Toolkits/Raycast/Scripts/RaycastEvents.cs similarity index 100% rename from com.htc.upm.vive.openxr/Runtime/Raycast/Scripts/RaycastEvents.cs rename to com.htc.upm.vive.openxr/Runtime/Toolkits/Raycast/Scripts/RaycastEvents.cs diff --git a/com.htc.upm.vive.openxr/Runtime/Raycast/Scripts/RaycastEvents.cs.meta b/com.htc.upm.vive.openxr/Runtime/Toolkits/Raycast/Scripts/RaycastEvents.cs.meta similarity index 100% rename from com.htc.upm.vive.openxr/Runtime/Raycast/Scripts/RaycastEvents.cs.meta rename to com.htc.upm.vive.openxr/Runtime/Toolkits/Raycast/Scripts/RaycastEvents.cs.meta diff --git a/com.htc.upm.vive.openxr/Runtime/Raycast/Scripts/RaycastImpl.cs b/com.htc.upm.vive.openxr/Runtime/Toolkits/Raycast/Scripts/RaycastImpl.cs similarity index 91% rename from com.htc.upm.vive.openxr/Runtime/Raycast/Scripts/RaycastImpl.cs rename to com.htc.upm.vive.openxr/Runtime/Toolkits/Raycast/Scripts/RaycastImpl.cs index 54f261c..5828b23 100644 --- a/com.htc.upm.vive.openxr/Runtime/Raycast/Scripts/RaycastImpl.cs +++ b/com.htc.upm.vive.openxr/Runtime/Toolkits/Raycast/Scripts/RaycastImpl.cs @@ -13,18 +13,20 @@ namespace VIVE.OpenXR.Raycast [RequireComponent(typeof(Camera))] public class RaycastImpl : BaseRaycaster { - private StringBuilder m_sb = null; + #region Log + StringBuilder m_sb = null; protected StringBuilder sb { get { if (m_sb == null) { m_sb = new StringBuilder(); } return m_sb; } } - const string LOG_TAG = "VIVE.OpenXR.Raycast.RaycastImpl "; - protected void DEBUG(StringBuilder msg) { Debug.Log(msg); } + const string LOG_TAG = "VIVE.OpenXR.Raycast.RaycastImpl"; + void DEBUG(StringBuilder msg) { Debug.LogFormat("{0} {1}", LOG_TAG, msg); } + #endregion - #region Inspector - [SerializeField] + #region Inspector + [SerializeField] private bool m_IgnoreReversedGraphics = false; public bool IgnoreReversedGraphics { get { return m_IgnoreReversedGraphics; } set { m_IgnoreReversedGraphics = value; } } [SerializeField] @@ -41,7 +43,7 @@ namespace VIVE.OpenXR.Raycast #region MonoBehaviour overrides protected override void OnEnable() { - sb.Clear().Append(LOG_TAG).Append("OnEnable()"); DEBUG(sb); + sb.Clear().Append("OnEnable()"); DEBUG(sb); base.OnEnable(); /// 1. Set up the event camera. @@ -58,7 +60,7 @@ namespace VIVE.OpenXR.Raycast } protected override void OnDisable() { - sb.Clear().Append(LOG_TAG).Append("OnDisable()"); DEBUG(sb); + sb.Clear().Append("OnDisable()"); DEBUG(sb); base.OnDisable(); } @@ -384,7 +386,7 @@ namespace VIVE.OpenXR.Raycast if (exitObjects[i] != null && !enterObjects.Contains(exitObjects[i])) { ExecuteEvents.Execute(exitObjects[i], pointerData, ExecuteEvents.pointerExitHandler); - sb.Clear().Append(LOG_TAG).Append("ExitEnterHandler() Exit: ").Append(exitObjects[i].name); DEBUG(sb); + sb.Clear().Append("ExitEnterHandler() Exit: ").Append(exitObjects[i].name); DEBUG(sb); } } } @@ -396,7 +398,7 @@ namespace VIVE.OpenXR.Raycast if (enterObjects[i] != null && !exitObjects.Contains(enterObjects[i])) { ExecuteEvents.Execute(enterObjects[i], pointerData, ExecuteEvents.pointerEnterHandler); - sb.Clear().Append(LOG_TAG).Append("ExitEnterHandler() Enter: ").Append(enterObjects[i].name).Append(", camera: ").Append(pointerData.enterEventCamera); DEBUG(sb); + sb.Clear().Append("ExitEnterHandler() Enter: ").Append(enterObjects[i].name).Append(", camera: ").Append(pointerData.enterEventCamera); DEBUG(sb); } } } @@ -407,13 +409,13 @@ namespace VIVE.OpenXR.Raycast { if (raycastObject != null && (raycastObject == raycastObjectEx)) { - if (printIntervalLog) { sb.Clear().Append(LOG_TAG).Append("HoverHandler() Hover: ").Append(raycastObject.name); DEBUG(sb); } + if (printIntervalLog) { sb.Clear().Append("HoverHandler() Hover: ").Append(raycastObject.name); DEBUG(sb); } ExecuteEvents.ExecuteHierarchy(raycastObject, pointerData, RaycastEvents.pointerHoverHandler); } } private void DownHandler() { - sb.Clear().Append(LOG_TAG).Append("DownHandler()");DEBUG(sb); + sb.Clear().Append("DownHandler()");DEBUG(sb); if (raycastObject == null) { return; } pointerData.pressPosition = pointerData.position; @@ -422,13 +424,13 @@ namespace VIVE.OpenXR.Raycast ExecuteEvents.ExecuteHierarchy(raycastObject, pointerData, ExecuteEvents.pointerDownHandler) ?? ExecuteEvents.GetEventHandler(raycastObject); - sb.Clear().Append(LOG_TAG).Append("DownHandler() Down: ").Append(pointerData.pointerPress).Append(", raycastObject: ").Append(raycastObject.name); DEBUG(sb); + sb.Clear().Append("DownHandler() Down: ").Append(pointerData.pointerPress).Append(", raycastObject: ").Append(raycastObject.name); DEBUG(sb); // If Drag Handler exists, send initializePotentialDrag event. pointerData.pointerDrag = ExecuteEvents.GetEventHandler(raycastObject); if (pointerData.pointerDrag != null) { - sb.Clear().Append(LOG_TAG).Append("DownHandler() Send initializePotentialDrag to ").Append(pointerData.pointerDrag.name).Append(", current GameObject is ").Append(raycastObject.name); DEBUG(sb); + sb.Clear().Append("DownHandler() Send initializePotentialDrag to ").Append(pointerData.pointerDrag.name).Append(", current GameObject is ").Append(raycastObject.name); DEBUG(sb); ExecuteEvents.Execute(pointerData.pointerDrag, pointerData, ExecuteEvents.initializePotentialDrag); } @@ -462,7 +464,7 @@ namespace VIVE.OpenXR.Raycast if (pointerData.pointerPress != null) { // In the frame of button is pressed -> unpressed, send Pointer Up - sb.Clear().Append(LOG_TAG).Append("UpHandler() Send Pointer Up to ").Append(pointerData.pointerPress.name); DEBUG(sb); + sb.Clear().Append("UpHandler() Send Pointer Up to ").Append(pointerData.pointerPress.name); DEBUG(sb); ExecuteEvents.Execute(pointerData.pointerPress, pointerData, ExecuteEvents.pointerUpHandler); } @@ -474,12 +476,12 @@ namespace VIVE.OpenXR.Raycast if (objectToClick == pointerData.pointerPress) { // In the frame of button from being pressed to unpressed, send Pointer Click if Click is pending. - sb.Clear().Append(LOG_TAG).Append("UpHandler() Send Pointer Click to ").Append(pointerData.pointerPress.name); DEBUG(sb); + sb.Clear().Append("UpHandler() Send Pointer Click to ").Append(pointerData.pointerPress.name); DEBUG(sb); ExecuteEvents.Execute(pointerData.pointerPress, pointerData, ExecuteEvents.pointerClickHandler); } else { - sb.Clear().Append(LOG_TAG).Append("UpHandler() pointer down object ").Append(pointerData.pointerPress).Append(" is different with click object ").Append(objectToClick.name); DEBUG(sb); + sb.Clear().Append("UpHandler() pointer down object ").Append(pointerData.pointerPress).Append(" is different with click object ").Append(objectToClick.name); DEBUG(sb); } } else @@ -490,10 +492,10 @@ namespace VIVE.OpenXR.Raycast if (_pointerDrop == pointerData.pointerDrag) { // In next frame of button from being pressed to unpressed, send Drop and EndDrag if dragging. - sb.Clear().Append(LOG_TAG).Append("UpHandler() Send Pointer Drop to ").Append(pointerData.pointerDrag); DEBUG(sb); + sb.Clear().Append("UpHandler() Send Pointer Drop to ").Append(pointerData.pointerDrag); DEBUG(sb); ExecuteEvents.Execute(pointerData.pointerDrag, pointerData, ExecuteEvents.dropHandler); } - sb.Clear().Append(LOG_TAG).Append("UpHandler() Send Pointer endDrag to ").Append(pointerData.pointerDrag); DEBUG(sb); + sb.Clear().Append("UpHandler() Send Pointer endDrag to ").Append(pointerData.pointerDrag); DEBUG(sb); ExecuteEvents.Execute(pointerData.pointerDrag, pointerData, ExecuteEvents.endDragHandler); pointerData.dragging = false; @@ -524,7 +526,7 @@ namespace VIVE.OpenXR.Raycast if (!pointerData.dragging) { - sb.Clear().Append(LOG_TAG).Append("DragHandler() Send BeginDrag to ").Append(pointerData.pointerDrag.name); DEBUG(sb); + sb.Clear().Append("DragHandler() Send BeginDrag to ").Append(pointerData.pointerDrag.name); DEBUG(sb); ExecuteEvents.Execute(pointerData.pointerDrag, pointerData, ExecuteEvents.beginDragHandler); pointerData.dragging = true; } @@ -538,7 +540,7 @@ namespace VIVE.OpenXR.Raycast { if (raycastObject == null) { return; } - sb.Clear().Append(LOG_TAG).Append("SubmitHandler() Submit: ").Append(raycastObject.name); DEBUG(sb); + sb.Clear().Append("SubmitHandler() Submit: ").Append(raycastObject.name); DEBUG(sb); ExecuteEvents.ExecuteHierarchy(raycastObject, pointerData, ExecuteEvents.submitHandler); } diff --git a/com.htc.upm.vive.openxr/Runtime/Raycast/Scripts/RaycastImpl.cs.meta b/com.htc.upm.vive.openxr/Runtime/Toolkits/Raycast/Scripts/RaycastImpl.cs.meta similarity index 100% rename from com.htc.upm.vive.openxr/Runtime/Raycast/Scripts/RaycastImpl.cs.meta rename to com.htc.upm.vive.openxr/Runtime/Toolkits/Raycast/Scripts/RaycastImpl.cs.meta diff --git a/com.htc.upm.vive.openxr/Runtime/Raycast/Scripts/RaycastPointer.cs b/com.htc.upm.vive.openxr/Runtime/Toolkits/Raycast/Scripts/RaycastPointer.cs similarity index 89% rename from com.htc.upm.vive.openxr/Runtime/Raycast/Scripts/RaycastPointer.cs rename to com.htc.upm.vive.openxr/Runtime/Toolkits/Raycast/Scripts/RaycastPointer.cs index 25df2fd..e5c76eb 100644 --- a/com.htc.upm.vive.openxr/Runtime/Raycast/Scripts/RaycastPointer.cs +++ b/com.htc.upm.vive.openxr/Runtime/Toolkits/Raycast/Scripts/RaycastPointer.cs @@ -1,5 +1,6 @@ // Copyright HTC Corporation All Rights Reserved. +using System.Text; using UnityEngine; using UnityEngine.EventSystems; @@ -8,7 +9,8 @@ namespace VIVE.OpenXR.Raycast [RequireComponent(typeof(LineRenderer))] public class RaycastPointer : RaycastImpl { - const string LOG_TAG = "VIVE.OpenXR.Raycast.RaycastPointer "; + const string LOG_TAG = "VIVE.OpenXR.Raycast.RaycastPointer"; + void DEBUG(StringBuilder msg) { Debug.LogFormat("{0} {1}", LOG_TAG, msg); } #region Inspector [Tooltip("To show the ray which presents the casting direction.")] @@ -39,19 +41,19 @@ namespace VIVE.OpenXR.Raycast #region MonoBehaviour overrides protected override void OnEnable() { - sb.Clear().Append(LOG_TAG).Append("OnEnable()"); DEBUG(sb); + sb.Clear().Append("OnEnable()"); DEBUG(sb); base.OnEnable(); if (m_Ray == null) { m_Ray = GetComponent(); } if (m_Pointer != null) { m_PointerScale = m_Pointer.transform.localScale; - sb.Clear().Append(LOG_TAG).Append("OnEnable() Get default pointer scale (").Append(m_PointerScale.x).Append(", ").Append(m_PointerScale.y).Append(", ").Append(m_PointerScale.z).Append(")"); DEBUG(sb); + sb.Clear().Append("OnEnable() Get default pointer scale (").Append(m_PointerScale.x).Append(", ").Append(m_PointerScale.y).Append(", ").Append(m_PointerScale.z).Append(")"); DEBUG(sb); } } protected override void OnDisable() { - sb.Clear().Append(LOG_TAG).Append("OnDisable()"); DEBUG(sb); + sb.Clear().Append("OnDisable()"); DEBUG(sb); base.OnDisable(); ActivatePointer(false); @@ -64,9 +66,9 @@ namespace VIVE.OpenXR.Raycast if (printIntervalLog) { if (m_Ray != null) - sb.Clear().Append(LOG_TAG).Append("Update() ").Append(gameObject.name).Append(", m_Ray enabled: ").Append(m_Ray.enabled); DEBUG(sb); + sb.Clear().Append("Update() ").Append(gameObject.name).Append(", m_Ray enabled: ").Append(m_Ray.enabled); DEBUG(sb); if (m_Pointer != null) - sb.Clear().Append(LOG_TAG).Append("Update() ").Append(gameObject.name).Append(", m_Pointer enabled: ").Append(m_Pointer.activeSelf); DEBUG(sb); + sb.Clear().Append("Update() ").Append(gameObject.name).Append(", m_Pointer enabled: ").Append(m_Pointer.activeSelf); DEBUG(sb); } if (!IsInteractable()) { return; } @@ -81,7 +83,7 @@ namespace VIVE.OpenXR.Raycast { if (m_Pointer != null) { - if (m_Pointer.activeSelf != active) { sb.Clear().Append(LOG_TAG).Append("ActivatePointer() ").Append(gameObject.name).Append(" ").Append(active); DEBUG(sb); } + if (m_Pointer.activeSelf != active) { sb.Clear().Append("ActivatePointer() ").Append(gameObject.name).Append(" ").Append(active); DEBUG(sb); } m_Pointer.SetActive(active); } } @@ -89,7 +91,7 @@ namespace VIVE.OpenXR.Raycast { if (m_Ray != null) { - if (m_Ray.enabled != active) { sb.Clear().Append(LOG_TAG).Append("ActivateRay() ").Append(gameObject.name).Append(" ").Append(active); DEBUG(sb); } + if (m_Ray.enabled != active) { sb.Clear().Append("ActivateRay() ").Append(gameObject.name).Append(" ").Append(active); DEBUG(sb); } m_Ray.enabled = active; } } diff --git a/com.htc.upm.vive.openxr/Runtime/Raycast/Scripts/RaycastPointer.cs.meta b/com.htc.upm.vive.openxr/Runtime/Toolkits/Raycast/Scripts/RaycastPointer.cs.meta similarity index 100% rename from com.htc.upm.vive.openxr/Runtime/Raycast/Scripts/RaycastPointer.cs.meta rename to com.htc.upm.vive.openxr/Runtime/Toolkits/Raycast/Scripts/RaycastPointer.cs.meta diff --git a/com.htc.upm.vive.openxr/Runtime/Raycast/Scripts/RaycastRing.cs b/com.htc.upm.vive.openxr/Runtime/Toolkits/Raycast/Scripts/RaycastRing.cs similarity index 94% rename from com.htc.upm.vive.openxr/Runtime/Raycast/Scripts/RaycastRing.cs rename to com.htc.upm.vive.openxr/Runtime/Toolkits/Raycast/Scripts/RaycastRing.cs index d685089..4d623a4 100644 --- a/com.htc.upm.vive.openxr/Runtime/Raycast/Scripts/RaycastRing.cs +++ b/com.htc.upm.vive.openxr/Runtime/Toolkits/Raycast/Scripts/RaycastRing.cs @@ -1,5 +1,6 @@ // Copyright HTC Corporation All Rights Reserved. +using System.Text; using UnityEngine; namespace VIVE.OpenXR.Raycast @@ -11,7 +12,7 @@ namespace VIVE.OpenXR.Raycast public class RaycastRing : RaycastImpl { const string LOG_TAG = "VIVE.OpenXR.Raycast.RaycastRing"; - void DEBUG(string msg) { Debug.Log(LOG_TAG + " " + msg); } + void DEBUG(StringBuilder msg) { Debug.LogFormat("{0} {1}", LOG_TAG, msg); } public enum GazeEvent { @@ -119,11 +120,11 @@ namespace VIVE.OpenXR.Raycast private bool mEnabled = false; protected override void OnEnable() { - DEBUG("OnEnable()"); base.OnEnable(); if (!mEnabled) { + sb.Clear().Append("OnEnable()"); DEBUG(sb); // 1. Texture or Mesh < Material < < MeshFilter < MeshRenderer, we don't use the texture. if (m_Mesh == null) m_Mesh = new Mesh(); @@ -136,7 +137,7 @@ namespace VIVE.OpenXR.Raycast if (m_PointerMaterial != null) { pointerMaterialInstance = Instantiate(m_PointerMaterial); - DEBUG("OnEnable() Loaded resource " + pointerMaterialInstance.name); + sb.Clear().Append("OnEnable() Loaded resource ").Append(pointerMaterialInstance.name); DEBUG(sb); } // 3. Get the MeshFilter. @@ -154,11 +155,11 @@ namespace VIVE.OpenXR.Raycast protected override void OnDisable() { - DEBUG("OnDisable()"); base.OnDisable(); if (mEnabled) { + sb.Clear().Append("OnDisable()"); DEBUG(sb); if (m_MeshFilter != null) { Mesh mesh = m_MeshFilter.mesh; @@ -167,7 +168,6 @@ namespace VIVE.OpenXR.Raycast Destroy(pointerMaterialInstance); mEnabled = false; - DEBUG("OnDisable()"); } } @@ -196,8 +196,10 @@ namespace VIVE.OpenXR.Raycast if (printIntervalLog) { - DEBUG("Update() " + gameObject.name + " is " + (m_MeshRenderer.enabled ? "shown" : "hidden") - + ", ringFrameOffset (" + ringFrameOffset.x + ", " + ringFrameOffset.y + ", " + ringFrameOffset.z + ")"); + sb.Clear().Append("Update() ") + .Append(gameObject.name).Append(" is ").Append(m_MeshRenderer.enabled ? "shown" : "hidden") + .Append(", ringFrameOffset (").Append(ringFrameOffset.x).Append(", ").Append(ringFrameOffset.y).Append(", ").Append(ringFrameOffset.z).Append(")"); + DEBUG(sb); } } #endregion @@ -215,7 +217,7 @@ namespace VIVE.OpenXR.Raycast if (m_MeshRenderer.enabled != active) { m_MeshRenderer.enabled = active; - DEBUG("ActivatePointer() " + m_MeshRenderer.enabled); + sb.Clear().Append("ActivatePointer() ").Append(m_MeshRenderer.enabled); DEBUG(sb); if (m_MeshRenderer.enabled) { m_MeshRenderer.sortingOrder = m_PointerSortingOrder; diff --git a/com.htc.upm.vive.openxr/Runtime/Raycast/Scripts/RaycastRing.cs.meta b/com.htc.upm.vive.openxr/Runtime/Toolkits/Raycast/Scripts/RaycastRing.cs.meta similarity index 100% rename from com.htc.upm.vive.openxr/Runtime/Raycast/Scripts/RaycastRing.cs.meta rename to com.htc.upm.vive.openxr/Runtime/Toolkits/Raycast/Scripts/RaycastRing.cs.meta diff --git a/com.htc.upm.vive.openxr/Runtime/Raycast/Scripts/RaycastSwitch.cs b/com.htc.upm.vive.openxr/Runtime/Toolkits/Raycast/Scripts/RaycastSwitch.cs similarity index 100% rename from com.htc.upm.vive.openxr/Runtime/Raycast/Scripts/RaycastSwitch.cs rename to com.htc.upm.vive.openxr/Runtime/Toolkits/Raycast/Scripts/RaycastSwitch.cs diff --git a/com.htc.upm.vive.openxr/Runtime/Raycast/Scripts/RaycastSwitch.cs.meta b/com.htc.upm.vive.openxr/Runtime/Toolkits/Raycast/Scripts/RaycastSwitch.cs.meta similarity index 100% rename from com.htc.upm.vive.openxr/Runtime/Raycast/Scripts/RaycastSwitch.cs.meta rename to com.htc.upm.vive.openxr/Runtime/Toolkits/Raycast/Scripts/RaycastSwitch.cs.meta diff --git a/com.htc.upm.vive.openxr/Runtime/Raycast/Scripts/TargetCanvas.cs b/com.htc.upm.vive.openxr/Runtime/Toolkits/Raycast/Scripts/TargetCanvas.cs similarity index 100% rename from com.htc.upm.vive.openxr/Runtime/Raycast/Scripts/TargetCanvas.cs rename to com.htc.upm.vive.openxr/Runtime/Toolkits/Raycast/Scripts/TargetCanvas.cs diff --git a/com.htc.upm.vive.openxr/Runtime/Raycast/Scripts/TargetCanvas.cs.meta b/com.htc.upm.vive.openxr/Runtime/Toolkits/Raycast/Scripts/TargetCanvas.cs.meta similarity index 100% rename from com.htc.upm.vive.openxr/Runtime/Raycast/Scripts/TargetCanvas.cs.meta rename to com.htc.upm.vive.openxr/Runtime/Toolkits/Raycast/Scripts/TargetCanvas.cs.meta diff --git a/com.htc.upm.vive.openxr/Runtime/Toolkits/RealisticHandInteraction(experimental)/Editor/HandMeshManagerEditor.cs b/com.htc.upm.vive.openxr/Runtime/Toolkits/RealisticHandInteraction(experimental)/Editor/HandMeshManagerEditor.cs index ab13791..f8c8ffa 100644 --- a/com.htc.upm.vive.openxr/Runtime/Toolkits/RealisticHandInteraction(experimental)/Editor/HandMeshManagerEditor.cs +++ b/com.htc.upm.vive.openxr/Runtime/Toolkits/RealisticHandInteraction(experimental)/Editor/HandMeshManagerEditor.cs @@ -5,7 +5,7 @@ using UnityEditor; namespace VIVE.OpenXR.Toolkits.RealisticHandInteraction { [CustomEditor(typeof(HandMeshManager))] - public class HandMeshManagerEditor : Editor + public class HandMeshManagerEditor : UnityEditor.Editor { private HandMeshManager m_HandMesh; private SerializedProperty m_Handedness, m_EnableCollider, m_HandJoints; diff --git a/com.htc.upm.vive.openxr/Runtime/Toolkits/RealisticHandInteraction(experimental)/Scripts/Grab/HandGrabInteractable.cs b/com.htc.upm.vive.openxr/Runtime/Toolkits/RealisticHandInteraction(experimental)/Scripts/Grab/HandGrabInteractable.cs index b7c6b68..1be89fd 100644 --- a/com.htc.upm.vive.openxr/Runtime/Toolkits/RealisticHandInteraction(experimental)/Scripts/Grab/HandGrabInteractable.cs +++ b/com.htc.upm.vive.openxr/Runtime/Toolkits/RealisticHandInteraction(experimental)/Scripts/Grab/HandGrabInteractable.cs @@ -67,7 +67,9 @@ namespace VIVE.OpenXR.Toolkits.RealisticHandInteraction [SerializeField] private Rigidbody m_Rigidbody = null; - public new Rigidbody rigidbody => m_Rigidbody; +#pragma warning disable + public Rigidbody rigidbody => m_Rigidbody; +#pragma warning enable [SerializeField] private List m_GrabPoses = new List(); @@ -82,15 +84,17 @@ namespace VIVE.OpenXR.Toolkits.RealisticHandInteraction private bool m_ShowAllIndicator = false; private List allColliders = new List(); private HandGrabInteractor closestGrabber = null; - private OnBeginGrabbed beginGrabbed; - private OnEndGrabbed endGrabbed; [SerializeField] private IOneHandContraintMovement m_OneHandContraintMovement; - public bool isContraint => m_OneHandContraintMovement != null; + public IOneHandContraintMovement oneHandContraintMovement { get { return m_OneHandContraintMovement; } set { m_OneHandContraintMovement = value; } } + public bool isContraint => m_OneHandContraintMovement != null; +#pragma warning disable [SerializeField] private int m_PreviewIndex = -1; +#pragma warning enable + private RaycastHit[] hitResults = new RaycastHit[10]; #region MonoBehaviour private void Awake() @@ -124,7 +128,6 @@ namespace VIVE.OpenXR.Toolkits.RealisticHandInteraction handPose.GetPosition(JointType.Wrist, out Vector3 wristPos); handPose.GetRotation(JointType.Wrist, out Quaternion wristRot); UpdateBestGrabPose(handGrabber.isLeft, new Pose(wristPos, wristRot)); - beginGrabbed?.Invoke(this); m_OnBeginGrabbed?.Invoke(this); DEBUG($"{transform.name} is grabbed by {handGrabber.name}"); } @@ -132,7 +135,6 @@ namespace VIVE.OpenXR.Toolkits.RealisticHandInteraction { m_Grabber = null; m_BestGrabPose = GrabPose.Identity; - endGrabbed?.Invoke(this); m_OnEndGrabbed?.Invoke(this); DEBUG($"{transform.name} is released."); } @@ -185,46 +187,6 @@ namespace VIVE.OpenXR.Toolkits.RealisticHandInteraction return distacne > grabDistance ? 0 : 1 - (distacne / grabDistance); } - /// - /// Add a listener for the event triggered when the grabbable object is grabbed. - /// - /// The method to be called when the grabbable object is grabbed. - [Obsolete("Please use onBeginGrabbed instead.")] - public void AddBeginGrabbedListener(OnBeginGrabbed handler) - { - beginGrabbed += handler; - } - - /// - /// Remove a listener for the event triggered when the grabbable object is grabbed. - /// - /// The method to be removed from the event listeners. - [Obsolete("Please use onBeginGrabbed instead.")] - public void RemoveBeginGrabbedListener(OnBeginGrabbed handler) - { - beginGrabbed -= handler; - } - - /// - /// Add a listener for the event triggered when the grabbable object is released. - /// - /// The method to be called when the grabbable object is released. - [Obsolete("Please use onEndGrabbed instead.")] - public void AddEndGrabbedListener(OnEndGrabbed handler) - { - endGrabbed += handler; - } - - /// - /// Remove a listener for the event triggered when the grabbable object is released. - /// - /// The method to be removed from the event listeners. - [Obsolete("Please use onEndGrabbed instead.")] - public void RemoveEndGrabbedListener(OnEndGrabbed handler) - { - endGrabbed -= handler; - } - /// /// Update the position and rotation of the self with the pose of the hand that is grabbing it. /// @@ -302,16 +264,19 @@ namespace VIVE.OpenXR.Toolkits.RealisticHandInteraction { Vector3 closestPoint = Vector3.zero; float shortDistance = float.MaxValue; - foreach (var collider in allColliders) + for (int i = 0; i < allColliders.Count; i++) { + Collider collider = allColliders[i]; Vector3 closePoint = collider.ClosestPointOnBounds(sourcePos); float distance = Vector3.Distance(sourcePos, closePoint); if (collider.bounds.Contains(closePoint)) { - Vector3 direction = (closePoint - sourcePos).normalized; - RaycastHit[] hits = Physics.RaycastAll(sourcePos, direction, distance); - foreach (var hit in hits) + Vector3 direction = closePoint - sourcePos; + direction.Normalize(); + int hitCount = Physics.RaycastNonAlloc(sourcePos, direction, hitResults, distance); + for (int j = 0; j < hitCount; j++) { + RaycastHit hit = hitResults[j]; if (hit.collider == collider) { float hitDistance = Vector3.Distance(sourcePos, hit.point); diff --git a/com.htc.upm.vive.openxr/Runtime/Toolkits/RealisticHandInteraction(experimental)/Scripts/Grab/HandGrabInteractor.cs b/com.htc.upm.vive.openxr/Runtime/Toolkits/RealisticHandInteraction(experimental)/Scripts/Grab/HandGrabInteractor.cs index 617e0a3..3d305cc 100644 --- a/com.htc.upm.vive.openxr/Runtime/Toolkits/RealisticHandInteraction(experimental)/Scripts/Grab/HandGrabInteractor.cs +++ b/com.htc.upm.vive.openxr/Runtime/Toolkits/RealisticHandInteraction(experimental)/Scripts/Grab/HandGrabInteractor.cs @@ -9,6 +9,7 @@ // specifications, and documentation provided by HTC to You." using System; +using System.Collections.Generic; using System.Text; using UnityEngine; @@ -34,8 +35,6 @@ namespace VIVE.OpenXR.Toolkits.RealisticHandInteraction private void DEBUG(string msg) { Debug.Log($"{LOG_TAG}, {msg}"); } private void WARNING(string msg) { Debug.LogWarning($"{LOG_TAG}, {msg}"); } private void ERROR(string msg) { Debug.LogError($"{LOG_TAG}, {msg}"); } - int logFrame = 0; - bool printIntervalLog => logFrame == 0; #endregion @@ -79,8 +78,6 @@ namespace VIVE.OpenXR.Toolkits.RealisticHandInteraction private GrabState m_State = GrabState.None; private Pose wristPose = Pose.identity; private Vector3[] fingerTipPosition = new Vector3[(int)FingerId.Count]; - private OnBeginGrab beginGrabHandler; - private OnEndGrab endGrabHandler; #region MonoBehaviour private void Awake() @@ -155,46 +152,6 @@ namespace VIVE.OpenXR.Toolkits.RealisticHandInteraction } return false; } - - /// - /// Add a listener for the event triggered when the grabber begins grabbing. - /// - /// The method to be called when the grabber begins grabbing. - [Obsolete("Please use onBeginGrab instead.")] - public void AddBeginGrabListener(OnBeginGrab handler) - { - beginGrabHandler += handler; - } - - /// - /// Remove a listener for the event triggered when the grabber begins grabbing. - /// - /// The method to be removed from the event listeners. - [Obsolete("Please use onBeginGrab instead.")] - public void RemoveBeginGrabListener(OnBeginGrab handler) - { - beginGrabHandler -= handler; - } - - /// - /// Add a listener for the event triggered when the grabber ends grabbing. - /// - /// The method to be called when the grabber ends grabbing. - [Obsolete("Please use onEndGrab instead.")] - public void AddEndGrabListener(OnEndGrab handler) - { - endGrabHandler += handler; - } - - /// - /// Remove a listener for the event triggered when the grabber ends grabbing. - /// - /// The method to be removed from the event listeners. - [Obsolete("Please use onEndGrab instead.")] - public void RemoveEndGrabListener(OnEndGrab handler) - { - endGrabHandler -= handler; - } #endregion /// @@ -231,13 +188,32 @@ namespace VIVE.OpenXR.Toolkits.RealisticHandInteraction { grabbable = null; maxScore = 0f; - foreach (HandGrabInteractable interactable in GrabManager.handGrabbables) - { - interactable.ShowIndicator(false, this); - foreach (Vector3 tipPos in fingerTipPosition) + Collider[] nearColliders = Physics.OverlapSphere(wristPose.position, 0.5f); + List nearHandGrabInteractables = new List(); + for (int i = 0; i < nearColliders.Length; i++) + { + HandGrabInteractable interactable = nearColliders[i].GetComponentInParent(); + if (interactable && !nearHandGrabInteractables.Contains(interactable)) { - float distanceScore = interactable.CalculateDistanceScore(tipPos, grabDistance); + nearHandGrabInteractables.Add(interactable); + continue; + } + interactable = nearColliders[i].GetComponentInChildren(); + if (interactable && !nearHandGrabInteractables.Contains(interactable)) + { + nearHandGrabInteractables.Add(interactable); + continue; + } + } + + for (int i = 0; i < nearHandGrabInteractables.Count; i++) + { + HandGrabInteractable interactable = nearHandGrabInteractables[i]; + interactable.ShowIndicator(false, this); + for (int j = 0; j < fingerTipPosition.Length; j++) + { + float distanceScore = interactable.CalculateDistanceScore(fingerTipPosition[j], grabDistance); if (distanceScore > maxScore) { maxScore = distanceScore; @@ -280,7 +256,6 @@ namespace VIVE.OpenXR.Toolkits.RealisticHandInteraction m_Grabbable = currentCandidate; m_Grabbable.SetGrabber(this); m_Grabbable.ShowIndicator(false, this); - beginGrabHandler?.Invoke(this); onBeginGrab?.Invoke(this); DEBUG($"The {(m_Handedness == Handedness.Left ? "left" : "right")} hand begins to grab the {m_Grabbable.name}"); @@ -296,7 +271,6 @@ namespace VIVE.OpenXR.Toolkits.RealisticHandInteraction { DEBUG($"The {(m_Handedness == Handedness.Left ? "left" : "right")} hand ends to grab the {m_Grabbable.name}"); - endGrabHandler?.Invoke(this); onEndGrab?.Invoke(this); m_Grabbable.SetGrabber(null); m_Grabbable = null; diff --git a/com.htc.upm.vive.openxr/Runtime/Toolkits/RealisticHandInteraction(experimental)/Scripts/Grab/OneGrabMoveConstraint.cs b/com.htc.upm.vive.openxr/Runtime/Toolkits/RealisticHandInteraction(experimental)/Scripts/Grab/OneGrabMoveConstraint.cs index 592ea6a..effffba 100644 --- a/com.htc.upm.vive.openxr/Runtime/Toolkits/RealisticHandInteraction(experimental)/Scripts/Grab/OneGrabMoveConstraint.cs +++ b/com.htc.upm.vive.openxr/Runtime/Toolkits/RealisticHandInteraction(experimental)/Scripts/Grab/OneGrabMoveConstraint.cs @@ -1,7 +1,7 @@ using System.Text; using UnityEngine; -namespace VIVE.OpenXR.Toolkits.RealisticHandInteraction +namespace VIVE.OpenXR.Toolkits.RealisticHandInteraction { public class OneGrabMoveConstraint : IOneHandContraintMovement { @@ -30,21 +30,28 @@ namespace VIVE.OpenXR.Toolkits.RealisticHandInteraction [SerializeField] private ConstraintInfo m_NegativeXMove = ConstraintInfo.Identity; private float defaultNegativeXPos = 0.0f; + public float xNegativeBoundary => defaultNegativeXPos; [SerializeField] private ConstraintInfo m_PositiveXMove = ConstraintInfo.Identity; private float defaultPositiveXPos = 0.0f; + public float xPositiveBoundary => defaultPositiveXPos; [SerializeField] private ConstraintInfo m_NegativeYMove = ConstraintInfo.Identity; private float defaultNegativeYPos = 0.0f; + public float yNegativeBoundary => defaultNegativeYPos; [SerializeField] private ConstraintInfo m_PositiveYMove = ConstraintInfo.Identity; private float defaultPositiveYPos = 0.0f; + public float yPositiveBoundary => defaultPositiveYPos; [SerializeField] private ConstraintInfo m_NegativeZMove = ConstraintInfo.Identity; private float defaultNegativeZPos = 0.0f; + public float zNegativeBoundary => defaultNegativeZPos; [SerializeField] private ConstraintInfo m_PositiveZMove = ConstraintInfo.Identity; private float defaultPositiveZPos = 0.0f; + public float zPositiveBoundary => defaultPositiveZPos; + private Pose previousHandPose = Pose.identity; private GrabPose currentGrabPose = GrabPose.Identity; diff --git a/com.htc.upm.vive.openxr/Runtime/Toolkits/RealisticHandInteraction(experimental)/Scripts/Grab/OneGrabRotateConstraint.cs b/com.htc.upm.vive.openxr/Runtime/Toolkits/RealisticHandInteraction(experimental)/Scripts/Grab/OneGrabRotateConstraint.cs index 357f7f7..752e271 100644 --- a/com.htc.upm.vive.openxr/Runtime/Toolkits/RealisticHandInteraction(experimental)/Scripts/Grab/OneGrabRotateConstraint.cs +++ b/com.htc.upm.vive.openxr/Runtime/Toolkits/RealisticHandInteraction(experimental)/Scripts/Grab/OneGrabRotateConstraint.cs @@ -40,9 +40,12 @@ namespace VIVE.OpenXR.Toolkits.RealisticHandInteraction private RotationAxis m_RotationAxis = RotationAxis.XAxis; [SerializeField] private ConstraintInfo m_ClockwiseAngle = ConstraintInfo.Identity; + public float clockwiseAngle => m_ClockwiseAngle.value; [SerializeField] private ConstraintInfo m_CounterclockwiseAngle = ConstraintInfo.Identity; - private float totalRotationAngle = 0.0f; + public float counterclockwiseAngle => m_CounterclockwiseAngle.value; + private float m_TotalDegrees = 0.0f; + public float totalDegrees => m_TotalDegrees; private Pose previousHandPose = Pose.identity; public override void Initialize(IGrabbable grabbable) @@ -99,17 +102,17 @@ namespace VIVE.OpenXR.Toolkits.RealisticHandInteraction float angleDelta = Vector3.Angle(previousVector, targetVector); angleDelta *= Vector3.Dot(Vector3.Cross(previousVector, targetVector), worldAxis) > 0.0f ? 1.0f : -1.0f; - float previousAngle = totalRotationAngle; - totalRotationAngle += angleDelta; + float previousAngle = m_TotalDegrees; + m_TotalDegrees += angleDelta; if (m_CounterclockwiseAngle.enableConstraint) { - totalRotationAngle = Mathf.Max(totalRotationAngle, -m_CounterclockwiseAngle.value); + m_TotalDegrees = Mathf.Max(m_TotalDegrees, -m_CounterclockwiseAngle.value); } if (m_ClockwiseAngle.enableConstraint) { - totalRotationAngle = Mathf.Min(totalRotationAngle, m_ClockwiseAngle.value); + m_TotalDegrees = Mathf.Min(m_TotalDegrees, m_ClockwiseAngle.value); } - angleDelta = totalRotationAngle - previousAngle; + angleDelta = m_TotalDegrees - previousAngle; m_Constraint.RotateAround(m_Pivot.position, worldAxis, angleDelta); previousHandPose = handPose; diff --git a/com.htc.upm.vive.openxr/Runtime/Toolkits/RealisticHandInteraction(experimental)/Scripts/HandInteractionUtils.cs b/com.htc.upm.vive.openxr/Runtime/Toolkits/RealisticHandInteraction(experimental)/Scripts/HandInteractionUtils.cs index c6b793c..763effa 100644 --- a/com.htc.upm.vive.openxr/Runtime/Toolkits/RealisticHandInteraction(experimental)/Scripts/HandInteractionUtils.cs +++ b/com.htc.upm.vive.openxr/Runtime/Toolkits/RealisticHandInteraction(experimental)/Scripts/HandInteractionUtils.cs @@ -13,11 +13,7 @@ using System.Collections.Generic; using System.Text; using UnityEngine; using UnityEngine.Events; - - -#if UNITY_XR_HANDS -using UnityEngine.XR.Hands; -#endif +using VIVE.OpenXR.Toolkits.Common; namespace VIVE.OpenXR.Toolkits.RealisticHandInteraction { @@ -60,31 +56,15 @@ namespace VIVE.OpenXR.Toolkits.RealisticHandInteraction /// /// This class is designed to update hand tracking data. /// -#if UNITY_XR_HANDS public static class DataWrapper { - private static XRHandSubsystem handSubsystem = null; - private static List s_XRHandSubsystems = new List(); - /// /// Validate whether the hand tracking is active. /// /// True if the hand tracking is active; otherwise, false. public static bool Validate() { - if (handSubsystem == null || !handSubsystem.running) - { - SubsystemManager.GetSubsystems(s_XRHandSubsystems); - for (int i = 0; i < s_XRHandSubsystems.Count; i++) - { - if (handSubsystem != null) - { - handSubsystem = null; - } - handSubsystem = s_XRHandSubsystems[i]; - } - } - return handSubsystem != null && handSubsystem.running; + return VIVEInput.IsHandValidate(); } /// @@ -94,11 +74,8 @@ namespace VIVE.OpenXR.Toolkits.RealisticHandInteraction /// True if the hand tracking is successfully tracking; otherwise, false. public static bool IsHandTracked(bool isLeft) { - if (handSubsystem != null) - { - return isLeft ? handSubsystem.leftHand.isTracked : handSubsystem.rightHand.isTracked; - } - return false; + Common.Handedness handedness = isLeft ? Common.Handedness.Left : Common.Handedness.Right; + return VIVEInput.IsHandTracked(handedness); } /// @@ -111,53 +88,17 @@ namespace VIVE.OpenXR.Toolkits.RealisticHandInteraction /// public static bool GetJointPose(JointType jointType, ref Vector3 position, ref Quaternion rotation, bool isLeft) { - if (IsHandTracked(isLeft)) + Common.Handedness handedness = isLeft ? Common.Handedness.Left : Common.Handedness.Right; + if (IsHandTracked(isLeft) && + VIVEInput.GetJointPose(handedness, (HandJointType)jointType, out Pose jointPose)) { - XRHand hand = isLeft ? handSubsystem.leftHand : handSubsystem.rightHand; - XRHandJoint xrHandJoint = hand.GetJoint(ConvertToXRHandJointID(jointType)); - if (xrHandJoint.TryGetPose(out Pose pose)) - { - position = pose.position; - rotation = pose.rotation; - return true; - } + position = jointPose.position; + rotation = jointPose.rotation; + return true; } return false; } - - private static XRHandJointID ConvertToXRHandJointID(JointType jointType) - { - int id = (int)jointType; - switch (id) - { - case 0: - return XRHandJointID.Palm; - case 1: - return XRHandJointID.Wrist; - default: - return (XRHandJointID)(id + 1); - } - } } -#else - public static class DataWrapper - { - public static bool Validate() - { - return false; - } - - public static bool IsHandTracked(bool isLeft) - { - return false; - } - - public static bool GetJointPose(JointType jointType, ref Vector3 position, ref Quaternion rotation, bool isLeft) - { - return false; - } - } -#endif /// /// The enum is designed to define the IDs of joints. @@ -242,28 +183,38 @@ namespace VIVE.OpenXR.Toolkits.RealisticHandInteraction { public Vector3 direction = Vector3.zero; public JointData[] joints = null; - public JointData joint0 { - get { + public JointData joint0 + { + get + { return joints[(Int32)JointId.Joint0]; } } - public JointData joint1 { - get { + public JointData joint1 + { + get + { return joints[(Int32)JointId.Joint1]; } } - public JointData joint2 { - get { + public JointData joint2 + { + get + { return joints[(Int32)JointId.Joint2]; } } - public JointData joint3 { - get { + public JointData joint3 + { + get + { return joints[(Int32)JointId.Joint3]; } } - public JointData tip { - get { + public JointData tip + { + get + { return joints[(Int32)JointId.Tip]; } } @@ -692,28 +643,38 @@ namespace VIVE.OpenXR.Toolkits.RealisticHandInteraction public JointData palm; public JointData wrist; public FingerData[] fingers = null; // size: FingerId.Count - public FingerData thumb { - get { + public FingerData thumb + { + get + { return fingers[(Int32)FingerId.Thumb]; } } - public FingerData index { - get { + public FingerData index + { + get + { return fingers[(Int32)FingerId.Index]; } } - public FingerData middle { - get { + public FingerData middle + { + get + { return fingers[(Int32)FingerId.Middle]; } } - public FingerData ring { - get { + public FingerData ring + { + get + { return fingers[(Int32)FingerId.Ring]; } } - public FingerData pinky { - get { + public FingerData pinky + { + get + { return fingers[(Int32)FingerId.Pinky]; } } @@ -1026,13 +987,17 @@ namespace VIVE.OpenXR.Toolkits.RealisticHandInteraction const string LOG_TAG = "VIVE.OpenXR.Toolkits.RealisticHandInteraction.HandGrabState.FingerPinchState "; StringBuilder m_sb = null; - StringBuilder sb { - get { + StringBuilder sb + { + get + { if (m_sb == null) { m_sb = new StringBuilder(); } return m_sb; } } - void DEBUG(StringBuilder msg) { Debug.Log(msg); } + void DEBUG(string msg) { Debug.Log($"{LOG_TAG}, {msg}"); } + bool printIntervalLog = false; + int logFrame = 0; private bool isLeft = false; private FingerData thumbData; @@ -1107,10 +1072,10 @@ namespace VIVE.OpenXR.Toolkits.RealisticHandInteraction fingerData.joint2.position}; float distance = float.PositiveInfinity; - foreach (var fingerJointPos in fingerPos) + for (int i = 0; i < fingerPos.Length; i++) { - distance = Mathf.Min(distance, CalculateShortestDistance(fingerJointPos, thumbTip, thumbJoint2)); - distance = Mathf.Min(distance, CalculateShortestDistance(fingerJointPos, thumbJoint2, thumbJoint1)); + distance = Mathf.Min(distance, CalculateShortestDistance(fingerPos[i], thumbTip, thumbJoint2)); + distance = Mathf.Min(distance, CalculateShortestDistance(fingerPos[i], thumbJoint2, thumbJoint1)); } return distance; } @@ -1169,12 +1134,14 @@ namespace VIVE.OpenXR.Toolkits.RealisticHandInteraction m_isPinching = true; minDistance = distance; - sb.Clear().Append(LOG_TAG).Append(isLeft ? "Left " : "Right ").Append(m_finger.Name()) - .Append(" UpdateState() pinch strength: ").Append(m_pinchStrength) - .Append(", pinch on threshold: ").Append(kPinchStrengthOnThreshold) - .Append(", is pinching: ").Append(m_isPinching) - .Append(", pinch distance: ").Append(minDistance); - DEBUG(sb); + if (printIntervalLog) + { + DEBUG($"{(isLeft ? "Left " : "Right ")} {finger.Name()}" + + $" UpdateState() pinch strength: {m_pinchStrength}" + + $", pinch on threshold: {kPinchStrengthOnThreshold}" + + $", is pinching: {m_isPinching}" + + $", pinch distance: {minDistance}"); + } updated = true; } @@ -1187,12 +1154,14 @@ namespace VIVE.OpenXR.Toolkits.RealisticHandInteraction { m_isPinching = false; - sb.Clear().Append(LOG_TAG).Append(isLeft ? "Left " : "Right ").Append(m_finger.Name()) - .Append(" UpdateState() pinch strength: ").Append(m_pinchStrength) - .Append(", pinch off threshold: ").Append(kPinchStrengthOffThreshold) - .Append(", is pinching: ").Append(m_isPinching) - .Append(", pinch distance: ").Append(minDistance); - DEBUG(sb); + if (printIntervalLog) + { + DEBUG($"{(isLeft ? "Left " : "Right ")} {finger.Name()}" + + $" UpdateState() pinch strength: {m_pinchStrength}" + + $", pinch off threshold: {kPinchStrengthOffThreshold}" + + $", is pinching: {m_isPinching}" + + $", pinch distance: {minDistance}"); + } updated = true; } @@ -1207,6 +1176,9 @@ namespace VIVE.OpenXR.Toolkits.RealisticHandInteraction /// The FingerData of the finger. public void Update(FingerData thumb, FingerData finger) { + logFrame++; + logFrame %= 300; + printIntervalLog = logFrame == 0; if (!Validate()) { return; } this.thumbData = thumb; @@ -1901,15 +1873,6 @@ namespace VIVE.OpenXR.Toolkits.RealisticHandInteraction [Serializable] public class HandGrabbableEvent : UnityEvent { }; - [Obsolete("Please use HandGrabberEvent instead.")] - public delegate void OnBeginGrab(IGrabber grabber); - [Obsolete("Please use HandGrabberEvent instead.")] - public delegate void OnEndGrab(IGrabber grabber); - [Obsolete("Please use HandGrabbableEvent instead.")] - public delegate void OnBeginGrabbed(IGrabbable grabbable); - [Obsolete("Please use HandGrabbableEvent instead.")] - public delegate void OnEndGrabbed(IGrabbable grabbable); - /// /// Interface for objects capable of grabbing. /// @@ -1919,15 +1882,6 @@ namespace VIVE.OpenXR.Toolkits.RealisticHandInteraction bool isGrabbing { get; } HandGrabberEvent onBeginGrab { get; } HandGrabberEvent onEndGrab { get; } - - [Obsolete("Please use onBeginGrab instead.")] - void AddBeginGrabListener(OnBeginGrab handler); - [Obsolete("Please use onBeginGrab instead.")] - void RemoveBeginGrabListener(OnBeginGrab handler); - [Obsolete("Please use onEndGrab instead.")] - void AddEndGrabListener(OnEndGrab handler); - [Obsolete("Please use onEndGrab instead.")] - void RemoveEndGrabListener(OnEndGrab handler); } /// @@ -1950,15 +1904,6 @@ namespace VIVE.OpenXR.Toolkits.RealisticHandInteraction HandGrabbableEvent onBeginGrabbed { get; } HandGrabbableEvent onEndGrabbed { get; } void SetGrabber(IGrabber grabber); - - [Obsolete("Please use onBeginGrabbed instead.")] - void AddBeginGrabbedListener(OnBeginGrabbed handler); - [Obsolete("Please use onBeginGrabbed instead.")] - void RemoveBeginGrabbedListener(OnBeginGrabbed handler); - [Obsolete("Please use onEndGrabbed instead.")] - void AddEndGrabbedListener(OnEndGrabbed handler); - [Obsolete("Please use onEndGrabbed instead.")] - void RemoveEndGrabbedListener(OnEndGrabbed handler); } /// diff --git a/com.htc.upm.vive.openxr/Runtime/Toolkits/RealisticHandInteraction(experimental)/Scripts/HandMeshManager.cs b/com.htc.upm.vive.openxr/Runtime/Toolkits/RealisticHandInteraction(experimental)/Scripts/HandMeshManager.cs index 4b7725a..0dd48d2 100644 --- a/com.htc.upm.vive.openxr/Runtime/Toolkits/RealisticHandInteraction(experimental)/Scripts/HandMeshManager.cs +++ b/com.htc.upm.vive.openxr/Runtime/Toolkits/RealisticHandInteraction(experimental)/Scripts/HandMeshManager.cs @@ -2,6 +2,7 @@ using System; using System.Collections.Generic; using System.Linq; using UnityEngine; +using VIVE.OpenXR.Toolkits.Common; namespace VIVE.OpenXR.Toolkits.RealisticHandInteraction { @@ -50,6 +51,7 @@ namespace VIVE.OpenXR.Toolkits.RealisticHandInteraction [SerializeField] private Transform[] m_HandJoints = new Transform[k_JointCount]; + private SkinnedMeshRenderer skinnedMeshRenderer = null; private const int k_JointCount = (int)JointType.Count; private const int k_RootId = (int)JointType.Wrist; private bool updateRoot = false; @@ -77,6 +79,8 @@ namespace VIVE.OpenXR.Toolkits.RealisticHandInteraction MeshHandPose meshHandPose = transform.gameObject.AddComponent(); meshHandPose.SetHandMeshRenderer(this); + + skinnedMeshRenderer = transform.GetComponentInChildren(); } private void OnDisable() @@ -95,9 +99,9 @@ namespace VIVE.OpenXR.Toolkits.RealisticHandInteraction private void Update() { - HandData handData = CachedHand.Get(isLeft); - EnableHandModel(handData.isTracked); - if (!handData.isTracked) { return; } + bool isTracked = VIVEInput.IsHandTracked(isLeft ? Common.Handedness.Left : Common.Handedness.Right); + EnableHandModel(isTracked); + if (!isTracked) { return; } //if (m_UseRuntimeModel || (!m_UseRuntimeModel && m_UseScale)) //{ @@ -118,22 +122,23 @@ namespace VIVE.OpenXR.Toolkits.RealisticHandInteraction } if (!updateRoot) { - Vector3 rootPosition = Vector3.zero; - Quaternion rootRotation = Quaternion.identity; - handData.GetJointPosition((JointType)k_RootId, ref rootPosition); - handData.GetJointRotation((JointType)k_RootId, ref rootRotation); - - m_HandJoints[k_RootId].position = m_HandJoints[k_RootId].parent.position + rootPosition; - m_HandJoints[k_RootId].rotation = m_HandJoints[k_RootId].parent.rotation * rootRotation; + VIVEInput.GetJointPose(isLeft ? Common.Handedness.Left : Common.Handedness.Right, HandJointType.Wrist, out Pose jointPose); + m_HandJoints[k_RootId].localPosition = jointPose.position; + m_HandJoints[k_RootId].localRotation = jointPose.rotation; } for (int i = 0; i < m_HandJoints.Length; i++) { if (m_HandJoints[i] == null || i == k_RootId) { continue; } - Quaternion jointRotation = Quaternion.identity; - handData.GetJointRotation((JointType)i, ref jointRotation); - m_HandJoints[i].rotation = m_HandJoints[k_RootId].parent.rotation * jointRotation; + VIVEInput.GetJointPose(isLeft ? Common.Handedness.Left : Common.Handedness.Right, (HandJointType)i, out Pose jointPose); + m_HandJoints[i].rotation = m_HandJoints[k_RootId].parent.rotation * jointPose.rotation; + } + + if (VIVERig.Instance) + { + m_HandJoints[k_RootId].rotation = VIVERig.Instance.transform.rotation * m_HandJoints[k_RootId].localRotation; + m_HandJoints[k_RootId].position = VIVERig.Instance.transform.position + VIVERig.Instance.transform.rotation * m_HandJoints[k_RootId].localPosition; } if (isGrabbing) @@ -343,6 +348,11 @@ namespace VIVE.OpenXR.Toolkits.RealisticHandInteraction if (m_HandJoints[k_RootId].gameObject.activeSelf != enable) { m_HandJoints[k_RootId].gameObject.SetActive(enable); + + if (skinnedMeshRenderer) + { + skinnedMeshRenderer.enabled = enable; + } } } diff --git a/com.htc.upm.vive.openxr/Runtime/Toolkits/RealisticHandInteraction(experimental)/Scripts/HandPose/HandPoseProvider.cs b/com.htc.upm.vive.openxr/Runtime/Toolkits/RealisticHandInteraction(experimental)/Scripts/HandPose/HandPoseProvider.cs index 5c7d8f6..bdee645 100644 --- a/com.htc.upm.vive.openxr/Runtime/Toolkits/RealisticHandInteraction(experimental)/Scripts/HandPose/HandPoseProvider.cs +++ b/com.htc.upm.vive.openxr/Runtime/Toolkits/RealisticHandInteraction(experimental)/Scripts/HandPose/HandPoseProvider.cs @@ -83,11 +83,25 @@ namespace VIVE.OpenXR.Toolkits.RealisticHandInteraction { if (!HandPoseMap.ContainsKey(poseType)) { + UnityEngine.Object[] handObjects = UnityEngine.Object.FindObjectsOfType(typeof(RealHandPose)); + for (int i = 0; i < handObjects.Length; i++) + { + UnityEngine.Object handObject = handObjects[i]; + if (handObject is RealHandPose realHand && + (realHand.isLeft ? poseType == HandPoseType.HAND_LEFT : poseType == HandPoseType.HAND_RIGHT)) + { + realHand.SetType(poseType); + RegisterHandPose(poseType, realHand); + return realHand; + } + } + GameObject handPoseObject = new GameObject(poseName); - RealHandPose realHandPose = handPoseObject.AddComponent(); - realHandPose.SetType(poseType); - RegisterHandPose(poseType, realHandPose); - return realHandPose; + RealHandPose newRealHand = handPoseObject.AddComponent(); + newRealHand.SetType(poseType); + RegisterHandPose(poseType, newRealHand); + return newRealHand; + } return HandPoseMap[poseType]; } diff --git a/com.htc.upm.vive.openxr/Runtime/Toolkits/RealisticHandInteraction(experimental)/Scripts/HandPose/RealHandPose.cs b/com.htc.upm.vive.openxr/Runtime/Toolkits/RealisticHandInteraction(experimental)/Scripts/HandPose/RealHandPose.cs index de31331..9832ebe 100644 --- a/com.htc.upm.vive.openxr/Runtime/Toolkits/RealisticHandInteraction(experimental)/Scripts/HandPose/RealHandPose.cs +++ b/com.htc.upm.vive.openxr/Runtime/Toolkits/RealisticHandInteraction(experimental)/Scripts/HandPose/RealHandPose.cs @@ -7,7 +7,7 @@ namespace VIVE.OpenXR.Toolkits.RealisticHandInteraction { [SerializeField] private Handedness m_Handedness; - private bool isLeft => m_Handedness == Handedness.Left; + public bool isLeft => m_Handedness == Handedness.Left; private bool keepUpdate = false; protected override void OnEnable() @@ -66,8 +66,8 @@ namespace VIVE.OpenXR.Toolkits.RealisticHandInteraction { if (handData.GetJointPosition((JointType)i, ref position) && handData.GetJointRotation((JointType)i, ref rotation)) { - m_Position[i] = position; - m_Rotation[i] = rotation; + m_Position[i] = transform.position + transform.rotation * position; + m_Rotation[i] = transform.rotation * rotation; m_LocalPosition[i] = position; m_LocalRotation[i] = rotation; } diff --git a/com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator.meta b/com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator.meta new file mode 100644 index 0000000..2f889b8 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1695418a852690c43b0206d5f2b54abd +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts.meta b/com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts.meta new file mode 100644 index 0000000..5898686 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3be1cbe32bf01284f9038c49e248393a +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/Helper.meta b/com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/Helper.meta new file mode 100644 index 0000000..ef945d0 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/Helper.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 67f99d00d315f5247a283247f1d1a046 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/Helper/AndroidProcessHelper.cs b/com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/Helper/AndroidProcessHelper.cs new file mode 100644 index 0000000..a956dec --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/Helper/AndroidProcessHelper.cs @@ -0,0 +1,82 @@ +// Copyright HTC Corporation All Rights Reserved. + +using System; +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using UnityEngine; +using UnityEngine.Android; + +namespace VIVE.OpenXR.Toolkits.Spectator.Helper +{ + public static class AndroidProcessHelper + { + private static AndroidJavaObject _activity; + + public static AndroidJavaObject Activity + { + get + { + if (_activity != null) + { + return _activity; + } + + var unityPlayer = new AndroidJavaClass(ANDROID_CLASS_UNITY_PLAYER); + _activity = unityPlayer.GetStatic("currentActivity"); + + return _activity; + } + } + + // Reference: https://stackoverflow.com/q/58728596/10467387 + public static IEnumerator RequestPermission(Dictionary permissions) + { + var permissionGranted = Enumerable.Repeat(false, permissions.Count).ToList(); + var permissionAsked = Enumerable.Repeat(false, permissions.Count).ToList(); + var permissionAction = new List(); + + for (var i = 0; i < permissions.Count; i++) + { + int currentCount = i; + (string permission, PermissionCallbacks permissionCallbacks) = permissions.ElementAt(currentCount); + permissionAction.Add(() => + { + permissionGranted[currentCount] = Permission.HasUserAuthorizedPermission(permission); + if (permissionGranted[currentCount] || permissionAsked[currentCount]) + { + return; + } + + Permission.RequestUserPermission(permission, permissionCallbacks); + permissionAsked[currentCount] = true; + }); + } + + for (var i = 0; i < permissions.Count;) + { + permissionAction[i].Invoke(); + if (permissionAsked[i]) + { + i++; + } + + yield return new WaitForEndOfFrame(); + } + } + + public const string ANDROID_CLASS_UNITY_PLAYER = "com.unity3d.player.UnityPlayer"; + public const string ANDROID_CLASS_MEDIA_STORE_IMAGE_MEDIA = "android.provider.MediaStore$Images$Media"; + public const string ANDROID_CLASS_GRAPHICS_BITMAP_FACTORY = "android.graphics.BitmapFactory"; + public const string ANDROID_CLASS_GRAPHICS_BITMAP_COMPRESS_FORMAT = "android.graphics.Bitmap$CompressFormat"; + public const string ANDROID_CLASS_OS_ENVIRONMENT = "android.os.Environment"; + public const string ANDROID_CLASS_OS_BUILD_VERSION = "android.os.Build$VERSION"; + public const string ANDROID_CLASS_CONTENT_INTENT = "android.content.Intent"; + public const string ANDROID_CLASS_CONTENT_VALUES = "android.content.ContentValues"; + public const string ANDROID_CLASS_NET_URI = "android.net.Uri"; + public const string JAVA_CLASS_IO_FILE = "java.io.File"; + public const string JAVA_CLASS_IO_OUTPUTSTREAM = "java.io.OutputStream"; + public const string JAVA_CLASS_IO_BYTEARRAYOUTPUTSTREAM = "java.io.ByteArrayOutputStream"; + public const string JAVA_CLASS_IO_BYTEARRAYINPUTSTREAM = "java.io.ByteArrayInputStream"; + } +} \ No newline at end of file diff --git a/com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/Helper/AndroidProcessHelper.cs.meta b/com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/Helper/AndroidProcessHelper.cs.meta new file mode 100644 index 0000000..e770759 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/Helper/AndroidProcessHelper.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 52cbc1ad9d288d348854b4e81d8aa57c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/Helper/EditorHelper.cs b/com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/Helper/EditorHelper.cs new file mode 100644 index 0000000..17c3d9a --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/Helper/EditorHelper.cs @@ -0,0 +1,63 @@ +// Copyright HTC Corporation All Rights Reserved. + +#if UNITY_EDITOR + +using System.Text.RegularExpressions; +using UnityEditor; +using UnityEngine; + +namespace VIVE.OpenXR.Toolkits.Spectator.Helper +{ + public static class EditorHelper + { + // Microsoft definition + // https://learn.microsoft.com/en-us/dotnet/api/microsoft.entityframeworkcore.metadata.conventions.backingfieldconvention?view=efcore-7.0#definition + private const string BackingFieldConventionPrefix = "<"; + private const string BackingFieldConventionEndString = "k__BackingField"; + + public static void ShowDefaultInspector(SerializedObject obj) + { + EditorGUI.BeginChangeCheck(); + obj.UpdateIfRequiredOrScript(); + + SerializedProperty iterator = obj.GetIterator(); + for (bool enterChildren = true; iterator.NextVisible(enterChildren); enterChildren = false) + { + using (new EditorGUI.DisabledScope("m_Script" == iterator.propertyPath)) + { + string originalLabelText = iterator.name; + if (originalLabelText.EndsWith(BackingFieldConventionEndString)) + { + string fixLabelText = Regex.Replace( + originalLabelText.Substring( + 1, + originalLabelText.Length - 1 - BackingFieldConventionPrefix.Length - + BackingFieldConventionEndString.Length), + "([a-z])([A-Z])", + "$1 $2"); + + EditorGUILayout.PropertyField( + property: iterator, + label: new GUIContent(fixLabelText), + includeChildren: true); + } + else + { + EditorGUILayout.PropertyField(iterator, true); + } + } + } + + obj.ApplyModifiedProperties(); + EditorGUI.EndChangeCheck(); + } + + public static string PropertyName(string propertyName) + { + // Microsoft definition + // https://learn.microsoft.com/en-us/dotnet/api/microsoft.entityframeworkcore.metadata.conventions.backingfieldconvention?view=efcore-7.0#definition + return $"<{propertyName}>k__BackingField"; + } + } +} +#endif \ No newline at end of file diff --git a/com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/Helper/EditorHelper.cs.meta b/com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/Helper/EditorHelper.cs.meta new file mode 100644 index 0000000..9f7a592 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/Helper/EditorHelper.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f2fb164a4bcc8f04e9337299f4c030d0 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/Helper/IOProcessHelper.cs b/com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/Helper/IOProcessHelper.cs new file mode 100644 index 0000000..327409a --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/Helper/IOProcessHelper.cs @@ -0,0 +1,163 @@ +// Copyright HTC Corporation All Rights Reserved. + +using System; +using System.Collections.Generic; +using System.IO; +using System.Threading.Tasks; +using UnityEngine; +using Debug = UnityEngine.Debug; + +namespace VIVE.OpenXR.Toolkits.Spectator.Helper +{ + public static class IOProcessHelper + { +#if UNITY_ANDROID + /// + /// Get the path of pictures folder in external storage in Android. + /// + /// Return Pictures folder directory if get successfully, otherwise return empty string + public static string GetAndroidExternalStoragePicturesDirectory() + { + Debug.Log("GetAndroidExternalStoragePicturesDirectory called"); + + string path = string.Empty; + + try + { + // Init the class in java code + using (AndroidJavaClass environment = + new AndroidJavaClass(AndroidProcessHelper.ANDROID_CLASS_OS_ENVIRONMENT)) + { + // Call static method to get the path of pictures folder in external storage + path = environment.CallStatic("getExternalStoragePublicDirectory", + environment.GetStatic("DIRECTORY_PICTURES")) + .Call("getAbsolutePath"); + } + } + catch (Exception e) + { + Debug.LogError($"Error on getting the path of pictures folder in external storage in Android: {e}"); + } + + Debug.Log($"Get path in GetAndroidExternalStoragePicturesDirectory: {path}"); + + return path; + } + + public static string GetAndroidPrimaryExternalStorageDirectory() + { + Debug.Log("GetAndroidPrimaryExternalStorageDirectory called"); + + string path = string.Empty; + + try + { + using (AndroidJavaClass environment = + new AndroidJavaClass(AndroidProcessHelper.ANDROID_CLASS_OS_ENVIRONMENT)) + { + path = environment.CallStatic("getExternalStorageDirectory") + .Call("getAbsolutePath"); + } + } + catch (Exception e) + { + Debug.LogError($"Error on getting the path of pictures folder in external storage in Android: {e}"); + } + + Debug.Log($"Get path in GetAndroidPrimaryExternalStorageDirectory: {path}"); + + return path; + } + + public static Dictionary GetAndroidAllExternalStorageDirectory() + { + Debug.Log("GetAndroidAllExternalStorageDirectory called"); + + // Get all available external file directories (emulated or removable (aka sd card)) + AndroidJavaObject[] externalFilesDirectories = + AndroidProcessHelper.Activity.Call("getExternalFilesDirs", (object)null); + + var result = new Dictionary(); + using (var environment = new AndroidJavaClass(AndroidProcessHelper.ANDROID_CLASS_OS_ENVIRONMENT)) + { + foreach (var item in externalFilesDirectories) + { + string directory = item.Call("getAbsolutePath"); + Debug.Log($"Find the path in GetAndroidExternalStorageDirectory: {directory}"); + + if (environment.CallStatic("isExternalStorageRemovable", item)) + { + result.Add(ExternalStorageType.Removable, directory); + } + else if (environment.CallStatic("isExternalStorageEmulated", item)) + { + result.Add(ExternalStorageType.Emulated, directory); + } + } + } + + return result; + } + + public enum ExternalStorageType + { + Removable, + Emulated + } +#endif + + public static Task SaveByteDataToDisk(byte[] bytes, string saveDirectory, string fileNameWithFileExtension) + { + Directory.CreateDirectory(saveDirectory); + + try + { + string fullPath = Path.Combine(saveDirectory, fileNameWithFileExtension); + System.IO.File.WriteAllBytes(fullPath, bytes); + } + catch (Exception e) + { + Debug.LogError($"Error on writing byte data to disk: {e}"); + } + + return Task.CompletedTask; + } + + public static byte[] OpenFile(string path) + { + if (!File.Exists(path)) + { + Debug.LogError("File not exist: " + path); + return null; + } + + byte[] data = File.ReadAllBytes(path); + if (data.Length == 0) + { + Debug.LogError("File is empty: " + path); + return null; + } + + return data; + } + + public static byte[] OpenJpeg(string path) + { + byte[] data = OpenFile(path); + + if (data == null) + { + Debug.LogError("Open Jpeg error"); + return null; + } + + if (data[0] != 0xFF || data[1] != 0xD8) + { + Debug.LogError("File is not JPEG: " + path); + return null; + } + + return data; + } + } +} \ No newline at end of file diff --git a/com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/Helper/IOProcessHelper.cs.meta b/com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/Helper/IOProcessHelper.cs.meta new file mode 100644 index 0000000..c11d782 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/Helper/IOProcessHelper.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d28163e4ec0b605478774041d1222262 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/Helper/LayerMaskHelper.cs b/com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/Helper/LayerMaskHelper.cs new file mode 100644 index 0000000..66c6a64 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/Helper/LayerMaskHelper.cs @@ -0,0 +1,102 @@ +// Copyright HTC Corporation All Rights Reserved. + +using UnityEngine; +#if UNITY_EDITOR +using UnityEditor; +using UnityEditorInternal; +#endif + +namespace VIVE.OpenXR.Toolkits.Spectator.Helper +{ + public static class LayerMaskHelper + { + public static bool HasLayer(this LayerMask layerMask, int layer) + { + if (layerMask == (layerMask | (1 << layer))) + { + return true; + } + + return false; + } + + public static bool[] HasLayers(this LayerMask layerMask) + { + var hasLayers = new bool[32]; + + for (int i = 0; i < 32; i++) + { + if (layerMask == (layerMask | (1 << i))) + { + Debug.Log($"LayerMask.LayerToName = {LayerMask.LayerToName(i)}"); + hasLayers[i] = true; + } + } + + return hasLayers; + } + +#if UNITY_EDITOR + public static class LayerMaskDrawer + { + public static int LayerMaskField(string label, int layermask) + { + return FieldToLayerMask(EditorGUILayout.MaskField(label, LayerMaskToField(layermask), + InternalEditorUtility.layers)); + } + + public static int LayerMaskField(Rect position, string label, int layermask) + { + return FieldToLayerMask(EditorGUI.MaskField(position, label, LayerMaskToField(layermask), + InternalEditorUtility.layers)); + } + + /// + /// Converts field LayerMask values to in game LayerMask values + /// + /// + /// + private static int FieldToLayerMask(int field) + { + if (field == -1) return -1; + int mask = 0; + var layers = InternalEditorUtility.layers; + for (int c = 0; c < layers.Length; c++) + { + if ((field & (1 << c)) != 0) + { + mask |= 1 << LayerMask.NameToLayer(layers[c]); + } + else + { + mask &= ~(1 << LayerMask.NameToLayer(layers[c])); + } + } + + return mask; + } + + /// + /// Converts in game LayerMask values to field LayerMask values + /// + /// + /// + private static int LayerMaskToField(int mask) + { + if (mask == -1) return -1; + int field = 0; + var layers = InternalEditorUtility.layers; + for (int c = 0; c < layers.Length; c++) + { + if ((mask & (1 << LayerMask.NameToLayer(layers[c]))) != 0) + { + field |= 1 << c; + } + } + + return field; + } + } +#endif + } +} \ No newline at end of file diff --git a/com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/Helper/LayerMaskHelper.cs.meta b/com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/Helper/LayerMaskHelper.cs.meta new file mode 100644 index 0000000..f500963 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/Helper/LayerMaskHelper.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 05c260c7d911cff49b0333f5ba628420 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/Helper/SpectatorCameraHelper.cs b/com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/Helper/SpectatorCameraHelper.cs new file mode 100644 index 0000000..c92d65f --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/Helper/SpectatorCameraHelper.cs @@ -0,0 +1,516 @@ +// Copyright HTC Corporation All Rights Reserved. + +using System.IO; +using UnityEngine; + +namespace VIVE.OpenXR.Toolkits.Spectator.Helper +{ + public class SpectatorCameraHelper + { + # region Attribute value range + + public const float VERTICAL_FOV_MIN = 10f; + public const float VERTICAL_FOV_MAX = 130f; + + public const float FRUSTUM_LINE_WIDTH_MIN = .02f; + public const float FRUSTUM_LINE_WIDTH_MAX = .05f; + + public const float FRUSTUM_CENTER_LINE_WIDTH_MIN = .01f; + public const float FRUSTUM_CENTER_LINE_WIDTH_MAX = .04f; + + public const int PANORAMA_RESOLUTION_MIN = 512; + public const int PANORAMA_RESOLUTION_MAX = 4096; + + public const int SMOOTH_CAMERA_MOVEMENT_MIN = 8; + public const int SMOOTH_CAMERA_MOVEMENT_MAX = 16; + + public const float COMPARE_FLOAT_SUPER_SMALL_THRESHOLD = .001f; + public const float COMPARE_FLOAT_EXTRA_SMALL_THRESHOLD = .01f; + public const float COMPARE_FLOAT_SMALL_THRESHOLD = .1f; + public const float COMPARE_FLOAT_MEDIUM_THRESHOLD = 1f; + public const float COMPARE_FLOAT_LARGE_THRESHOLD = 10f; + + public const float INTERVAL_SECOND_GET_SPECTATOR_HANDLER = .5f; + public const float MAX_SECOND_GET_SPECTATOR_HANDLER = 5f; + + public const float INTERVAL_SECOND_INTERNAL_SPECTATOR_CAMERA = 1f; + public const float MAX_SECOND_GET_INTERNAL_SPECTATOR_CAMERA = 2f; + + # endregion + + public static readonly Vector3 SpectatorCameraSpherePrefabScaleDefault = new Vector3(.08f, .08f, .08f); + + #region Attribute default value definition + + public const int TEXTURE_WIDTH = 1920; + public const int TEXTURE_HEIGHT = 1080; + + public const CameraSourceRef CAMERA_SOURCE_REF_DEFAULT = CameraSourceRef.Hmd; + public static readonly Vector3 PositionDefault = new Vector3(0f, 1.7f, 0f); + public static readonly Quaternion RotationDefault = Quaternion.identity; + public static readonly LayerMask LayerMaskDefault = -1; + + public const bool IS_SMOOTH_CAMERA_MOVEMENT_DEFAULT = true; + public const int SMOOTH_CAMERA_MOVEMENT_SPEED_DEFAULT = 10; + + public const bool IS_FRUSTUM_SHOWED_DEFAULT = false; + + public const float VERTICAL_FOV_DEFAULT = 60f; + + public const SpectatorCameraPanoramaResolution PANORAMA_RESOLUTION_DEFAULT = + SpectatorCameraPanoramaResolution._2048; + + public const TextureProcessHelper.PictureOutputFormat PANORAMA_OUTPUT_FORMAT_DEFAULT = + TextureProcessHelper.PictureOutputFormat.PNG; + + public const TextureProcessHelper.PanoramaType PANORAMA_TYPE_DEFAULT = + TextureProcessHelper.PanoramaType.Monoscopic; + + public const float STEREO_SEPARATION_DEFAULT = 0.065f; + + public const FrustumLineCount FRUSTUM_LINE_COUNT_DEFAULT = + FrustumLineCount.Four; + + public const FrustumCenterLineCount FRUSTUM_CENTER_LINE_COUNT_DEFAULT = + FrustumCenterLineCount.Center; + + public const float FRUSTUM_LINE_WIDTH_DEFAULT = .02f; + public const float FRUSTUM_CENTER_LINE_WIDTH_DEFAULT = .01f; + + public const float FRUSTUM_LINE_BEGIN_DEFAULT = .3f; + + // Define by Unity: https://docs.unity3d.com/ScriptReference/Camera.CalculateFrustumCorners.html + public const int FRUSTUM_OUT_CORNERS_COUNT = 4; + + public static readonly Color LineColorDefault = Color.white; + public const string LINE_SHADER_NAME_DEFAULT = "UI/Default"; + +#if UNITY_EDITOR + public const bool IS_DEBUG_SPECTATOR_CAMERA = true; +#endif + + #endregion + + #region Frustum game object name definition + + public const string FRUSTUM_LINE_ROOT_NAME_DEFAULT = "FrustumLines"; + public const string FRUSTUM_LINE_NAME_PREFIX_DEFAULT = "Frustum"; + public const string FRUSTUM_CENTER_LINE_ROOT_NAME_DEFAULT = "FrustumCenterLines"; + public const string FRUSTUM_CENTER_LINE_NAME_PREFIX_DEFAULT = "FrustumCenter"; + + #endregion + + #region Save file definition + + public const string SAVE_PHOTO360_ALBUM_NAME = "Screenshots"; + + public const string ATTRIBUTE_FILE_PREFIX_NAME = "SpectatorCameraAttribute"; + + public const string ATTRIBUTE_FILE_EXTENSION = "json"; + + #endregion + + /// + /// Load the attribute file from resource folder + /// + /// The corresponding scene name of the attribute file + /// The corresponding gameObject name of the attribute file + /// The attribute data which save in attribute file + /// True if get the attribute data successfully. Otherwise, return false. + public static bool LoadAttributeFileFromResourcesFolder( + in string sceneName, + in string gameObjectName, + out SpectatorCameraAttribute data) + { + Debug.Log("Get spectator camera attribute at resources folder"); + + data = new SpectatorCameraAttribute(); + TextAsset json; + + // Name format: {PREFIX}_{SCENE NAME}_{GAME OBJECT NAME}.json + var fileName = GetSpectatorCameraAttributeFileNamePattern(sceneName, gameObjectName, false); + + try + { + json = Resources.Load(fileName); + } + catch (System.Exception e) + { + Debug.LogWarning("Get attribute data from resources folder fail:"); + Debug.LogWarning($"{e}"); + return false; + } + + if (json == null) + { + Debug.LogWarning("The attribute data at resources folder is empty or null"); + return false; + } + + Debug.Log($"The attribute value is: {json.text}"); + data = JsonUtility.FromJson(json.text); + + if (data == null) + { + Debug.LogWarning("Convert attribute data from resources folder fail"); + return false; + } + + Debug.Log("Get attribute data from resources folder successful"); + return true; + } + + /// + /// Load the attribute file from full path + /// + /// Full path + /// The attribute data which save in persistent folder + /// True if get the attribute data successfully. Otherwise, return false. + public static bool LoadAttributeFileFromFolder( + string fullPathWithFileNameAndExtension, + out SpectatorCameraAttribute data) + { + Debug.Log($"Get spectator camera attribute at {fullPathWithFileNameAndExtension}"); + + return LoadAttributeData(fullPathWithFileNameAndExtension, out data); + } + + /// + /// Load the attribute file from persistent folder + /// + /// The corresponding scene name of the attribute file + /// The corresponding gameObject name of the attribute file + /// The attribute data which save in persistent folder + /// True if get the attribute data successfully. Otherwise, return false. + public static bool LoadAttributeFileFromPersistentFolder( + in string sceneName, + in string gameObjectName, + out SpectatorCameraAttribute data) + { + // Name format: {PREFIX}_{SCENE NAME}_{GAME OBJECT NAME}.json + var fileNameWithExtension = GetSpectatorCameraAttributeFileNamePattern(sceneName, gameObjectName); + + var attributeFileDirectoryAndFileNameWithExtension = + Path.Combine(Application.persistentDataPath, fileNameWithExtension); + + Debug.Log($"Get spectator camera attribute at {attributeFileDirectoryAndFileNameWithExtension}"); + + return LoadAttributeData(attributeFileDirectoryAndFileNameWithExtension, out data); + } + +#if UNITY_EDITOR + /// + /// Save the spectator camera attribute as a JSON file to the resources folder located in the Unity project's assets folder. + /// + public static void SaveAttributeData2ResourcesFolder( + in string sceneName, + in string gameObjectName, + in SpectatorCameraAttribute data) + { + // Name format: {PREFIX}_{SCENE NAME}_{GAME OBJECT NAME}.json + var fileNameWithExtension = GetSpectatorCameraAttributeFileNamePattern(sceneName, gameObjectName); + string resourcesFolderPath = Path.Combine(Application.dataPath, "Resources"); + SaveAttributeData(resourcesFolderPath, fileNameWithExtension, data); + } +#endif + + /// + /// Save the spectator camera attribute as a JSON file to a persistent folder. + /// + public static void SaveAttributeData2PersistentFolder( + in string sceneName, + in string gameObjectName, + in SpectatorCameraAttribute data) + { + // Name format: {PREFIX}_{SCENE NAME}_{GAME OBJECT NAME}.json + var fileNameWithExtension = GetSpectatorCameraAttributeFileNamePattern(sceneName, gameObjectName); + + SaveAttributeData(Application.persistentDataPath, fileNameWithExtension, data); + } + + /// + /// Load the spectator camera attribute as a JSON file on disk. + /// + /// The path (string) that include directory, file name and extension + /// The data of spectator camera attribute + /// True if get the attribute data successfully. Otherwise, return false. + private static bool LoadAttributeData( + string fullPathWithFileNameAndExtension, + out SpectatorCameraAttribute data) + { + data = new SpectatorCameraAttribute(); + string json; + try + { + json = File.ReadAllText(fullPathWithFileNameAndExtension); + } + catch (System.Exception e) + { + Debug.LogWarning($"Get attribute data from {fullPathWithFileNameAndExtension} failed: {e}"); + return false; + } + + if (string.IsNullOrEmpty(json)) + { + Debug.LogWarning($"The attribute data at {fullPathWithFileNameAndExtension} is empty or null"); + return false; + } + + Debug.Log($"The attribute value is: {json}"); + data = JsonUtility.FromJson(json); + + if (data == null) + { + Debug.LogWarning($"Convert attribute data from {fullPathWithFileNameAndExtension} failed"); + return false; + } + + Debug.Log($"Get attribute data from {fullPathWithFileNameAndExtension} successful"); + return true; + } + + /// + /// Save the spectator camera attribute as a JSON file on disk. + /// + /// The directory that the spectator camera attribute (JSON file) will save to + /// The file name of the spectator camera attribute (JSON file) + /// The data of spectator camera attribute + private static void SaveAttributeData( + in string saveFileDirectory, + in string saveFileNameWithExtension, + in SpectatorCameraAttribute data) + { + if (string.IsNullOrEmpty(saveFileDirectory) || string.IsNullOrEmpty(saveFileNameWithExtension)) + { + Debug.LogError("The saving file directory or name is null or empty"); + return; + } + + string fullPath = Path.Combine(saveFileDirectory, saveFileNameWithExtension); + + // Convert to string format + string json = JsonUtility.ToJson(data); + + // Make sure the file path is exist + if (!Directory.Exists(saveFileDirectory)) + { + Directory.CreateDirectory(saveFileDirectory); + } + + File.WriteAllText(fullPath, json); + + Debug.Log($"The configuration save at {fullPath}"); + } + + public static string GetSpectatorCameraAttributeFileNamePattern( + in string sceneName, + in string gameObjectName, + bool withExtension = true) + { + var fileNamePattern = $"{ATTRIBUTE_FILE_PREFIX_NAME}_{sceneName}_{gameObjectName}"; + if (withExtension) + { + fileNamePattern += $".{ATTRIBUTE_FILE_EXTENSION}"; + } + + return fileNamePattern; + } + + /// + /// Check the panorama resolution is power of two or not. If not, convert to power of two. + /// + /// The panorama resolution + /// + public static int CheckAndConvertPanoramaResolution(in int inputResolution) + { + int result; + + // Check is power of two + if ((inputResolution != 0) && ((inputResolution & (inputResolution - 1)) == 0)) + { + result = Mathf.Clamp(inputResolution, PANORAMA_RESOLUTION_MIN, PANORAMA_RESOLUTION_MAX); + } + else + { + // If not power of two, convert to power of two + int clampInputValue = Mathf.Clamp(inputResolution, PANORAMA_RESOLUTION_MIN, PANORAMA_RESOLUTION_MAX); + var base2LogarithmOfClampInputValue = (int)System.Math.Log(clampInputValue, 2); + + var base2LogarithmOfClampInputValueLowerStepValue = + (int)System.Math.Pow(2, base2LogarithmOfClampInputValue); + var base2LogarithmOfClampInputValueUpperStepValue = + (int)System.Math.Pow(2, base2LogarithmOfClampInputValue + 1); + + // Check which one is closer + if (clampInputValue - base2LogarithmOfClampInputValueLowerStepValue <= + base2LogarithmOfClampInputValueUpperStepValue - clampInputValue) + { + result = base2LogarithmOfClampInputValueLowerStepValue; + } + else + { + result = base2LogarithmOfClampInputValueUpperStepValue; + } + } + + return result; + } + + #region Functions of changing camera culling mask + + /// + /// Set the layer that the camera can watch + /// + /// The camera culling mask + /// The layer number that you want to set the camera can watch + /// The new camera culling mask after modify + public static LayerMask SetCameraVisualizationLayer(in LayerMask targetCullingMask, in int shownLayer) + { + LayerMask targetLayerMaskAfterModify = targetCullingMask; + targetLayerMaskAfterModify |= 1 << shownLayer; + return targetLayerMaskAfterModify; + } + + /// + /// Set the layer that the camera cannot watch + /// + /// The camera culling mask + /// The layer number that you want to set the camera cannot watch + /// The new camera culling mask after modify + public static LayerMask SetCameraHiddenLayer(in LayerMask targetCullingMask, in int hiddenLayer) + { + LayerMask targetLayerMaskAfterModify = targetCullingMask; + targetLayerMaskAfterModify &= ~(1 << hiddenLayer); + return targetLayerMaskAfterModify; + } + + /// + /// Inverse specific layer in camera culling mask + /// + /// The camera culling mask + /// The layer number that you want to inverse + /// The new camera culling mask after modify + public static LayerMask InverseCameraLayer(in LayerMask targetCullingMask, in int inverseLayer) + { + LayerMask targetLayerMaskAfterModify = targetCullingMask; + targetLayerMaskAfterModify ^= 1 << inverseLayer; + return targetLayerMaskAfterModify; + } + + #endregion + + [System.Serializable] + public class SpectatorCameraAttribute + { + #region Serializable class field + + public CameraSourceRef source; + public Vector3 position; + public Quaternion rotation; + public LayerMask layerMask; + public bool isSmoothCameraMovement; + public int smoothCameraMovementSpeed; + public bool isFrustumShowed; + public float verticalFov; + public SpectatorCameraPanoramaResolution panoramaResolution; + public TextureProcessHelper.PictureOutputFormat panoramaOutputFormat; + public TextureProcessHelper.PanoramaType panoramaOutputType; + public FrustumLineCount frustumLineCount; + public FrustumCenterLineCount frustumCenterLineCount; + public float frustumLineWidth; + public float frustumCenterLineWidth; + public Color frustumLineColor; + public Color frustumCenterLineColor; + + #endregion + + #region Constructor + + public SpectatorCameraAttribute() + { + } + + public SpectatorCameraAttribute( + CameraSourceRef source, + Vector3 position, + Quaternion rotation, + LayerMask layerMask, + bool isSmoothCameraMovement, + int smoothCameraMovementSpeed, + bool isFrustumShowed, + float verticalFov, + SpectatorCameraPanoramaResolution panoramaResolution, + TextureProcessHelper.PictureOutputFormat panoramaOutputFormat, + TextureProcessHelper.PanoramaType panoramaOutputType, + FrustumLineCount frustumLineCount, + FrustumCenterLineCount frustumCenterLineCount, + float frustumLineWidth, + float frustumCenterLineWidth, + Color frustumLineColor, + Color frustumCenterLineColor) + { + this.source = source; + this.position = position; + this.rotation = rotation; + this.layerMask = layerMask; + this.isSmoothCameraMovement = isSmoothCameraMovement; + this.smoothCameraMovementSpeed = smoothCameraMovementSpeed; + this.isFrustumShowed = isFrustumShowed; + this.verticalFov = verticalFov; + this.panoramaResolution = panoramaResolution; + this.panoramaOutputFormat = panoramaOutputFormat; + this.panoramaOutputType = panoramaOutputType; + this.frustumLineCount = frustumLineCount; + this.frustumCenterLineCount = frustumCenterLineCount; + this.frustumLineWidth = frustumLineWidth; + this.frustumCenterLineWidth = frustumCenterLineWidth; + this.frustumLineColor = frustumLineColor; + this.frustumCenterLineColor = frustumCenterLineColor; + } + + #endregion + } + + #region Enum definition + + public enum CameraSourceRef + { + Hmd, + Tracker + } + + public enum FrustumLineCount + { + None = 0, + Four = 4, + Eight = 8, + Sixteen = 16, + ThirtyTwo = 32, + OneTwentyEight = 128, + } + + public enum FrustumCenterLineCount + { + None = 0, + Center = 1, + RuleOfThirds = 4, + CenterAndRuleOfThirds = 5, + } + + public enum SpectatorCameraPanoramaResolution + { + _512 = 512, + _1024 = 1024, + _2048 = 2048, + _4096 = 4096 + } + + public enum AttributeFileLocation + { + ResourceFolder, + PersistentFolder + } + + #endregion + } +} \ No newline at end of file diff --git a/com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/Helper/SpectatorCameraHelper.cs.meta b/com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/Helper/SpectatorCameraHelper.cs.meta new file mode 100644 index 0000000..1df3a67 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/Helper/SpectatorCameraHelper.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3136b6864f4cb9c4da5234953d3a75b4 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/Helper/TextureProcessHelper.cs b/com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/Helper/TextureProcessHelper.cs new file mode 100644 index 0000000..812743f --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/Helper/TextureProcessHelper.cs @@ -0,0 +1,1114 @@ +// Copyright HTC Corporation All Rights Reserved. + +using System; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Unity.Collections; +using UnityEngine; +using UnityEngine.Rendering; +using UnityEngine.Experimental.Rendering; +using Debug = UnityEngine.Debug; + +#if UNITY_EDITOR +using UnityEditor; +#endif + +namespace VIVE.OpenXR.Toolkits.Spectator.Helper +{ + public static class TextureProcessHelper + { + private const RenderTextureFormat Photo360RenderTextureFormatDefault = RenderTextureFormat.ARGB32; + private const int Photo360RenderTextureCubemapFaceMaskDefault = 63; // All faces + + /// + /// Convert the RenderTexture to Texture2D + /// + /// The RenderTexture source + /// The Texture2D + public static void RenderTexture2Texture2D( + in RenderTexture renderTexture, + out Texture2D texture2D) + { + RenderTexture.active = renderTexture; + + texture2D = new Texture2D(renderTexture.width, renderTexture.height); + texture2D.ReadPixels(new Rect(0, 0, renderTexture.width, renderTexture.height), 0, 0); + texture2D.Apply(); + + RenderTexture.active = null; + } + + /// + /// Convert the Texture2D to image general format (PNG or JPG) byte array + /// + /// The Texture2D source + /// The image format you want to convert to + /// The byte array of image general format (PNG or JPG) + public static byte[] Texture2DToByteArray( + in Texture2D texture2D, + in PictureOutputFormat imageOutputFormat) + { + byte[] byteArray; + switch (imageOutputFormat) + { + case PictureOutputFormat.JPG: + byteArray = texture2D.EncodeToJPG(); + break; + case PictureOutputFormat.PNG: + byteArray = texture2D.EncodeToPNG(); + break; + default: + Debug.LogWarning("The output format is not supported, will use PNG as default."); + byteArray = texture2D.EncodeToPNG(); + break; + } + + return byteArray; + } + +#if UNITY_ANDROID + /// + /// Convert the Unity Texture2D to Android Bitmap. + /// + /// Unity Texture2D + /// The image format you want to convert to + /// Android Bitmap + public static AndroidJavaObject Texture2DToAndroidBitmap( + in Texture2D texture, + in PictureOutputFormat imageOutputFormat) + { + byte[] encodedTexture; + + switch (imageOutputFormat) + { + case PictureOutputFormat.JPG: + { + encodedTexture = texture.EncodeToJPG(); + if (texture.width / texture.height == 2) + { + encodedTexture = InsertGPanoXmpInJpg(encodedTexture, texture.width, texture.height); + } + } + break; + case PictureOutputFormat.PNG: + { + encodedTexture = texture.EncodeToPNG(); + } + break; + default: + { + Debug.LogError("The output format is not supported, will use PNG as default."); + encodedTexture = texture.EncodeToPNG(); + } + break; + } + + using (var bitmapFactory = + new AndroidJavaClass(AndroidProcessHelper.ANDROID_CLASS_GRAPHICS_BITMAP_FACTORY)) + { + return bitmapFactory.CallStatic( + "decodeByteArray", + encodedTexture, + 0, + encodedTexture.Length); + } + } + + /// + /// Save the Texture2D data to the Android gallery. Please note that this function is only supported on + /// Android API levels less than 29 and has some limitations for saving the image: + /// + /// 1) It does not support saving the image to the specific album. + /// + /// 2) It only supports saving the image to JPG format. + /// + /// + /// The Texture2D you want to save to + /// The image name without file extension + /// The image description + /// Return the URL of the newly created image if an image is saved successfully. Otherwise, return null. + public static string SaveImageToAndroidGallery( + in Texture2D texture2D, + in string imageTitle, + in string imageDescription) + { + const int apiLevelOfAndroidQ = 29; + int buildVersionSdkInt = 0; + using (var buildVersionClass = new AndroidJavaClass(AndroidProcessHelper.ANDROID_CLASS_OS_BUILD_VERSION)) + { + buildVersionSdkInt = buildVersionClass.GetStatic("SDK_INT"); + } + + if (buildVersionSdkInt >= apiLevelOfAndroidQ) + { + Debug.LogWarning( + "This function is only support on Android API level < 29. Will ignore this operation."); + return null; + } + + if (texture2D == null || string.IsNullOrEmpty(imageTitle) || string.IsNullOrEmpty(imageDescription)) + { + Debug.LogError("The input data is not valid. Please check the data and try again."); + return null; + } + + using (var mediaClass = + new AndroidJavaClass(AndroidProcessHelper.ANDROID_CLASS_MEDIA_STORE_IMAGE_MEDIA)) + using (var contentResolver = + AndroidProcessHelper.Activity.Call("getContentResolver")) + { + // Limitation: The Android API "insertImage" will always save + // the image to the default album and save the image as JPG format. + AndroidJavaObject image = Texture2DToAndroidBitmap(texture2D, PictureOutputFormat.JPG); + return mediaClass.CallStatic( + "insertImage", + contentResolver, + image, + imageTitle, + imageDescription); + } + } + + /// + /// Save the image byte data to the Android gallery. + /// The byte data should be encoded to the format that is noted in the enum "PictureOutputFormat." + /// Please note this function needs to be granted the permission of "WRITE_EXTERNAL_STORAGE" + /// if Android API levels are less than 29. + /// + /// The image data which is encoded + /// The image name included its extension + /// The album name that the photo will be saved to + /// The result of image saving. True if saved successfully. Otherwise, return false. + public static bool SaveImageToAndroidGallery( + in byte[] imageData, + in string imageNameWithFileExtension, + in string imageAlbumName = "") + { + const string mediaColumnsTitle = "title"; + const string mediaColumnsDisplayName = "_display_name"; + const string mediaColumnsMimeType = "mime_type"; + const string mediaColumnsRelativePath = "relative_path"; + const string mediaColumnsIsPending = "is_pending"; + const string mediaColumnsDate = "_data"; + const int androidQ = 29; + + int buildVersionSdkInt; + using (var buildVersionClass = new AndroidJavaClass(AndroidProcessHelper.ANDROID_CLASS_OS_BUILD_VERSION)) + { + buildVersionSdkInt = buildVersionClass.GetStatic("SDK_INT"); + } + + Debug.Log("You are using Android API level: " + buildVersionSdkInt); + + if (imageData == null || string.IsNullOrEmpty(imageNameWithFileExtension)) + { + Debug.LogError( + "The input data is not valid. Will ignore this operation and please check the data and try again."); + return false; + } + + AndroidJavaObject currentActivity = AndroidProcessHelper.Activity; + + int fileExtensionIndex = imageNameWithFileExtension.LastIndexOf(".", StringComparison.Ordinal); + if (fileExtensionIndex <= 0) + { + Debug.LogError( + "The file extension get failed. Will ignore this operation and please check the data and try again."); + return false; + } + + string imageNameWithoutFileExtension = imageNameWithFileExtension.Substring(0, fileExtensionIndex); + string fileExtension = imageNameWithFileExtension.Substring(fileExtensionIndex + 1).ToUpper(); + + var mimeType = string.Empty; + foreach (string item in Enum.GetNames(typeof(PictureOutputFormat))) + { + if (fileExtension != item) + { + continue; + } + + mimeType = $"image/{item}"; + break; + } + + if (string.IsNullOrEmpty(mimeType)) + { + Debug.LogError( + "The output format is not supported. Will ignore this operation and please check the data and try again."); + return false; + } + + using (var contentValues = new AndroidJavaObject(AndroidProcessHelper.ANDROID_CLASS_CONTENT_VALUES)) + { + contentValues.Call("put", mediaColumnsTitle, imageNameWithoutFileExtension); + contentValues.Call("put", mediaColumnsDisplayName, imageNameWithFileExtension); + contentValues.Call("put", mediaColumnsMimeType, mimeType); + + using (var contentResolver = currentActivity.Call("getContentResolver")) + { + if (contentResolver == null) + { + Debug.LogError("Cannot get the Android content resolver."); + return false; + } + + var mediaClass = + new AndroidJavaClass(AndroidProcessHelper.ANDROID_CLASS_MEDIA_STORE_IMAGE_MEDIA); + using (var externalContentUri = mediaClass.GetStatic("EXTERNAL_CONTENT_URI")) + { + mediaClass.Dispose(); + if (externalContentUri == null) + { + Debug.LogError("The Android uri of external content is not valid."); + return false; + } + + using (var androidEnvClass = + new AndroidJavaClass(AndroidProcessHelper.ANDROID_CLASS_OS_ENVIRONMENT)) + { + var imageDirectory = androidEnvClass.GetStatic("DIRECTORY_PICTURES"); + if (string.IsNullOrEmpty(imageDirectory)) + { + Debug.LogError("The directory for saving the image is not valid."); + return false; + } + + string relativePath = string.IsNullOrEmpty(imageAlbumName) + ? imageDirectory + : Path.Combine(imageDirectory, imageAlbumName); + + if (buildVersionSdkInt >= androidQ) + { + // New method of Android system (API level >= 29) + Debug.Log("Save image to Android gallery by new method."); + + contentValues.Call("put", mediaColumnsRelativePath, relativePath); + + // An error will occur on some brand of Android system. + // To avoid an error, the part that adds "is_pending" is placed in the try-catch block. + try + { + contentValues.Call("put", mediaColumnsIsPending, 1); + } + catch (Exception e) + { + Debug.LogWarning($"Error on calling put \"is_pending\": {e}."); + } + + using (var insertImageUri = + contentResolver.Call("insert", externalContentUri, + contentValues)) + { + if (insertImageUri == null) + { + Debug.LogError("Insert the image to external content uri failed."); + return false; + } + + try + { + using (var imageFileUri = + contentResolver.Call("openOutputStream", + insertImageUri)) + { + imageFileUri.Call("write", imageData); + imageFileUri.Call("flush"); + imageFileUri.Call("close"); + } + } + catch (Exception e) + { + Debug.LogError($"The image file URI could not be opened: {e}"); + return false; + } + + // An error will occur on some brand of Android system. + // To avoid an error, the part that adds "is_pending" is placed in the try-catch block. + try + { + contentValues.Call("put", mediaColumnsIsPending, 0); + } + catch (Exception e) + { + Debug.LogError($"Error on calling put \"is_pending\": {e}."); + } + + contentResolver.Call("update", insertImageUri, contentValues, null, null); + } + } + else + { + // Old method of Android system (API level < 29) + Debug.Log("Save image to Android gallery by old method."); + + try + { + var imageDirectoryFile = androidEnvClass.CallStatic( + "getExternalStoragePublicDirectory", + imageDirectory); + var imageDirectoryWithAlbumFile = new AndroidJavaObject( + AndroidProcessHelper.JAVA_CLASS_IO_FILE, + imageDirectoryFile, imageAlbumName); + imageDirectoryWithAlbumFile.Call("mkdirs"); + var imageFile = new AndroidJavaObject( + AndroidProcessHelper.JAVA_CLASS_IO_FILE, + imageDirectoryWithAlbumFile, imageNameWithFileExtension); + var imageFileAbsolutePath = imageFile.Call("getAbsolutePath"); + + var fileSourceStream = new MemoryStream(imageData); + FileStream fileOutputStream = System.IO.File.Create(imageFileAbsolutePath); + fileSourceStream.CopyTo(fileOutputStream); + fileOutputStream.Close(); + fileSourceStream.Close(); + + contentValues.Call("put", mediaColumnsDate, imageFileAbsolutePath); + contentResolver.Call("insert", externalContentUri, + contentValues); + + var androidContentIntentClass = + new AndroidJavaClass(AndroidProcessHelper.ANDROID_CLASS_CONTENT_INTENT); + var mediaScanIntent = new AndroidJavaObject( + AndroidProcessHelper.ANDROID_CLASS_CONTENT_INTENT, + androidContentIntentClass.GetStatic("ACTION_MEDIA_SCANNER_SCAN_FILE")); + var androidUriClass = + new AndroidJavaClass(AndroidProcessHelper.ANDROID_CLASS_NET_URI); + var imageFileUri = + androidUriClass.CallStatic("fromFile", imageFile); + mediaScanIntent.Call("setData", imageFileUri); + currentActivity.Call("sendBroadcast", mediaScanIntent); + + // Release all the resources related to Android/Java object + imageDirectoryFile.Dispose(); + imageDirectoryWithAlbumFile.Dispose(); + imageFile.Dispose(); + androidContentIntentClass.Dispose(); + mediaScanIntent.Dispose(); + androidUriClass.Dispose(); + imageFileUri.Dispose(); + } + catch (Exception e) + { + Debug.LogError("Error on saving the image to external storage: " + e); + return false; + } + } + } + } + } + } + + return true; + } +#endif + + /// + /// Capture the 360 photo via the input camera and then output the result to the input RenderTexture. + /// For capture the monoscopic 360 photo, just assign the leftEyeCubemapResult is enough. + /// + /// The camera that you want to capture 360 photo source + /// The 360 photo type + /// Save panoramic photo result + /// Save left eye cubemap result + /// Save right eye cubemap result + public static void Capture360RenderTexture( + in Camera camera, + in PanoramaType panoramaType, + in RenderTexture panoramicPhotoResult, + in RenderTexture leftEyeCubemapResult, + in RenderTexture rightEyeCubemapResult = null) + { + if (panoramaType == PanoramaType.Stereoscopic && + (leftEyeCubemapResult == null || rightEyeCubemapResult == null)) + { + Debug.LogError( + "PanoramaType.Stereoscopic mode need left and right eye RenderTexture but one of them or both is null."); + return; + } + + if (panoramaType == PanoramaType.Monoscopic && leftEyeCubemapResult == null) + { + Debug.LogError("PanoramaType.Monoscopic mode need left eye RenderTexture but it is null."); + return; + } + + switch (panoramaType) + { + case PanoramaType.Stereoscopic: + { + # region 3D 360 photo processing (stereoscopic) + + try + { + // output the camera view to RenderTexture + camera.RenderToCubemap(leftEyeCubemapResult, Photo360RenderTextureCubemapFaceMaskDefault, + Camera.MonoOrStereoscopicEye.Left); + // for the 360 photo, we need to do the equirectangular projection in order to + // convert the 360 photo (cubemap) to panoramic photo + leftEyeCubemapResult.ConvertToEquirect(panoramicPhotoResult, Camera.MonoOrStereoscopicEye.Left); + + camera.RenderToCubemap(rightEyeCubemapResult, Photo360RenderTextureCubemapFaceMaskDefault, + Camera.MonoOrStereoscopicEye.Right); + rightEyeCubemapResult.ConvertToEquirect(panoramicPhotoResult, + Camera.MonoOrStereoscopicEye.Right); + } + catch (Exception e) + { + Debug.LogError($"Failed to capture 360 photo, error message: {e.Message}."); + } + + #endregion + } + break; + case PanoramaType.Monoscopic: + { + #region General 3D photo processing (monoscopic) + + try + { + // output the camera view to RenderTexture + camera.RenderToCubemap(leftEyeCubemapResult); + // for the 360 photo, we need to do the equirectangular projection in order to + // convert the 360 photo (cubemap) to panoramic photo + leftEyeCubemapResult.ConvertToEquirect(panoramicPhotoResult); + } + catch (Exception e) + { + Debug.LogError($"Failed to capture 360 photo, error message: {e.Message}."); + } + + #endregion + } + break; + default: + { + Debug.LogError("The panorama type is not supported."); + } + break; + } + } + + /// + /// Capture the 360 photo via the input camera. + /// + /// The camera that you want to capture 360 photo source + /// The 360 photo resolution. The value must power two + /// The panorama type of the 360 photo + /// The 360 photo + public static RenderTexture Capture360RenderTexture( + in Camera camera, + in int resolution, + in PanoramaType panoramaType) + { + const int deepBufferDefault = 0; + + if (!IsPowerOfTwo((ulong)resolution)) + { + Debug.LogError("The resolution of the capture 360 photo should be power of two."); + return null; + } + + // create a Temporary RenderTexture for saving 360 photo after equirectangular projection + var capture360ResultEquirect = RenderTexture.GetTemporary( + resolution, + panoramaType == PanoramaType.Stereoscopic ? resolution : resolution / 2, + deepBufferDefault, + Photo360RenderTextureFormatDefault); + capture360ResultEquirect.dimension = TextureDimension.Tex2D; + capture360ResultEquirect.name = "Panoramic photo"; + + switch (panoramaType) + { + case PanoramaType.Stereoscopic: + { + # region 3D 360 photo processing (stereoscopic) + + // left eye + try + { + // create a Temporary RenderTexture for saving the 360 capture photo (stereoscopic) + var capture360ResultLeft = RenderTexture.GetTemporary( + resolution, // TODO: the resolution of the capture photo should be set by user + resolution, + deepBufferDefault, + Photo360RenderTextureFormatDefault); + capture360ResultLeft.dimension = TextureDimension.Cube; + capture360ResultLeft.name = "Left eye cubemap"; + + // output the camera RenderTexture to capture360Result (Temporary RenderTexture) + camera.RenderToCubemap(capture360ResultLeft, Photo360RenderTextureCubemapFaceMaskDefault, + Camera.MonoOrStereoscopicEye.Left); + + // for the 360 photo, we need to do the equirectangular projection in order to + // convert the 360 photo (cubemap) to panoramic photo + capture360ResultLeft.ConvertToEquirect(capture360ResultEquirect, + Camera.MonoOrStereoscopicEye.Left); + + RenderTexture.ReleaseTemporary(capture360ResultLeft); + } + catch (Exception e) + { + Debug.LogError( + $"Failed to create a Temporary RenderTexture for saving the 360 photo (left eye): {e.Message}."); + RenderTexture.ReleaseTemporary(capture360ResultEquirect); + return null; + } + + // right eye + try + { + var capture360ResultRight = RenderTexture.GetTemporary( + resolution, // TODO: the resolution of the capture photo should be set by user + resolution, + deepBufferDefault, + Photo360RenderTextureFormatDefault); + capture360ResultRight.dimension = TextureDimension.Cube; + capture360ResultRight.name = "Right eye cubemap"; + + camera.RenderToCubemap(capture360ResultRight, Photo360RenderTextureCubemapFaceMaskDefault, + Camera.MonoOrStereoscopicEye.Right); + + capture360ResultRight.ConvertToEquirect(capture360ResultEquirect, + Camera.MonoOrStereoscopicEye.Right); + + RenderTexture.ReleaseTemporary(capture360ResultRight); + } + catch (Exception e) + { + Debug.LogError( + $"Failed to create a Temporary RenderTexture for saving the 360 photo (right eye): {e.Message}."); + RenderTexture.ReleaseTemporary(capture360ResultEquirect); + return null; + } + + #endregion + } + break; + case PanoramaType.Monoscopic: + { + #region General 3D photo processing (monoscopic) + + try + { + // create a Temporary RenderTexture for saving the 360 capture photo (monoscopic) + var capture360Result = RenderTexture.GetTemporary( + resolution, // TODO: the resolution of the capture photo should be set by user + resolution, + deepBufferDefault, + Photo360RenderTextureFormatDefault); + capture360Result.dimension = TextureDimension.Cube; + capture360Result.name = "CubeMap"; + + // output the camera RenderTexture to capture360Result (Temporary RenderTexture) + camera.RenderToCubemap(capture360Result); + + // for the 360 photo, we need to do the equirectangular projection in order to + // convert the 360 photo (cubemap) to panoramic photo + capture360Result.ConvertToEquirect(capture360ResultEquirect); + + RenderTexture.ReleaseTemporary(capture360Result); + } + catch (Exception e) + { + Debug.LogError($"Failed to capture 360 photo, error message: {e.Message}."); + RenderTexture.ReleaseTemporary(capture360ResultEquirect); + return null; + } + + #endregion + } + break; + default: + { + Debug.LogWarning("The panorama type is not supported. Will ignore this operation."); + RenderTexture.ReleaseTemporary(capture360ResultEquirect); + } + return null; + } + + return capture360ResultEquirect; + + // Input resolution validation + bool IsPowerOfTwo(ulong x) => (x & (x - 1)) == 0; + } + + /// + /// Convert the RenderTexture to image general format (such as PNG or JPG) and then save it on the disk + /// + /// The album that the photo will be saved to + /// The image file name without file extension + /// The image format you want to convert to + /// The RenderTexture source + /// The camera rotation on the yaw axis + /// The directory that the image is saved to. This only affects and applies to non-Android platforms. + public static void SaveRenderTextureToDisk( + string imageAlbumName, + string imageNameWithoutFileExtension, + PictureOutputFormat imageOutputFormat, + RenderTexture sourceRenderTexture, + float yawRotation = 0, + string saveDirectory = "") + { + if (string.IsNullOrEmpty(imageNameWithoutFileExtension) || sourceRenderTexture == null) + { + Debug.LogError("The input data is not valid. Please check the data and try again."); + return; + } + +#if !UNITY_ANDROID || UNITY_EDITOR + if (string.IsNullOrEmpty(imageAlbumName)) + { + Debug.LogWarning("The name of image album is null, will use the \"Snapshot\" as default album name."); + saveDirectory = "Snapshot"; + } + + if (string.IsNullOrEmpty(saveDirectory)) + { + Debug.LogWarning( + "The save directory is null, will use the \"Application.persistentDataPath\" as default path."); + saveDirectory = Application.persistentDataPath; + } +#endif + + RenderTexture referenceRenderTexture = RenderTexture.GetTemporary( + sourceRenderTexture.width, + sourceRenderTexture.height, + sourceRenderTexture.depth, + sourceRenderTexture.format); + TextureWrapMode originalTextureWrapMode = sourceRenderTexture.wrapMode; + sourceRenderTexture.wrapMode = TextureWrapMode.Repeat; + Graphics.Blit( + sourceRenderTexture, + referenceRenderTexture, + Vector2.one, + new Vector2(yawRotation / 360f, 0)); + sourceRenderTexture.wrapMode = originalTextureWrapMode; + + // For saving photo to disk, we first convert the RenderTexture + // to byte array which is already encoded to the format we want + // (PNG or JPG), then we can save the byte array to disk. + // + // Because the above task is heavy, we prefer to do it by async-method. + // However, the async-method is only supported on Unity 2021.3 or newer. + // For the older version, we only can do it by sync-method. +#if !UNITY_2021_3_OR_NEWER + #region Sync save image to disk + + RenderTexture2Texture2D(referenceRenderTexture, out Texture2D texture2D); + byte[] byteArray = Texture2DToByteArray(texture2D, imageOutputFormat); + + string imageNameWithFileExtension; + switch (imageOutputFormat) + { + case PictureOutputFormat.PNG: + case PictureOutputFormat.JPG: + { + imageNameWithFileExtension = + $"{imageNameWithoutFileExtension}.{imageOutputFormat.ToString().ToLower()}"; + } + break; + default: + { + Debug.LogWarning("The output format is not supported, will use PNG as default."); + imageNameWithFileExtension = $"{imageNameWithoutFileExtension}.png"; + } + break; + } + + // Write "encode data" to disk +#if UNITY_ANDROID && !UNITY_EDITOR + bool isSaveSuccess = SaveImageToAndroidGallery(byteArray, imageNameWithFileExtension, imageAlbumName); + Debug.Log(isSaveSuccess + ? $"Save photo in album {imageAlbumName} in gallery successfully" + : $"Save photo in album {imageAlbumName} in gallery failed."); +#else + string saveDirectoryWithAlbumName = Path.Combine(saveDirectory, imageAlbumName); + _ = Task.Run(() => + IOProcessHelper.SaveByteDataToDisk(byteArray, saveDirectoryWithAlbumName, + imageNameWithFileExtension)) + .ContinueWith( + _ => { Debug.Log($"Save photo in disk {saveDirectoryWithAlbumName} finished."); }); +#endif + + RenderTexture.ReleaseTemporary(referenceRenderTexture); + + #endregion + +#else + + #region Async save image to disk + + AsyncGPUReadback.Request(referenceRenderTexture, 0, request => + { + Debug.Log("Receive GPU signal, start to get data from a GPU resource."); + + if (request.hasError) + { + Debug.LogError("Error on retrieves the data on GPU."); + RenderTexture.ReleaseTemporary(referenceRenderTexture); + return; + } + + // Get native data from GPU + NativeArray rtColorNativeArray; + try + { + rtColorNativeArray = request.GetData(); + } + catch (Exception e) + { + Debug.LogError($"Error on getting data from GPU: {e}."); + RenderTexture.ReleaseTemporary(referenceRenderTexture); + return; + } + + // Encode to byte array from native data by CPU + byte[] byteArray; + try + { + NativeArray byteNativeArray; + switch (imageOutputFormat) + { + case PictureOutputFormat.JPG: + byteNativeArray = ImageConversion.EncodeNativeArrayToJPG( + rtColorNativeArray, + GraphicsFormat.R8G8B8A8_UNorm, + (uint)referenceRenderTexture.width, + (uint)referenceRenderTexture.height); + byteArray = byteNativeArray.ToArray(); + byteArray = InsertGPanoXmpInJpg(byteArray, referenceRenderTexture.width, + referenceRenderTexture.height); + break; + case PictureOutputFormat.PNG: + byteNativeArray = ImageConversion.EncodeNativeArrayToPNG( + rtColorNativeArray, + GraphicsFormat.R8G8B8A8_UNorm, + (uint)referenceRenderTexture.width, + (uint)referenceRenderTexture.height); + byteArray = byteNativeArray.ToArray(); + break; + default: + Debug.LogWarning("The output format is not supported, will use PNG as default."); + byteNativeArray = ImageConversion.EncodeNativeArrayToPNG( + rtColorNativeArray, + GraphicsFormat.R8G8B8A8_UNorm, + (uint)referenceRenderTexture.width, + (uint)referenceRenderTexture.height); + byteArray = byteNativeArray.ToArray(); + break; + } + + // Once we get the encoded data (byte[]) by CPU, we can release the (byte) native array + byteNativeArray.Dispose(); + } + catch (Exception e) + { + Debug.LogError($"Error on calling EncodeNativeArrayToJPG: {e}."); + return; + } + finally + { + // Once we get the encoded data (byte[]) by CPU, we can release the (color) native array + // and RenderTexture + rtColorNativeArray.Dispose(); + RenderTexture.ReleaseTemporary(referenceRenderTexture); + } + + string imageNameWithFileExtension; + switch (imageOutputFormat) + { + case PictureOutputFormat.PNG: + case PictureOutputFormat.JPG: + imageNameWithFileExtension = + $"{imageNameWithoutFileExtension}.{imageOutputFormat.ToString().ToLower()}"; + break; + default: + Debug.LogWarning("The output format is not supported, will use PNG as default."); + imageNameWithFileExtension = $"{imageNameWithoutFileExtension}.png"; + break; + } + + // Write "encode data" to disk +#if UNITY_ANDROID && !UNITY_EDITOR + bool isSaveSuccess = SaveImageToAndroidGallery(byteArray, imageNameWithFileExtension, imageAlbumName); + Debug.Log(isSaveSuccess + ? $"Save photo in album {imageAlbumName} in gallery successfully" + : $"Save photo in album {imageAlbumName} in gallery failed."); +#else + string saveDirectoryWithAlbumName = Path.Combine(saveDirectory, imageAlbumName); + _ = Task.Run(() => + IOProcessHelper.SaveByteDataToDisk(byteArray, saveDirectoryWithAlbumName, + imageNameWithFileExtension)) + .ContinueWith( + _ => { Debug.Log($"Save photo in disk {saveDirectoryWithAlbumName} finished."); }); +#endif + }); + + #endregion + +#endif + } + + /// + /// Create pure color Texture2D for showing + /// + /// Int. Texture2D width. + /// Int. Texture2D height. + /// UnityEngine.Color. Texture2D color. + /// Texture2D + public static Texture2D CreatePureTexture2DWithColor(in int width, in int height, in Color color) + { + var texture = new Texture2D(width, height); + var pixels = Enumerable.Repeat(color, width * height).ToArray(); + texture.SetPixels(pixels); + texture.Apply(); + return texture; + } + +#if UNITY_EDITOR + /// + /// Add the shader to the "Always Included Shaders" list in Unity graphics setting. + /// + /// The name of the shader that you want to + public static void AddAlwaysIncludedShader(string shaderName) + { + var shader = Shader.Find(shaderName); + if (shader == null) + { + Debug.LogError( + $"Shader \"{shaderName}\" not found. Fail to add it to the \"Always Included Shaders\" list in graphics setting."); + return; + } + + var graphicsSettingsObj = + AssetDatabase.LoadAssetAtPath("ProjectSettings/GraphicsSettings.asset"); + var serializedObject = new SerializedObject(graphicsSettingsObj); + var arrayProp = serializedObject.FindProperty("m_AlwaysIncludedShaders"); + bool hasShader = false; + for (int i = 0; i < arrayProp.arraySize; ++i) + { + var arrayElem = arrayProp.GetArrayElementAtIndex(i); + if (shader == arrayElem.objectReferenceValue) + { + hasShader = true; + break; + } + } + + if (!hasShader) + { + int arrayIndex = arrayProp.arraySize; + arrayProp.InsertArrayElementAtIndex(arrayIndex); + var arrayElem = arrayProp.GetArrayElementAtIndex(arrayIndex); + arrayElem.objectReferenceValue = shader; + + serializedObject.ApplyModifiedProperties(); + + AssetDatabase.SaveAssets(); + + Debug.Log($"Add \"{shaderName}\" shader to the \"Always Included Shaders\" list in graphics setting"); + } + } +#endif + + /// + /// Insert panorama flag into the JPG meta data (Hardcode) + /// + /// The JPG image represent by byte array + /// The JPG image width + /// The JPG image height + /// + public static byte[] InsertGPanoXmpInJpg(byte[] jpeg, int width, int height) + { + if (jpeg == null || jpeg.Length == 0) + { + Debug.LogError("Empty data."); + return null; + } + + if (jpeg[0] != 0xFF || jpeg[1] != 0xD8) + { + Debug.LogError("Not JPEG."); + return null; + } + + // Find the old jpeg's ap0 marker and insert xmp after it. + int start = 2; + { + FindExistXmp(jpeg, start, out int idx, out int size); + if (idx >= 0 && size >= 0) + { + // We don't have ability to parse XMP data now. + Debug.LogWarning("We cannot create XMP now because it already exists."); + Debug.Log(Encoding.ASCII.GetString(jpeg, idx, size)); + return null; + } + } + + { + FindFirstApp0(jpeg, start, out int idx, out int size); + if (idx >= start && size >= 0) + start = idx + 2 + size; + } + int oldStart = start; + + string xmpHeadStr = "http://ns.adobe.com/xap/1.0/ "; + byte[] xmpHead = Encoding.ASCII.GetBytes(xmpHeadStr); + xmpHead[xmpHead.Length - 1] = 0; // Make zero ending + + // Insert XMP after SOI + string xmpDataStr = + @" + + + + " + height + @" + " + width + @" + 0 + 0 + " + height + @" + " + width + @" + 0.0 + 0.0 + 0.0 + equirectangular + True + + + +"; + byte[] xmpData = Encoding.ASCII.GetBytes(xmpDataStr); + // Replace BOM in xmpDataStr as 0xEF, 0xBB, 0xBF (UTF-8 BOM) + xmpData[17] = 0xEF; + xmpData[18] = 0xBB; + xmpData[19] = 0xBF; + + byte[] newJpeg = new byte[jpeg.Length + xmpHead.Length + xmpData.Length + 4 /*marker and size*/]; + + // Insert SOI + System.Array.Copy(jpeg, 0, newJpeg, 0, start); + // Insert APP1 marker + newJpeg[start++] = 0xFF; + newJpeg[start++] = 0xE1; + // Insert APP1 marker size + newJpeg[start++] = (byte)((xmpHead.Length + xmpData.Length + 2) >> 8); + newJpeg[start++] = (byte)((xmpHead.Length + xmpData.Length + 2) & 0xFF); + // Insert XMP head + System.Array.Copy(xmpHead, 0, newJpeg, start, xmpHead.Length); + start += xmpHead.Length; + // Insert XMP data + System.Array.Copy(xmpData, 0, newJpeg, start, xmpData.Length); + start += xmpData.Length; + // Insert JPEG data + System.Array.Copy(jpeg, oldStart, newJpeg, start, jpeg.Length - oldStart); + return newJpeg; + } + + public static void FindExistXmp(byte[] jpeg, int start, out int idx, out int size) + { + string xmpHeadStr = "http://ns.adobe.com/xap/1.0/ "; + byte[] xmpHead = Encoding.ASCII.GetBytes(xmpHeadStr); + xmpHead[xmpHead.Length - 1] = 0; // Make zero ending + idx = -1; + size = 0; + + int n = jpeg.Length; + for (int i = start; i < n;) + { + int mkSize = 0; + if (jpeg[i] == 0xFF && jpeg[i + 1] == 0xE1) + { + idx = i + 4; + mkSize = (jpeg[i + 2] << 8) + jpeg[i + 3]; + } + + if (mkSize < xmpHead.Length) + { + i += mkSize + 2; + continue; + } + + int n2 = xmpHead.Length; + bool isXmpHead = true; + for (int j = 0; j < n2; j++) + { + if (jpeg[i + 4 + j] != xmpHead[j]) + { + isXmpHead = false; + break; + } + } + + if (!isXmpHead) + { + i += mkSize + 2; + continue; + } + + idx = i + 4 + xmpHead.Length; + size = mkSize; + return; + } + } + + public static void FindFirstApp0(byte[] jpeg, int start, out int idx, out int size) + { + string jfifHeadStr = "JFIF "; + byte[] jfifHead = Encoding.ASCII.GetBytes(jfifHeadStr); + jfifHead[jfifHead.Length - 1] = 0; // Make zero ending + idx = -1; + size = 0; + + int n = jpeg.Length; + for (int i = start; i < n;) + { + int mkSize = 0; + if (jpeg[i] == 0xFF && jpeg[i + 1] == 0xE0) + { + mkSize = (jpeg[i + 2] << 8) + jpeg[i + 3]; + } + + if (mkSize < jfifHead.Length) + { + i += mkSize + 2; + continue; + } + + int n2 = jfifHead.Length; + bool isJfifHead = true; + for (int j = 0; j < n2; j++) + { + if (jpeg[i + 4 + j] != jfifHead[j]) + { + isJfifHead = false; + break; + } + } + + if (!isJfifHead) + { + i += mkSize + 2; + continue; + } + + idx = i; + size = mkSize; + return; + } + } + + public enum PictureOutputFormat + { + PNG, + JPG + } + + public enum PanoramaType + { + Stereoscopic, + Monoscopic + } + } +} \ No newline at end of file diff --git a/com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/Helper/TextureProcessHelper.cs.meta b/com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/Helper/TextureProcessHelper.cs.meta new file mode 100644 index 0000000..7b0bd33 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/Helper/TextureProcessHelper.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 09984648d0f364648af4f0ac5a03de55 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/ISpectatorCameraSetting.cs b/com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/ISpectatorCameraSetting.cs new file mode 100644 index 0000000..1a0566f --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/ISpectatorCameraSetting.cs @@ -0,0 +1,127 @@ +// Copyright HTC Corporation All Rights Reserved. + +using UnityEngine; +using VIVE.OpenXR.Toolkits.Spectator.Helper; + +namespace VIVE.OpenXR.Toolkits.Spectator +{ + /// + /// Name: ISpectatorCameraSetting.cs + /// Role: Contract + /// Responsibility: Define the setting attribute of the spectator camera. + /// + public interface ISpectatorCameraSetting + { + #region Property + + /// + /// The struct UnityEngine.LayerMask defines which layer the camera can see or not. + /// + LayerMask LayerMask { get; set; } + + /// + /// Whether or not to enable the feature of smoothing the spectator camera movement. + /// + bool IsSmoothCameraMovement { get; set; } + + /// + /// The speed factor to control the smoothing impact. + /// + int SmoothCameraMovementSpeed { get; set; } + + /// + /// True if visualize the spectator camera vertical FOV. + /// + bool IsFrustumShowed { get; set; } + + /// + /// The spectator camera vertical FOV. + /// + float VerticalFov { get; set; } + + /// + /// The panorama image resolution. + /// + SpectatorCameraHelper.SpectatorCameraPanoramaResolution PanoramaResolution { get; set; } + + /// + /// The panorama image output format. + /// + TextureProcessHelper.PictureOutputFormat PanoramaOutputFormat { get; set; } + + /// + /// The panorama types. + /// + TextureProcessHelper.PanoramaType PanoramaOutputType { get; set; } + + /// + /// How many frustum lines will be shown? + /// + SpectatorCameraHelper.FrustumLineCount FrustumLineCount { get; set; } + + /// + /// How many frustum center lines will be shown? + /// + SpectatorCameraHelper.FrustumCenterLineCount FrustumCenterLineCount { get; set; } + + /// + /// Frustum line width. + /// + float FrustumLineWidth { get; set; } + + /// + /// Frustum center line width. + /// + float FrustumCenterLineWidth { get; set; } + + /// + /// Frustum line color. + /// + Color FrustumLineColor { get; set; } + + /// + /// Frustum center line color. + /// + Color FrustumCenterLineColor { get; set; } + + #endregion + + #region Function + + /// + /// Reset the spectator camera setting to the default value. + /// + void ResetSetting(); + + /// + /// Export the current spectator camera setting as a JSON file and then save it to the resource folder or persistent folder. + /// + /// The enum SpectatorCameraHelper.AttributeFileLocation. + void ExportSetting2JsonFile(in SpectatorCameraHelper.AttributeFileLocation attributeFileLocation); + + /// + /// Load the setting (JSON) file via input full file path. + /// + /// The setting file’s full path (including file name and JSON extension). + void LoadSettingFromJsonFile(in string jsonFilePath); + + /// + /// Load the setting (JSON) file via input scene name, GameObject (hmd) name, and the file location (resource folder or persistent folder). + /// + /// The scene name. + /// The GameObject name. + /// The enum SpectatorCameraHelper.AttributeFileLocation. + void LoadSettingFromJsonFile( + in string sceneName, + in string gameObjectName, + in SpectatorCameraHelper.AttributeFileLocation attributeFileLocation); + + /// + /// Apply the spectator camera setting to the current component. + /// + /// The data you want to apply. + void ApplyData(in SpectatorCameraHelper.SpectatorCameraAttribute data); + + #endregion + } +} \ No newline at end of file diff --git a/com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/ISpectatorCameraSetting.cs.meta b/com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/ISpectatorCameraSetting.cs.meta new file mode 100644 index 0000000..e34be41 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/ISpectatorCameraSetting.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 913ccea163eb50d4e911f0e8cadaadeb +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/SpectatorCameraManager.Editor.cs b/com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/SpectatorCameraManager.Editor.cs new file mode 100644 index 0000000..7ed84f7 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/SpectatorCameraManager.Editor.cs @@ -0,0 +1,748 @@ +// Copyright HTC Corporation All Rights Reserved. + +using System.Collections.Generic; +using System.IO; +using UnityEditor; +using UnityEngine; +using VIVE.OpenXR.Toolkits.Spectator.Helper; + +namespace VIVE.OpenXR.Toolkits.Spectator +{ + /// + /// Name: SpectatorCameraManager.Editor.cs + /// Role: General script use in Unity Editor only + /// Responsibility: Display the SpectatorCameraManager.cs in Unity Inspector + /// + public partial class SpectatorCameraManager + { + [SerializeField] private Material spectatorCameraViewMaterial; + + /// + /// Material that show the spectator camera view + /// + private Material SpectatorCameraViewMaterial + { + // get; private set; + get => spectatorCameraViewMaterial; + set + { + spectatorCameraViewMaterial = value; + if (SpectatorCameraBased && value) + { + SpectatorCameraBased.SpectatorCameraViewMaterial = value; + } + } + } + +#if UNITY_EDITOR + [field: SerializeField] private bool IsShowHmdPart { get; set; } + [field: SerializeField] private bool IsShowTrackerPart { get; set; } + [field: SerializeField] private bool IsRequireLoadJsonFile { get; set; } + + [CustomEditor(typeof(SpectatorCameraManager))] + public class SpectatorCameraManagerEditor : UnityEditor.Editor + { + private static readonly Color HighlightRegionBackgroundColor = new Color(.2f, .2f, .2f, .1f); + + private SerializedProperty IsShowHmdPart { get; set; } + private SerializedProperty IsShowTrackerPart { get; set; } + private SerializedProperty IsRequireLoadJsonFile { get; set; } + private List JsonFileList { get; set; } + private Vector2 JsonFileScrollViewVector { get; set; } + + private SerializedProperty IsSmoothCameraMovement { get; set; } + private SerializedProperty SmoothCameraMovementSpeed { get; set; } + private SerializedProperty PanoramaResolution { get; set; } + private SerializedProperty PanoramaOutputFormat { get; set; } + private SerializedProperty PanoramaOutputType { get; set; } + + private SerializedProperty SpectatorCameraPrefab { get; set; } + + private void OnEnable() + { + IsShowHmdPart = serializedObject.FindProperty(EditorHelper.PropertyName("IsShowHmdPart")); + IsShowTrackerPart = serializedObject.FindProperty(EditorHelper.PropertyName("IsShowTrackerPart")); + IsRequireLoadJsonFile = + serializedObject.FindProperty(EditorHelper.PropertyName("IsRequireLoadJsonFile")); + JsonFileList = new List(); + JsonFileScrollViewVector = Vector2.zero; + + IsSmoothCameraMovement = + serializedObject.FindProperty(EditorHelper.PropertyName("IsSmoothCameraMovement")); + SmoothCameraMovementSpeed = + serializedObject.FindProperty(EditorHelper.PropertyName("SmoothCameraMovementSpeed")); + + PanoramaResolution = serializedObject.FindProperty(EditorHelper.PropertyName("PanoramaResolution")); + PanoramaOutputFormat = serializedObject.FindProperty(EditorHelper.PropertyName("PanoramaOutputFormat")); + PanoramaOutputType = serializedObject.FindProperty(EditorHelper.PropertyName("PanoramaOutputType")); + + SpectatorCameraPrefab = + serializedObject.FindProperty(EditorHelper.PropertyName("SpectatorCameraPrefab")); + } + + public override void OnInspectorGUI() + { + // Just return if not "SpectatorCameraManager" class + if (!(target is SpectatorCameraManager)) + { + return; + } + + serializedObject.Update(); + + DrawGUI(); + + serializedObject.ApplyModifiedProperties(); + } + + private void DrawGUI() + { + #region GUIStyle + + var labelStyle = new GUIStyle() + { + richText = true, + alignment = TextAnchor.MiddleCenter, + normal = new GUIStyleState + { + textColor = EditorGUIUtility.isProSkin ? Color.green : Color.black + } + }; + + var resetButtonStyle = new GUIStyle(GUI.skin.button) + { + fontStyle = FontStyle.Bold, + normal = new GUIStyleState + { + textColor = EditorGUIUtility.isProSkin ? Color.yellow : Color.red + }, + hover = new GUIStyleState + { + textColor = Color.red + }, + active = new GUIStyleState + { + textColor = Color.cyan + }, + }; + + var boldButtonStyle = new GUIStyle(GUI.skin.button) + { + fontStyle = FontStyle.Bold + }; + + #endregion + + var script = (SpectatorCameraManager)target; + + // Button for reset value + if (GUILayout.Button("Reset to default value", resetButtonStyle)) + { + Undo.RecordObject(target, "Reset SpectatorCameraManager to default value"); + EditorUtility.SetDirty(target); + script.ResetSetting(); + } + + // Button for export setting + if (GUILayout.Button("Export Spectator Camera HMD Setting", boldButtonStyle)) + { + script.ExportSetting2JsonFile(SpectatorCameraHelper.AttributeFileLocation.ResourceFolder); + AssetDatabase.Refresh(); + } + + #region Load Setting From JSON File + + GUILayout.BeginHorizontal(); + EditorGUI.BeginDisabledGroup(IsRequireLoadJsonFile.boolValue); + if (GUILayout.Button("Load Setting From JSON File in Resources Folder", boldButtonStyle) || + IsRequireLoadJsonFile.boolValue) + { + IsRequireLoadJsonFile.boolValue = true; + var searchPattern = + $"{SpectatorCameraHelper.ATTRIBUTE_FILE_PREFIX_NAME}*.{SpectatorCameraHelper.ATTRIBUTE_FILE_EXTENSION}"; + + if (JsonFileList == null) + { + JsonFileList = new List(); + } + + JsonFileList.Clear(); + + var dir = new DirectoryInfo(Path.Combine(Application.dataPath, "Resources")); + var files = dir.GetFiles(searchPattern); + foreach (var item in files) + { + JsonFileList.Add(item.Name); + } + + if (JsonFileList.Count == 0) + { + Debug.Log( + "Can't find any JSON file related to the spectator camera setting in the Resources folder."); + IsRequireLoadJsonFile.boolValue = false; + } + } + + EditorGUI.EndDisabledGroup(); + + if (IsRequireLoadJsonFile.boolValue) + { + if (GUILayout.Button("Cancel")) + { + IsRequireLoadJsonFile.boolValue = false; + } + } + + GUILayout.EndHorizontal(); + + if (IsRequireLoadJsonFile.boolValue) + { + Rect r = EditorGUILayout.BeginVertical(); + + JsonFileScrollViewVector = EditorGUILayout.BeginScrollView(JsonFileScrollViewVector, + GUILayout.Width(r.width), + GUILayout.Height(80)); + + for (int i = 0; i < JsonFileList.Count; i++) + { + if (GUILayout.Button(JsonFileList[i])) + { + var path = Path.Combine( + System.IO.Path.Combine(Application.dataPath, "Resources"), + JsonFileList[i]); + Undo.RecordObject(target, $"Load {JsonFileList[i]} setting to {target.name} SpectatorCameraManager"); + EditorUtility.SetDirty(target); + script.LoadSettingFromJsonFile(path); + } + } + + EditorGUILayout.EndScrollView(); + + EditorGUILayout.EndVertical(); + } + + #endregion + + EditorGUILayout.LabelField("\n"); + + // Spectator camera prefab + EditorGUILayout.PropertyField(SpectatorCameraPrefab, new GUIContent("Spectator Camera Prefab")); + if (SpectatorCameraPrefab.objectReferenceValue != null && + PrefabUtility.GetPrefabAssetType(SpectatorCameraPrefab.objectReferenceValue) == + PrefabAssetType.NotAPrefab) + { + // The assign object is scene object + Debug.Log("Please assign the object as prefab only."); + SpectatorCameraPrefab.objectReferenceValue = null; + } + + EditorGUILayout.LabelField("\n"); + + EditorGUILayout.LabelField("[ General Setting ]", labelStyle); + + // Setting of spectator camera reference source + // EditorGUILayout.PropertyField(CameraSourceRef, new GUIContent("Camera Source")); + EditorGUI.BeginChangeCheck(); + var currentCameraSourceRef = (SpectatorCameraHelper.CameraSourceRef) + EditorGUILayout.EnumPopup("Camera Source", script.CameraSourceRef); + if (EditorGUI.EndChangeCheck()) + { + Undo.RecordObject(target, "Modified SpectatorCameraManager CameraSourceRef"); + EditorUtility.SetDirty(target); + script.CameraSourceRef = currentCameraSourceRef; + } + + #region Tracker Region + + if (script.CameraSourceRef == SpectatorCameraHelper.CameraSourceRef.Tracker) + { + EditorGUI.BeginChangeCheck(); + var currentFollowSpectatorCameraTracker = EditorGUILayout.ObjectField( + "Tracker", + script.FollowSpectatorCameraTracker, + typeof(SpectatorCameraTracker), + true) as SpectatorCameraTracker; + if (EditorGUI.EndChangeCheck()) + { + Undo.RecordObject(target, "Modified SpectatorCameraManager FollowSpectatorCameraTracker"); + EditorUtility.SetDirty(target); + script.FollowSpectatorCameraTracker = currentFollowSpectatorCameraTracker; + } + + if (script.FollowSpectatorCameraTracker == null) + { + // The assign object is null + EditorGUILayout.HelpBox("Please assign the SpectatorCameraTracker", MessageType.Info, false); + } + else if (PrefabUtility.GetPrefabAssetType(script.FollowSpectatorCameraTracker) != + PrefabAssetType.NotAPrefab) + { + // Don't allow assign object is prefab + Debug.Log("Please assign the scene object."); + script.FollowSpectatorCameraTracker = null; + } + else + { + // The assign object is scene object => ok + EditorGUILayout.LabelField("\n"); + IsShowTrackerPart.boolValue = + EditorGUILayout.Foldout(IsShowTrackerPart.boolValue, "Tracker Setting"); + if (IsShowTrackerPart.boolValue) + { + // If show the tracker setting + Rect r = EditorGUILayout.BeginVertical(); + + SpectatorCameraTracker trackerObject = script.FollowSpectatorCameraTracker; + + if (trackerObject != null) + { + EditorGUILayout.HelpBox( + $"You are now editing the tracker setting in \"{trackerObject.gameObject.name}\" GameObject", + MessageType.Info, + true); + + EditorGUI.BeginChangeCheck(); + var currentTrackerObjectLayerMask = + LayerMaskHelper.LayerMaskDrawer.LayerMaskField("Camera Layer Mask", + trackerObject.LayerMask); + if (EditorGUI.EndChangeCheck()) + { + Undo.RecordObject(trackerObject, $"Modified {trackerObject.name} LayerMask"); + EditorUtility.SetDirty(trackerObject); + trackerObject.LayerMask = currentTrackerObjectLayerMask; + } + + EditorGUI.BeginChangeCheck(); + var currentTrackerObjectIsSmoothCameraMovement= + EditorGUILayout.Toggle("Enable Smoothing Camera Movement", + trackerObject.IsSmoothCameraMovement); + if (EditorGUI.EndChangeCheck()) + { + Undo.RecordObject(trackerObject, $"Modified {trackerObject.name} IsSmoothCameraMovement"); + EditorUtility.SetDirty(trackerObject); + trackerObject.IsSmoothCameraMovement = currentTrackerObjectIsSmoothCameraMovement; + } + + if (trackerObject.IsSmoothCameraMovement) + { + EditorGUILayout.LabelField("\n"); + + EditorGUILayout.LabelField("[ Smooth Camera Movement Speed Setting ]", + labelStyle); + EditorGUI.BeginChangeCheck(); + var currentTrackerObjectSmoothCameraMovementSpeed = + EditorGUILayout.IntSlider( + new GUIContent("Speed of Smoothing Camera Movement"), + trackerObject.SmoothCameraMovementSpeed, + SpectatorCameraHelper.SMOOTH_CAMERA_MOVEMENT_MIN, + SpectatorCameraHelper.SMOOTH_CAMERA_MOVEMENT_MAX); + if (EditorGUI.EndChangeCheck()) + { + Undo.RecordObject(trackerObject, $"Modified {trackerObject.name} SmoothCameraMovementSpeed"); + EditorUtility.SetDirty(trackerObject); + trackerObject.SmoothCameraMovementSpeed = currentTrackerObjectSmoothCameraMovementSpeed; + } + + EditorGUILayout.LabelField("\n"); + } + + EditorGUI.BeginChangeCheck(); + // Spectator camera frustum show/hide + var currentTrackerObjectIsFrustumShowed = + EditorGUILayout.Toggle("Enable Camera FOV Frustum", trackerObject.IsFrustumShowed); + if (EditorGUI.EndChangeCheck()) + { + Undo.RecordObject(trackerObject, $"Modified {trackerObject.name} IsFrustumShowed"); + EditorUtility.SetDirty(trackerObject); + trackerObject.IsFrustumShowed = currentTrackerObjectIsFrustumShowed; + } + + EditorGUILayout.LabelField("\n"); + + #region VerticalFov + + EditorGUILayout.LabelField("[ Vertical FOV Setting ]", labelStyle); + + EditorGUI.BeginChangeCheck(); + var currentTrackerObjectVerticalFov = EditorGUILayout.Slider( + "Vertical FOV", + trackerObject.VerticalFov, + SpectatorCameraHelper.VERTICAL_FOV_MIN, + SpectatorCameraHelper.VERTICAL_FOV_MAX); + if (EditorGUI.EndChangeCheck()) + { + Undo.RecordObject(trackerObject, $"Modified {trackerObject.name} VerticalFov"); + EditorUtility.SetDirty(trackerObject); + trackerObject.VerticalFov = currentTrackerObjectVerticalFov; + } + + #endregion + + EditorGUILayout.LabelField("\n"); + + #region Setting related to panorama capturing of spectator camera + + // Panorama resolution + EditorGUILayout.LabelField("[ Panorama Setting ]", labelStyle); + + EditorGUI.BeginChangeCheck(); + // Panorama output resolution + var currentTrackerObjectPanoramaResolution = + (SpectatorCameraHelper.SpectatorCameraPanoramaResolution) + EditorGUILayout.EnumPopup("Resolution", trackerObject.PanoramaResolution); + if (EditorGUI.EndChangeCheck()) + { + Undo.RecordObject(trackerObject, $"Modified {trackerObject.name} PanoramaResolution"); + EditorUtility.SetDirty(trackerObject); + trackerObject.PanoramaResolution = currentTrackerObjectPanoramaResolution; + } + + EditorGUI.BeginChangeCheck(); + // Panorama output format + var currentTrackerObjectPanoramaOutputFormat = (TextureProcessHelper.PictureOutputFormat) + EditorGUILayout.EnumPopup("Output Format", trackerObject.PanoramaOutputFormat); + if (EditorGUI.EndChangeCheck()) + { + Undo.RecordObject(trackerObject, $"Modified {trackerObject.name} PanoramaOutputFormat"); + EditorUtility.SetDirty(trackerObject); + trackerObject.PanoramaOutputFormat = currentTrackerObjectPanoramaOutputFormat; + } + + EditorGUI.BeginChangeCheck(); + // Panorama output type + var currentTrackerObjectPanoramaOutputType = (TextureProcessHelper.PanoramaType) + EditorGUILayout.EnumPopup("Output Type", trackerObject.PanoramaOutputType); + if (EditorGUI.EndChangeCheck()) + { + Undo.RecordObject(trackerObject, $"Modified {trackerObject.name} PanoramaOutputType"); + EditorUtility.SetDirty(trackerObject); + trackerObject.PanoramaOutputType = currentTrackerObjectPanoramaOutputType; + } + + #endregion + + EditorGUILayout.LabelField("\n"); + + #region Setting related to frustum + + if (trackerObject.IsFrustumShowed) + { + EditorGUILayout.LabelField("[ Frustum Setting ]", + labelStyle); + + #region Count of frustum and frustum center line + + EditorGUI.BeginChangeCheck(); + var currentTrackerObjectFrustumLineCount = (SpectatorCameraHelper.FrustumLineCount) + EditorGUILayout.EnumPopup("Frustum Line Total", trackerObject.FrustumLineCount); + if (EditorGUI.EndChangeCheck()) + { + Undo.RecordObject(trackerObject, $"Modified {trackerObject.name} FrustumLineCount"); + EditorUtility.SetDirty(trackerObject); + trackerObject.FrustumLineCount = currentTrackerObjectFrustumLineCount; + } + + EditorGUI.BeginChangeCheck(); + var currentTrackerObjectFrustumCenterLineCount = + (SpectatorCameraHelper.FrustumCenterLineCount) + EditorGUILayout.EnumPopup("Frustum Center Line Total", + trackerObject.FrustumCenterLineCount); + if (EditorGUI.EndChangeCheck()) + { + Undo.RecordObject(trackerObject, $"Modified {trackerObject.name} FrustumCenterLineCount"); + EditorUtility.SetDirty(trackerObject); + trackerObject.FrustumCenterLineCount = currentTrackerObjectFrustumCenterLineCount; + } + + #endregion + + EditorGUILayout.LabelField("\n"); + + #region Width of frustum and frustum center line + + EditorGUI.BeginChangeCheck(); + var currentTrackerObjectFrustumLineWidth = + EditorGUILayout.Slider( + "Frustum Line Width", + trackerObject.FrustumLineWidth, + SpectatorCameraHelper.FRUSTUM_LINE_WIDTH_MIN, + SpectatorCameraHelper.FRUSTUM_LINE_WIDTH_MAX); + if (EditorGUI.EndChangeCheck()) + { + Undo.RecordObject(trackerObject, $"Modified {trackerObject.name} FrustumLineWidth"); + EditorUtility.SetDirty(trackerObject); + trackerObject.FrustumLineWidth = currentTrackerObjectFrustumLineWidth; + } + + EditorGUI.BeginChangeCheck(); + var currentTrackerObjectFrustumCenterLineWidth = + EditorGUILayout.Slider( + "Frustum Center Line Width", + trackerObject.FrustumCenterLineWidth, + SpectatorCameraHelper.FRUSTUM_CENTER_LINE_WIDTH_MIN, + SpectatorCameraHelper.FRUSTUM_CENTER_LINE_WIDTH_MAX); + if (EditorGUI.EndChangeCheck()) + { + Undo.RecordObject(trackerObject, $"Modified {trackerObject.name} FrustumCenterLineWidth"); + EditorUtility.SetDirty(trackerObject); + trackerObject.FrustumCenterLineWidth = currentTrackerObjectFrustumCenterLineWidth; + } + + #endregion + + EditorGUILayout.LabelField("\n"); + + #region Material of frustum and frustum center line + + EditorGUI.BeginChangeCheck(); + var currentTrackerObjectFrustumLineColor = EditorGUILayout.ColorField( + "Frustum Line Color", trackerObject.FrustumLineColor); + if (EditorGUI.EndChangeCheck()) + { + Undo.RecordObject(trackerObject, $"Modified {trackerObject.name} FrustumLineColor"); + EditorUtility.SetDirty(trackerObject); + trackerObject.FrustumLineColor = currentTrackerObjectFrustumLineColor; + } + + EditorGUI.BeginChangeCheck(); + var currentTrackerObjectFrustumCenterLineColor = EditorGUILayout.ColorField( + "Frustum Center Line Color", + trackerObject.FrustumCenterLineColor); + if (EditorGUI.EndChangeCheck()) + { + Undo.RecordObject(trackerObject, $"Modified {trackerObject.name} FrustumCenterLineColor"); + EditorUtility.SetDirty(trackerObject); + trackerObject.FrustumCenterLineColor = currentTrackerObjectFrustumCenterLineColor; + } + + #endregion + } + + #endregion + + EditorGUILayout.EndVertical(); + r = new Rect(r.x, r.y, r.width, r.height); + EditorGUI.DrawRect(r, HighlightRegionBackgroundColor); + + EditorGUILayout.LabelField("\n"); + } + } + } + } + + #endregion + + #region HMD Region + + IsShowHmdPart.boolValue = EditorGUILayout.Foldout(IsShowHmdPart.boolValue, "HMD Setting"); + if (IsShowHmdPart.boolValue) + { + Rect r = EditorGUILayout.BeginVertical(); + + EditorGUI.BeginChangeCheck(); + // Setting of spectator camera layer mask + var currentLayerMask = + LayerMaskHelper.LayerMaskDrawer.LayerMaskField("Camera Layer Mask", script.LayerMask); + if (EditorGUI.EndChangeCheck()) + { + Undo.RecordObject(target, "Modified SpectatorCameraManager LayerMask"); + EditorUtility.SetDirty(target); + script.LayerMask = currentLayerMask; + } + + // Setting of smooth spectator camera movement + EditorGUILayout.PropertyField(IsSmoothCameraMovement, + new GUIContent("Enable Smoothing Camera Movement")); + if (IsSmoothCameraMovement.boolValue) + { + EditorGUILayout.LabelField("\n"); + + EditorGUILayout.LabelField("[ Smooth Camera Movement Speed Setting ]", labelStyle); + + // Setting of smooth spectator camera movement speed + EditorGUILayout.IntSlider( + SmoothCameraMovementSpeed, + SpectatorCameraHelper.SMOOTH_CAMERA_MOVEMENT_MIN, + SpectatorCameraHelper.SMOOTH_CAMERA_MOVEMENT_MAX, + "Speed of Smoothing Camera Movement"); + + EditorGUILayout.LabelField("\n"); + } + + EditorGUI.BeginChangeCheck(); + // Spectator camera frustum show/hide + var currentIsFrustumShowed = + EditorGUILayout.Toggle("Enable Camera FOV Frustum", script.IsFrustumShowed); + if (EditorGUI.EndChangeCheck()) + { + Undo.RecordObject(target, "Modified SpectatorCameraManager IsFrustumShowed"); + EditorUtility.SetDirty(target); + script.IsFrustumShowed = currentIsFrustumShowed; + } + + EditorGUILayout.LabelField("\n"); + + #region VerticalFov + + EditorGUILayout.LabelField("[ Vertical FOV Setting ]", labelStyle); + + EditorGUI.BeginChangeCheck(); + // FOV + var currentVerticalFov = EditorGUILayout.Slider( + "Vertical FOV", + script.VerticalFov, + SpectatorCameraHelper.VERTICAL_FOV_MIN, + SpectatorCameraHelper.VERTICAL_FOV_MAX); + if (EditorGUI.EndChangeCheck()) + { + Undo.RecordObject(target, "Modified SpectatorCameraManager VerticalFov"); + EditorUtility.SetDirty(target); + script.VerticalFov = currentVerticalFov; + } + + #endregion + + EditorGUILayout.LabelField("\n"); + + #region Setting related to panorama capturing of spectator camera + + // Panorama resolution + EditorGUILayout.LabelField("[ Panorama Setting ]", labelStyle); + EditorGUILayout.PropertyField(PanoramaResolution, new GUIContent("Resolution")); + + // Panorama output format + EditorGUILayout.PropertyField(PanoramaOutputFormat, new GUIContent("Output Format")); + + // Panorama output type + EditorGUILayout.PropertyField(PanoramaOutputType, new GUIContent("Output Type")); + + #endregion + + #region Setting related to frustum + + if (script.IsFrustumShowed) + { + EditorGUILayout.LabelField("\n"); + + EditorGUILayout.LabelField("[ Frustum Setting ]", labelStyle); + + EditorGUI.BeginChangeCheck(); + // Count of frustum line + var currentFrustumLineCount = (SpectatorCameraHelper.FrustumLineCount) + EditorGUILayout.EnumPopup("Frustum Line Total", script.FrustumLineCount); + if (EditorGUI.EndChangeCheck()) + { + Undo.RecordObject(target, "Modified SpectatorCameraManager FrustumLineCount"); + EditorUtility.SetDirty(target); + script.FrustumLineCount = currentFrustumLineCount; + } + + EditorGUI.BeginChangeCheck(); + // Count of frustum center line + var currentFrustumCenterLineCount = (SpectatorCameraHelper.FrustumCenterLineCount) + EditorGUILayout.EnumPopup("Frustum Center Line Total", script.FrustumCenterLineCount); + if (EditorGUI.EndChangeCheck()) + { + Undo.RecordObject(target, "Modified SpectatorCameraManager FrustumCenterLineCount"); + EditorUtility.SetDirty(target); + script.FrustumCenterLineCount = currentFrustumCenterLineCount; + } + + EditorGUILayout.LabelField("\n"); + + EditorGUI.BeginChangeCheck(); + // Width of frustum line + var currentFrustumLineWidth = + EditorGUILayout.Slider( + "Frustum Line Width", + script.FrustumLineWidth, + SpectatorCameraHelper.FRUSTUM_LINE_WIDTH_MIN, + SpectatorCameraHelper.FRUSTUM_LINE_WIDTH_MAX); + if (EditorGUI.EndChangeCheck()) + { + Undo.RecordObject(target, "Modified SpectatorCameraManager FrustumLineWidth"); + EditorUtility.SetDirty(target); + script.FrustumLineWidth = currentFrustumLineWidth; + } + + EditorGUI.BeginChangeCheck(); + // Width of frustum center line + var currentFrustumCenterLineWidth = + EditorGUILayout.Slider( + "Frustum Center Line Width", + script.FrustumCenterLineWidth, + SpectatorCameraHelper.FRUSTUM_CENTER_LINE_WIDTH_MIN, + SpectatorCameraHelper.FRUSTUM_CENTER_LINE_WIDTH_MAX); + if (EditorGUI.EndChangeCheck()) + { + Undo.RecordObject(target, "Modified SpectatorCameraManager FrustumCenterLineWidth"); + EditorUtility.SetDirty(target); + script.FrustumCenterLineWidth = currentFrustumCenterLineWidth; + } + + EditorGUILayout.LabelField("\n"); + + EditorGUI.BeginChangeCheck(); + // Color of frustum line + var currentFrustumLineColor = EditorGUILayout.ColorField( + "Frustum Line Color", script.FrustumLineColor); + if (EditorGUI.EndChangeCheck()) + { + Undo.RecordObject(target, "Modified SpectatorCameraManager FrustumLineColor"); + EditorUtility.SetDirty(target); + script.FrustumLineColor = currentFrustumLineColor; + } + + EditorGUI.BeginChangeCheck(); + // Color of frustum center line + var currentFrustumCenterLineColor = EditorGUILayout.ColorField( + "Frustum Center Line Color", + script.FrustumCenterLineColor); + if (EditorGUI.EndChangeCheck()) + { + Undo.RecordObject(target, "Modified SpectatorCameraManager FrustumCenterLineColor"); + EditorUtility.SetDirty(target); + script.FrustumCenterLineColor = currentFrustumCenterLineColor; + } + } + + #endregion + + EditorGUILayout.EndVertical(); + r = new Rect(r.x, r.y, r.width, r.height); + EditorGUI.DrawRect(r, HighlightRegionBackgroundColor); + } + + #endregion + + EditorGUILayout.LabelField("\n"); + + #region Test 360 Output + + EditorGUILayout.LabelField("[ Debug Setting ]", labelStyle); + + EditorGUI.BeginChangeCheck(); + var currentSpectatorCameraViewMaterial = EditorGUILayout.ObjectField( + "Spectator Camera View Material", + script.SpectatorCameraViewMaterial, + typeof(Material), + false) as Material; + if (EditorGUI.EndChangeCheck()) + { + Undo.RecordObject(target, "Modified SpectatorCameraManager SpectatorCameraViewMaterial"); + EditorUtility.SetDirty(target); + script.SpectatorCameraViewMaterial = currentSpectatorCameraViewMaterial; + } + + EditorGUILayout.HelpBox("Test - Output 360 photo", MessageType.Info, true); + if (GUILayout.Button("Test - Output 360 photo")) + { + script.CaptureSpectatorCamera360Photo(); + } + + #endregion + } + } +#endif + } +} \ No newline at end of file diff --git a/com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/SpectatorCameraManager.Editor.cs.meta b/com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/SpectatorCameraManager.Editor.cs.meta new file mode 100644 index 0000000..e682756 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/SpectatorCameraManager.Editor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d5a03d623c31c2344a1f99005572762a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/SpectatorCameraManager.cs b/com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/SpectatorCameraManager.cs new file mode 100644 index 0000000..5d1b419 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/SpectatorCameraManager.cs @@ -0,0 +1,1669 @@ +// Copyright HTC Corporation All Rights Reserved. + +using System; +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.SceneManagement; +using Debug = UnityEngine.Debug; +using VIVE.OpenXR.FirstPersonObserver; +using VIVE.OpenXR.SecondaryViewConfiguration; +using VIVE.OpenXR.Toolkits.Spectator.Helper; + +namespace VIVE.OpenXR.Toolkits.Spectator +{ + /// + /// Name: SpectatorCameraManager.cs + /// Role: Manager (Singleton) + /// Responsibility: Manage the spectator camera in content layer + /// + public partial class SpectatorCameraManager : MonoBehaviour, ISpectatorCameraSetting + { + private static SpectatorCameraManager _instance; + + /// + /// SpectatorCameraManager static instance (Singleton) + /// + public static SpectatorCameraManager Instance => _instance; + + public static SpectatorCameraBased SpectatorCameraBased => SpectatorCameraBased.Instance; + + /// + /// To denote whether the SpectatorCameraManager is init successfully or not + /// + private bool InitSuccess { get; set; } + + [SerializeField] + private SpectatorCameraHelper.CameraSourceRef cameraSourceRef = SpectatorCameraHelper.CAMERA_SOURCE_REF_DEFAULT; + + /// + /// The current spectator camera tracking source + /// + public SpectatorCameraHelper.CameraSourceRef CameraSourceRef + { + get => cameraSourceRef; + set + { + if (cameraSourceRef == value) + { + return; + } + + cameraSourceRef = value; + + if (Application.isPlaying) + { + CameraStateChangingProcessing(); + SpectatorCameraBased.SetViewFromHmd(value == SpectatorCameraHelper.CameraSourceRef.Hmd); + } + } + } + + [SerializeField] private LayerMask layerMask = SpectatorCameraHelper.LayerMaskDefault; + + public LayerMask LayerMask + { + get => layerMask; + set + { + if (layerMask == value) + { + return; + } + + layerMask = value; + + // This var in here is only for hmd source. Tracker has own layer mask var. + if (Application.isPlaying && IsCameraSourceAsHmd()) + { + SpectatorCameraBased.SpectatorCamera.cullingMask = layerMask; + } + } + } + + [field: SerializeField] + public bool IsSmoothCameraMovement { get; set; } = SpectatorCameraHelper.IS_SMOOTH_CAMERA_MOVEMENT_DEFAULT; + + [field: SerializeField] + public int SmoothCameraMovementSpeed { get; set; } = SpectatorCameraHelper.SMOOTH_CAMERA_MOVEMENT_SPEED_DEFAULT; + + [SerializeField] private bool isFrustumShowed = SpectatorCameraHelper.IS_FRUSTUM_SHOWED_DEFAULT; + + public bool IsFrustumShowed + { + get => isFrustumShowed; + set + { + if (isFrustumShowed == value) + { + return; + } + + isFrustumShowed = value; + + if (Application.isPlaying && IsCameraSourceAsHmd()) + { + SetupFrustum(); + } + } + } + + [SerializeField] private float verticalFov = SpectatorCameraHelper.VERTICAL_FOV_DEFAULT; + + public float VerticalFov + { + get => verticalFov; + set + { + if (Math.Abs(verticalFov - value) < SpectatorCameraHelper.COMPARE_FLOAT_MEDIUM_THRESHOLD) + { + return; + } + + verticalFov = Mathf.Clamp(value, + SpectatorCameraHelper.VERTICAL_FOV_MIN, + SpectatorCameraHelper.VERTICAL_FOV_MAX); + + if (Application.isPlaying && IsCameraSourceAsHmd()) + { + SpectatorCameraBased.SpectatorCamera.fieldOfView = verticalFov; + SetupFrustum(); + } + } + } + + #region Panorama properties + + [field: SerializeField] + public SpectatorCameraHelper.SpectatorCameraPanoramaResolution PanoramaResolution { get; set; } = + SpectatorCameraHelper.PANORAMA_RESOLUTION_DEFAULT; + + [field: SerializeField] + public TextureProcessHelper.PictureOutputFormat PanoramaOutputFormat { get; set; } = + SpectatorCameraHelper.PANORAMA_OUTPUT_FORMAT_DEFAULT; + + [field: SerializeField] + public TextureProcessHelper.PanoramaType PanoramaOutputType { get; set; } = + SpectatorCameraHelper.PANORAMA_TYPE_DEFAULT; + + #endregion + + [SerializeField] private SpectatorCameraHelper.FrustumLineCount frustumLineCount = + SpectatorCameraHelper.FRUSTUM_LINE_COUNT_DEFAULT; + + public SpectatorCameraHelper.FrustumLineCount FrustumLineCount + { + get => frustumLineCount; + set + { + if (frustumLineCount == value) + { + return; + } + + frustumLineCount = value; + + if (Application.isPlaying && IsCameraSourceAsHmd()) + { + SetupFrustumLine(); + } + } + } + + [SerializeField] private SpectatorCameraHelper.FrustumCenterLineCount frustumCenterLineCount = + SpectatorCameraHelper.FRUSTUM_CENTER_LINE_COUNT_DEFAULT; + + public SpectatorCameraHelper.FrustumCenterLineCount FrustumCenterLineCount + { + get => frustumCenterLineCount; + set + { + if (frustumCenterLineCount == value) + { + return; + } + + frustumCenterLineCount = value; + + if (Application.isPlaying && IsCameraSourceAsHmd()) + { + SetupFrustumCenterLine(); + } + } + } + + [SerializeField] private float frustumLineWidth = SpectatorCameraHelper.FRUSTUM_LINE_WIDTH_DEFAULT; + + public float FrustumLineWidth + { + get => frustumLineWidth; + set + { + if (Math.Abs(frustumLineWidth - value) < SpectatorCameraHelper.COMPARE_FLOAT_SUPER_SMALL_THRESHOLD) + { + return; + } + + frustumLineWidth = Mathf.Clamp( + value, + SpectatorCameraHelper.FRUSTUM_LINE_WIDTH_MIN, + SpectatorCameraHelper.FRUSTUM_LINE_WIDTH_MAX); + + if (Application.isPlaying && IsCameraSourceAsHmd()) + { + SetupFrustumLine(); + } + } + } + + [SerializeField] private float frustumCenterLineWidth = SpectatorCameraHelper.FRUSTUM_CENTER_LINE_WIDTH_DEFAULT; + + public float FrustumCenterLineWidth + { + get => frustumCenterLineWidth; + set + { + if (Math.Abs(frustumCenterLineWidth - value) < + SpectatorCameraHelper.COMPARE_FLOAT_SUPER_SMALL_THRESHOLD) + { + return; + } + + frustumCenterLineWidth = Mathf.Clamp(value, SpectatorCameraHelper.FRUSTUM_CENTER_LINE_WIDTH_MIN, + SpectatorCameraHelper.FRUSTUM_CENTER_LINE_WIDTH_MAX); + + if (Application.isPlaying && IsCameraSourceAsHmd()) + { + SetupFrustumCenterLine(); + } + } + } + + [SerializeField] private Color frustumLineColor = SpectatorCameraHelper.LineColorDefault; + + public Color FrustumLineColor + { + get => frustumLineColor; + set + { + if (frustumLineColor == value) + { + return; + } + + frustumLineColor = value; + + if (Application.isPlaying && IsCameraSourceAsHmd()) + { + SetupFrustumLine(); + } + } + } + + [SerializeField] private Color frustumCenterLineColor = SpectatorCameraHelper.LineColorDefault; + + public Color FrustumCenterLineColor + { + get => frustumCenterLineColor; + set + { + if (frustumCenterLineColor == value) + { + return; + } + + frustumCenterLineColor = value; + + if (Application.isPlaying && IsCameraSourceAsHmd()) + { + SetupFrustumCenterLine(); + } + } + } + + #region Varibles of the camera prefeb, camera gameobject, camera handler and main (rig) camera + + /// + /// The camera prefab. It will be created as a GameObject and denote a spectator camera at runtime. + /// + [field: SerializeField] private GameObject SpectatorCameraPrefab { get; set; } + + /// + /// The GameObject is created from SpectatorCameraPrefab. + /// + public GameObject SpectatorCamera { get; private set; } + + #endregion + + #region Varibles of last value of camera FOV and main camera position and rotation + + /// + /// The previous value of the position of the main (hmd) camera (P.S. only use in CameraSourceRef.Hmd mode) + /// + private Vector3 CameraLastPosition { get; set; } + + /// + /// The previous value of the rotation of the main (hmd) camera (P.S. only use in CameraSourceRef.Hmd mode) + /// + private Quaternion CameraLastRotation { get; set; } + + #endregion + + #region Variables of visualization FOV + + /// + /// The frustum line root + /// + private GameObject FrustumLineRoot { get; set; } + + /// + /// The frustum center line root + /// + private GameObject FrustumCenterLineRoot { get; set; } + + /// + /// The list contain frustum line (LineRenderer) + /// + private List frustumLineList; + + /// + /// The list contain frustum center line (LineRenderer) + /// + private List frustumCenterLineList; + + #endregion + + #region Varibles of tracker list includes all trackers in the scene, the current tracker candidate, and its index in the tracker list + + private List spectatorCameraTrackerList; + + /// + /// The tracker list that contains all tracker in the scene + /// + public IReadOnlyList SpectatorCameraTrackerList => spectatorCameraTrackerList; + + [SerializeField] private SpectatorCameraTracker followSpectatorCameraTracker; + + /// + /// The tracker candidate that the camera will follow in "Tracker mode". + /// + public SpectatorCameraTracker FollowSpectatorCameraTracker + { + get => followSpectatorCameraTracker; + set + { + if (followSpectatorCameraTracker == value) + { + return; + } + + followSpectatorCameraTracker = value; + + if (Application.isPlaying) + { + AddSpectatorCameraTracker(value); + if (IsCameraSourceAsTracker()) + { + CameraStateChangingProcessing(); + } + } + } + } + + /// + /// The index of the current candidate of the tracker in the tracker list. + /// + private int FollowSpectatorCameraTrackerIndex + { + get + { + if (spectatorCameraTrackerList != null && FollowSpectatorCameraTracker != null) + { + return spectatorCameraTrackerList.IndexOf(FollowSpectatorCameraTracker); + } + + return -1; + } + } + + #endregion + + #region Public Functions of camera setting I/O + + public void ResetSetting() + { + CameraSourceRef = SpectatorCameraHelper.CameraSourceRef.Hmd; + LayerMask = SpectatorCameraHelper.LayerMaskDefault; + IsSmoothCameraMovement = SpectatorCameraHelper.IS_SMOOTH_CAMERA_MOVEMENT_DEFAULT; + SmoothCameraMovementSpeed = SpectatorCameraHelper.SMOOTH_CAMERA_MOVEMENT_SPEED_DEFAULT; + IsFrustumShowed = SpectatorCameraHelper.IS_FRUSTUM_SHOWED_DEFAULT; + VerticalFov = SpectatorCameraHelper.VERTICAL_FOV_DEFAULT; + PanoramaResolution = SpectatorCameraHelper.PANORAMA_RESOLUTION_DEFAULT; + PanoramaOutputFormat = SpectatorCameraHelper.PANORAMA_OUTPUT_FORMAT_DEFAULT; + PanoramaOutputType = SpectatorCameraHelper.PANORAMA_TYPE_DEFAULT; + FrustumLineCount = SpectatorCameraHelper.FRUSTUM_LINE_COUNT_DEFAULT; + FrustumCenterLineCount = SpectatorCameraHelper.FRUSTUM_CENTER_LINE_COUNT_DEFAULT; + FrustumLineWidth = SpectatorCameraHelper.FRUSTUM_LINE_WIDTH_DEFAULT; + FrustumCenterLineWidth = SpectatorCameraHelper.FRUSTUM_CENTER_LINE_WIDTH_DEFAULT; + FrustumLineColor = SpectatorCameraHelper.LineColorDefault; + FrustumCenterLineColor = SpectatorCameraHelper.LineColorDefault; + + SpectatorCameraViewMaterial = null; + } + + public void ExportSetting2JsonFile(in SpectatorCameraHelper.AttributeFileLocation attributeFileLocation) + { +#if !UNITY_EDITOR + if (attributeFileLocation is SpectatorCameraHelper.AttributeFileLocation.ResourceFolder) + { + Debug.LogError("It's not allowed to save setting to resource folder in runtime mode"); + return; + } +#endif + + var data = new SpectatorCameraHelper.SpectatorCameraAttribute( + CameraSourceRef, + Vector3.zero, // HMD does not need to save the position + Quaternion.identity, // HMD does not need to save the rotation + LayerMask, + IsSmoothCameraMovement, + SmoothCameraMovementSpeed, + IsFrustumShowed, + VerticalFov, + PanoramaResolution, + PanoramaOutputFormat, + PanoramaOutputType, + FrustumLineCount, + FrustumCenterLineCount, + FrustumLineWidth, + FrustumCenterLineWidth, + FrustumLineColor, + FrustumCenterLineColor); + +#if UNITY_EDITOR + if (attributeFileLocation is SpectatorCameraHelper.AttributeFileLocation.ResourceFolder) + { + SpectatorCameraHelper.SaveAttributeData2ResourcesFolder( + SceneManager.GetActiveScene().name, + gameObject.name, + data); + } + else if (attributeFileLocation is SpectatorCameraHelper.AttributeFileLocation.PersistentFolder) + { + SpectatorCameraHelper.SaveAttributeData2PersistentFolder( + SceneManager.GetActiveScene().name, + gameObject.name, + data); + } +#else + SpectatorCameraHelper.SaveAttributeData2PersistentFolder( + SceneManager.GetActiveScene().name, + gameObject.name, + data); +#endif + } + + public void LoadSettingFromJsonFile(in string jsonFilePath) + { + bool loadSuccess = SpectatorCameraHelper.LoadAttributeFileFromFolder( + jsonFilePath, + out SpectatorCameraHelper.SpectatorCameraAttribute data); + if (loadSuccess) + { + ApplyData(data); + } + else + { + Debug.Log($"Load setting from {jsonFilePath} file to {gameObject.name} failed."); + } + } + + /// + /// Load the setting (JSON) file via input scene name, GameObject (hmd) name, and the file location (resource folder or persistent folder). + /// + /// The scene name. + /// The GameObject name. + /// The enum SpectatorCameraHelper.AttributeFileLocation. + public void LoadSettingFromJsonFile( + in string sceneName, + in string hmdName, + in SpectatorCameraHelper.AttributeFileLocation attributeFileLocation) + { + if (string.IsNullOrEmpty(sceneName) || string.IsNullOrEmpty(hmdName)) + { + Debug.LogError("Scene name or hmd name is null or empty"); + return; + } + + var loadSuccess = false; + SpectatorCameraHelper.SpectatorCameraAttribute data = new SpectatorCameraHelper.SpectatorCameraAttribute(); + if (attributeFileLocation is SpectatorCameraHelper.AttributeFileLocation.ResourceFolder) + { + loadSuccess = SpectatorCameraHelper.LoadAttributeFileFromResourcesFolder( + sceneName, + hmdName, + out data); + } + else if (attributeFileLocation is SpectatorCameraHelper.AttributeFileLocation.PersistentFolder) + { + loadSuccess = SpectatorCameraHelper.LoadAttributeFileFromPersistentFolder( + sceneName, + hmdName, + out data); + } + + if (loadSuccess) + { + ApplyData(data); + } + else + { + var fileDirectory = string.Empty; + if (attributeFileLocation is SpectatorCameraHelper.AttributeFileLocation.ResourceFolder) + { + fileDirectory = System.IO.Path.Combine(Application.dataPath, "Resources"); + } + else if (attributeFileLocation is SpectatorCameraHelper.AttributeFileLocation.PersistentFolder) + { + fileDirectory = Application.persistentDataPath; + } + + var fileName = + SpectatorCameraHelper.GetSpectatorCameraAttributeFileNamePattern(sceneName, hmdName); + + Debug.Log( + $"Load setting from {fileDirectory}/{fileName} file to {hmdName} failed."); + } + } + + public void ApplyData(in SpectatorCameraHelper.SpectatorCameraAttribute data) + { + CameraSourceRef = data.source; + + LayerMask = data.layerMask; + IsSmoothCameraMovement = data.isSmoothCameraMovement; + SmoothCameraMovementSpeed = data.smoothCameraMovementSpeed; + IsFrustumShowed = data.isFrustumShowed; + VerticalFov = data.verticalFov; + PanoramaResolution = data.panoramaResolution; + PanoramaOutputFormat = data.panoramaOutputFormat; + PanoramaOutputType = data.panoramaOutputType; + FrustumLineCount = data.frustumLineCount; + FrustumCenterLineCount = data.frustumCenterLineCount; + FrustumLineWidth = data.frustumLineWidth; + FrustumCenterLineWidth = data.frustumCenterLineWidth; + FrustumLineColor = data.frustumLineColor; + FrustumCenterLineColor = data.frustumCenterLineColor; + } + + #endregion + + #region Public functions of add/remove tracker + + /// + /// Add the spectator camera tracker to the tracker list in SpectatorCameraManager. + /// + /// The tracker you want to add. + public void AddSpectatorCameraTracker(SpectatorCameraTracker tracker) + { + if (spectatorCameraTrackerList == null) + { + spectatorCameraTrackerList = new List(); + } + + if (spectatorCameraTrackerList.Contains(tracker)) + { + return; + } + + spectatorCameraTrackerList.Add(tracker); + } + + /// + /// Remove the spectator camera tracker from the tracker list in SpectatorCameraManager. + /// + /// The tracker you want to remove. + public void RemoveSpectatorCameraTracker(SpectatorCameraTracker tracker) + { + if (spectatorCameraTrackerList == null) + { + return; + } + + if (spectatorCameraTrackerList.Contains(tracker)) + { + spectatorCameraTrackerList.Remove(tracker); + + if (FollowSpectatorCameraTracker == tracker) + { + if (spectatorCameraTrackerList.Count > 0) + { + // If the tracker that is removed is the current tracker candidate and there are still + // some trackers in the list, change the current tracker candidate to the first tracker + // in the list + FollowSpectatorCameraTracker = spectatorCameraTrackerList[0]; + } + else + { + // If the tracker that is removed is the current tracker candidate and there is no + // tracker in the list, change the camera source to HMD and set the current tracker + // candidate to null + CameraSourceRef = SpectatorCameraHelper.CameraSourceRef.Hmd; + FollowSpectatorCameraTracker = null; + } + } + } + } + + #endregion + + #region Public function of 360 photo capture + + /// + /// Capture the 360 photo at the current spectator camera position and rotation. + /// There are two types of panorama type: Monoscopic and Stereoscopic + /// can be chosen. + /// + public void CaptureSpectatorCamera360Photo() + { + if (!Application.isPlaying) + { + Debug.LogWarning("Pls play the application for 360 photo capture."); + return; + } + + if (!SpectatorCameraBased.IsAllowSpectatorCameraCapture360Image) + { + Debug.LogError( + "The spectator camera capture 360 image feature is not enabled, pls enable it on the" + + "OpenXR Setting page in Unity editor project setting first."); + return; + } + + // If the spectator handle is not set, return + if (!IsSpectatorCameraHandlerExist()) + { + Debug.LogError( + "Cannot init the function for capturing 360, pls make sure the spectator handler is init."); + return; + } + + #region Create a new camera component for capture 360 photo + + Transform refTransform; + LayerMask layerMaskValue; + SpectatorCameraHelper.SpectatorCameraPanoramaResolution panoramaResolutionValue; + TextureProcessHelper.PictureOutputFormat panoramaOutputFormatValue; + TextureProcessHelper.PanoramaType panoramaOutputTypeValue; + + // Create a new GameObject which position is according to the CameraSourceRef. + // If CameraSourceRef = HMD, refer the transform from camera main (hmd), + // otherwise, refer the transform from tracker. + switch (CameraSourceRef) + { + case SpectatorCameraHelper.CameraSourceRef.Hmd: + { + if (IsMainCameraExist()) + { + refTransform = SpectatorCameraBased.GetMainCamera().transform; + layerMaskValue = LayerMask; + panoramaResolutionValue = PanoramaResolution; + panoramaOutputFormatValue = PanoramaOutputFormat; + panoramaOutputTypeValue = PanoramaOutputType; + } + else + { + Debug.LogWarning("Cannot find the main camera in the scene to capture 360 photo."); + return; + } + } + break; + case SpectatorCameraHelper.CameraSourceRef.Tracker: + { + if (!IsFollowTrackerExist()) + { + if (spectatorCameraTrackerList == null) + { + spectatorCameraTrackerList = new List(); + } + + if (SpectatorCameraTrackerList.Count > 0) + { + // If there is no tracker assign to the FollowSpectatorCameraTracker and there are + // some trackers in the scene, change to use the first tracker in the list as default + FollowSpectatorCameraTracker = SpectatorCameraTrackerList[0]; + } + else + { + // If there is no tracker in the scene, change to use the HMD as default + CameraSourceRef = SpectatorCameraHelper.CameraSourceRef.Hmd; + return; + } + } + + refTransform = FollowSpectatorCameraTracker.transform; + layerMaskValue = FollowSpectatorCameraTracker.LayerMask; + panoramaResolutionValue = FollowSpectatorCameraTracker.PanoramaResolution; + panoramaOutputFormatValue = FollowSpectatorCameraTracker.PanoramaOutputFormat; + panoramaOutputTypeValue = FollowSpectatorCameraTracker.PanoramaOutputType; + } + break; + default: + throw new ArgumentOutOfRangeException(); + } + + // Rotation ignore but only Y-axis (yaw). + var spectatorCamera360 = new GameObject + { + transform = + { + position = refTransform.position + } + }.AddComponent(); + + // Set the spectatorCamera360's stereo target eye according to the panorama type + spectatorCamera360.stereoTargetEye = + panoramaOutputTypeValue is TextureProcessHelper.PanoramaType.Stereoscopic + ? StereoTargetEyeMask.Both + : StereoTargetEyeMask.None; + // Set the spectatorCamera360's culling mask + spectatorCamera360.cullingMask = layerMaskValue; + // Set the spectatorCamera360's eye distance + spectatorCamera360.stereoSeparation = SpectatorCameraHelper.STEREO_SEPARATION_DEFAULT; + + #endregion + + RenderTexture capture360ResultEquirect = TextureProcessHelper.Capture360RenderTexture( + spectatorCamera360, + (int)panoramaResolutionValue, + panoramaOutputTypeValue); + + // Destroy the gameObject + Destroy(spectatorCamera360.gameObject); + + if (capture360ResultEquirect == null) + { + Debug.LogWarning( + "Capture360RenderTexture return null, pls check the error log on the above for more details."); + return; + } + + var filename = $"{DateTime.Now:yyyy-MM-dd-HH-mm-ss}"; + + try + { + TextureProcessHelper.SaveRenderTextureToDisk( + imageAlbumName: SpectatorCameraHelper.SAVE_PHOTO360_ALBUM_NAME + , imageNameWithoutFileExtension: filename + , imageOutputFormat: panoramaOutputFormatValue + , sourceRenderTexture: capture360ResultEquirect + , yawRotation: refTransform.rotation.eulerAngles.y +#if !UNITY_ANDROID || UNITY_EDITOR + , saveDirectory: Application.persistentDataPath +#endif + ); + } + catch (Exception e) + { + Debug.LogError($"Error on output the panoramic photo: {e}."); + } + finally + { + // Release the Temporary RenderTexture + RenderTexture.ReleaseTemporary(capture360ResultEquirect); + } + } + + #endregion + + #region Public functions of safety check + + /// + /// Check whether the current state of the spectator camera is following the hmd or not. + /// + /// True if the spectator camera is following the hmd. Otherwise, return false. + public bool IsCameraSourceAsHmd() + { + return CameraSourceRef is SpectatorCameraHelper.CameraSourceRef.Hmd; + } + + /// + /// Check whether the current state of the spectator camera is following the tracker or not. + /// + /// True if the spectator camera is following the tracker. Otherwise, return false. + public bool IsCameraSourceAsTracker() + { + return CameraSourceRef is SpectatorCameraHelper.CameraSourceRef.Tracker; + } + + /// + /// Check whether the current tracker tracked by the spectator camera equals the tracker you input. + /// + /// The tracker you want to check + /// True if equals. Otherwise, return false. + public bool IsFollowTrackerEqualTo(SpectatorCameraTracker tracker) + { + return FollowSpectatorCameraTracker == tracker; + } + + /// + /// Check whether the spectator camera exists. + /// + /// True if the spectator camera exists. Otherwise, return false. + public bool IsSpectatorCameraHandlerExist() + { + return SpectatorCameraBased.SpectatorCamera != null; + } + + /// + /// Check whether the main camera exists in the currently loaded scene. + /// + /// True if the main camera exists. Otherwise, return false. + public bool IsMainCameraExist() + { + return SpectatorCameraBased.GetMainCamera() != null; + } + + /// + /// Check whether the current tracker tracked by the spectator camera exists or not. + /// + /// True if the tracker exists. Otherwise, return false. + public bool IsFollowTrackerExist() + { + return FollowSpectatorCameraTracker != null; + } + + #endregion + + #region Functions of visualization camera view ray + + /// + /// Setup the frustum and frustum center line + /// + public void SetupFrustum() + { + SetupFrustumLine(); + SetupFrustumCenterLine(); + } + + /// + /// Setup the frustum line + /// + public void SetupFrustumLine() + { + bool isFrustumShowedValue; + SpectatorCameraHelper.FrustumLineCount frustumLineCountValue; + float frustumLineWidthValue; + Color frustumLineColorValue; + + switch (CameraSourceRef) + { + case SpectatorCameraHelper.CameraSourceRef.Hmd: + { + if (IsMainCameraExist()) + { + isFrustumShowedValue = IsFrustumShowed; + frustumLineCountValue = FrustumLineCount; + frustumLineWidthValue = FrustumLineWidth; + frustumLineColorValue = FrustumLineColor; + } + else + { + Debug.LogWarning("Main camera does not exist in the scene"); + return; + } + } + break; + case SpectatorCameraHelper.CameraSourceRef.Tracker: + { + if (!IsFollowTrackerExist()) + { + if (spectatorCameraTrackerList == null) + { + spectatorCameraTrackerList = new List(); + } + + if (SpectatorCameraTrackerList.Count > 0) + { + // If there is no tracker assign to the FollowSpectatorCameraTracker and there are + // some trackers in the scene, change to use the first tracker in the list as default + FollowSpectatorCameraTracker = SpectatorCameraTrackerList[0]; + } + else + { + // If there is no tracker in the scene, change to use the HMD as default + CameraSourceRef = SpectatorCameraHelper.CameraSourceRef.Hmd; + return; + } + } + + isFrustumShowedValue = FollowSpectatorCameraTracker.IsFrustumShowed; + frustumLineCountValue = FollowSpectatorCameraTracker.FrustumLineCount; + frustumLineWidthValue = FollowSpectatorCameraTracker.FrustumLineWidth; + frustumLineColorValue = FollowSpectatorCameraTracker.FrustumLineColor; + } + break; + default: + throw new ArgumentOutOfRangeException(); + } + + if ( +#if UNITY_EDITOR + !(SpectatorCameraBased.IsDebugSpectatorCamera && SpectatorCameraBased.IsRecording) || +#else + (!SpectatorCameraBased.IsRecording && + /* Because OpenXR periodically changes the spectator enabled flag, we need + to consider checking the state with a time delay so that we can make sure + it is changing for a long while or just periodically. */ + Math.Abs(SpectatorCameraBased.LastRecordingStateIsActiveTime - SpectatorCameraBased.LastRecordingStateIsDisableTime) > + SpectatorCameraBased.RECORDING_STATE_CHANGE_THRESHOLD_IN_SECOND + ) || +#endif + !isFrustumShowedValue || + frustumLineCountValue is SpectatorCameraHelper.FrustumLineCount.None) + { + if (FrustumLineRoot != null) + { + FrustumLineRoot.SetActive(false); + } + + return; + } + + if (FrustumLineRoot == null) + { + FrustumLineRoot = new GameObject(SpectatorCameraHelper.FRUSTUM_LINE_ROOT_NAME_DEFAULT); + FrustumLineRoot.transform.SetParent(SpectatorCamera.transform, false); + } + + FrustumLineRoot.SetActive(true); + + if (frustumLineList != null && frustumLineList.Count > 0) + { + // Destroy all the line renderer and then re-init + // in order to make sure that using new variables + // e.g. line count, width and color + foreach (LineRenderer item in frustumLineList) + { + Destroy(item.gameObject); + } + + frustumLineList.Clear(); + } + + SetupLineRenderer( + lineCount: (int)frustumLineCountValue, + lineWidth: frustumLineWidthValue, + lineNamePrefix: SpectatorCameraHelper.FRUSTUM_LINE_NAME_PREFIX_DEFAULT, + lineMaterial: new Material(Shader.Find(SpectatorCameraHelper.LINE_SHADER_NAME_DEFAULT)) + { + color = frustumLineColorValue + }, + lineParent: FrustumLineRoot.transform, + lineList: out frustumLineList); + } + + /// + /// Setup the frustum center line + /// + public void SetupFrustumCenterLine() + { + bool isFrustumShowedValue; + SpectatorCameraHelper.FrustumCenterLineCount frustumCenterLineCountValue; + float frustumCenterLineWidthValue; + Color frustumCenterLineColorValue; + + switch (CameraSourceRef) + { + case SpectatorCameraHelper.CameraSourceRef.Hmd: + { + if (IsMainCameraExist()) + { + isFrustumShowedValue = IsFrustumShowed; + frustumCenterLineCountValue = FrustumCenterLineCount; + frustumCenterLineWidthValue = FrustumCenterLineWidth; + frustumCenterLineColorValue = FrustumCenterLineColor; + } + else + { + Debug.LogWarning("Main camera does not exist in the scene"); + return; + } + } + break; + case SpectatorCameraHelper.CameraSourceRef.Tracker: + { + if (!IsFollowTrackerExist()) + { + if (spectatorCameraTrackerList == null) + { + spectatorCameraTrackerList = new List(); + } + + if (SpectatorCameraTrackerList.Count > 0) + { + // If there is no tracker assign to the FollowSpectatorCameraTracker and there are + // some trackers in the scene, change to use the first tracker in the list as default + FollowSpectatorCameraTracker = SpectatorCameraTrackerList[0]; + } + else + { + // If there is no tracker in the scene, change to use the HMD as default + CameraSourceRef = SpectatorCameraHelper.CameraSourceRef.Hmd; + return; + } + } + + isFrustumShowedValue = FollowSpectatorCameraTracker.IsFrustumShowed; + frustumCenterLineCountValue = FollowSpectatorCameraTracker.FrustumCenterLineCount; + frustumCenterLineWidthValue = FollowSpectatorCameraTracker.FrustumCenterLineWidth; + frustumCenterLineColorValue = FollowSpectatorCameraTracker.FrustumCenterLineColor; + } + break; + default: + throw new ArgumentOutOfRangeException(); + } + + if ( +#if UNITY_EDITOR + !(SpectatorCameraBased.IsDebugSpectatorCamera && SpectatorCameraBased.IsRecording) || +#else + (!SpectatorCameraBased.IsRecording && + /* Because OpenXR periodically changes the spectator enabled flag, we need + to consider checking the state with a time delay so that we can make sure + it is changing for a long while or just periodically. */ + Math.Abs(SpectatorCameraBased.LastRecordingStateIsActiveTime - SpectatorCameraBased.LastRecordingStateIsDisableTime) > + SpectatorCameraBased.RECORDING_STATE_CHANGE_THRESHOLD_IN_SECOND + ) || +#endif + !isFrustumShowedValue || + frustumCenterLineCountValue is SpectatorCameraHelper.FrustumCenterLineCount.None) + { + if (FrustumCenterLineRoot != null) + { + FrustumCenterLineRoot.SetActive(false); + } + + return; + } + + if (FrustumCenterLineRoot == null) + { + FrustumCenterLineRoot = new GameObject(SpectatorCameraHelper.FRUSTUM_CENTER_LINE_ROOT_NAME_DEFAULT); + FrustumCenterLineRoot.transform.SetParent(SpectatorCamera.transform, false); + } + + FrustumCenterLineRoot.SetActive(true); + + if (frustumCenterLineList != null && frustumCenterLineList.Count > 0) + { + // Destroy all the line renderer and then re-init + // in order to make sure that using new variables + // e.g. line count, width and color + foreach (LineRenderer item in frustumCenterLineList) + { + Destroy(item.gameObject); + } + + frustumCenterLineList.Clear(); + } + + SetupLineRenderer( + lineCount: (int)frustumCenterLineCountValue, + lineWidth: frustumCenterLineWidthValue, + lineNamePrefix: SpectatorCameraHelper.FRUSTUM_CENTER_LINE_NAME_PREFIX_DEFAULT, + lineMaterial: new Material(Shader.Find(SpectatorCameraHelper.LINE_SHADER_NAME_DEFAULT)) + { + color = frustumCenterLineColorValue + }, + lineParent: FrustumCenterLineRoot.transform, + lineList: out frustumCenterLineList); + } + + /// + /// Setup the line renderer in order to render the frustum and frustum center line + /// + /// The total number of the LineRenderer + /// The width of the line + /// The GameObject name prefix. It attaches the LineRenderer component + /// The material of the line + /// The parent GameObject of all GameObjects that include the LineRenderer component + /// The return value, which is the list of the Line Renderer and all of it is already initiated with the input parameter + private void SetupLineRenderer( + in int lineCount, + in float lineWidth, + in string lineNamePrefix, + in Material lineMaterial, + in Transform lineParent, + out List lineList) + { + lineList = new List(lineCount); + + for (int i = 0; i < lineCount; i++) + { + var obj = new GameObject($"{lineNamePrefix}{i}"); + obj.transform.SetParent(lineParent, false); + // Set to "UI" layer + obj.layer = LayerMask.NameToLayer("UI"); + + var lr = obj.AddComponent(); + lr.useWorldSpace = false; + lr.sharedMaterial = lineMaterial; + lr.startWidth = lineWidth; + lr.endWidth = lineWidth; + lr.alignment = LineAlignment.View; + + lineList.Add(lr); + } + + CalculateLineRendererPosition(lineList); + } + + /// + /// Calculate the line renderer position + /// + /// The list that saves all LineRenderer + private void CalculateLineRendererPosition(List lineList) + { + if (!IsSpectatorCameraHandlerExist()) + { + return; + } + + var frustumCornersVector = new Vector3[SpectatorCameraHelper.FRUSTUM_OUT_CORNERS_COUNT]; + + Camera spectatorHandlerInternalCamera = SpectatorCameraBased.SpectatorCamera; + + spectatorHandlerInternalCamera.CalculateFrustumCorners( + new Rect(0, 0, 1, 1), + spectatorHandlerInternalCamera.farClipPlane, + Camera.MonoOrStereoscopicEye.Mono, + frustumCornersVector); + + int setLineStep = lineList.Count / SpectatorCameraHelper.FRUSTUM_OUT_CORNERS_COUNT; + for (var currentCorner = 0; + currentCorner < SpectatorCameraHelper.FRUSTUM_OUT_CORNERS_COUNT; + currentCorner++) + { + for (var currentLineStep = 0; currentLineStep < setLineStep; currentLineStep++) + { + Vector3 currentVector = Vector3.Lerp( + frustumCornersVector[currentCorner], + currentCorner < SpectatorCameraHelper.FRUSTUM_OUT_CORNERS_COUNT - 1 + // If currentCorner is not the last one, draw the line between current corner and next corner. + ? frustumCornersVector[currentCorner + 1] + // Otherwise, draw the line between the last corner and the first corner. + : frustumCornersVector[0], + currentLineStep / (float)setLineStep); + + SetLineRendererPosition( + lineList[currentCorner * setLineStep + currentLineStep], + currentVector, + SpectatorCameraHelper.FRUSTUM_LINE_BEGIN_DEFAULT); + } + } + } + + /// + /// Set the line renderer position + /// + /// The LineRenderer that will set to + /// The end position of the line + /// The offset of the start position of the line + private static void SetLineRendererPosition(LineRenderer lineRenderer, Vector3 endPoint, float startOffset = 0) + { + lineRenderer.SetPosition(0, startOffset < SpectatorCameraHelper.COMPARE_FLOAT_SMALL_THRESHOLD + ? Vector3.zero + : (endPoint).normalized * startOffset); + lineRenderer.SetPosition(1, endPoint); + } + + #endregion + + /// + /// The function is called when the camera source is changed. + /// + /// Occur when enum CameraSourceRef is undefined. + private void CameraStateChangingProcessing() + { + // Update layer mask + // Update vertical fov + // Update last position and rotation (avoid camera pose interpolation between two different camera source) + // Update is frustum showed + + LayerMask layerMaskValue; + float verticalFovValue; + Transform changeCameraTransform; + + switch (CameraSourceRef) + { + case SpectatorCameraHelper.CameraSourceRef.Hmd: + { + if (IsMainCameraExist()) + { + layerMaskValue = LayerMask; + verticalFovValue = VerticalFov; + changeCameraTransform = SpectatorCameraBased.GetMainCamera().transform; + } + else + { + Debug.LogWarning("Main camera does not exist in the scene"); + return; + } + } + break; + case SpectatorCameraHelper.CameraSourceRef.Tracker: + { + if (!IsFollowTrackerExist()) + { + if (spectatorCameraTrackerList == null) + { + spectatorCameraTrackerList = new List(); + } + + if (SpectatorCameraTrackerList.Count > 0) + { + // If there is no tracker assign to the FollowSpectatorCameraTracker and there are + // some trackers in the scene, change to use the first tracker in the list as default + FollowSpectatorCameraTracker = SpectatorCameraTrackerList[0]; + } + else + { + // If there is no tracker in the scene, change to use the HMD as default + CameraSourceRef = SpectatorCameraHelper.CameraSourceRef.Hmd; + return; + } + } + + layerMaskValue = FollowSpectatorCameraTracker.LayerMask; + verticalFovValue = FollowSpectatorCameraTracker.VerticalFov; + changeCameraTransform = FollowSpectatorCameraTracker.transform; + } + break; + default: + throw new ArgumentOutOfRangeException(); + } + + CameraLastPosition = changeCameraTransform.position; + CameraLastRotation = changeCameraTransform.rotation; + + SpectatorCameraBased.SpectatorCamera.cullingMask = layerMaskValue; + SpectatorCameraBased.SpectatorCamera.fieldOfView = verticalFovValue; + + SetupFrustum(); + } + + /// + /// Sometimes, if the user sets material on both SpectatorCameraBased or SpectatorCameraManager script, + /// always use the top of control setting (aka SpectatorCameraManager) as a final value. + /// This function will be called when the recording is started. + /// + private void SetSpectatorCameraViewMaterial() + { + if (SpectatorCameraViewMaterial || + SpectatorCameraBased.SpectatorCameraViewMaterial != SpectatorCameraViewMaterial) + { + SpectatorCameraBased.SpectatorCameraViewMaterial = SpectatorCameraViewMaterial; + } + } + + #region Unity lifecycle event functions + + private IEnumerator Start() + { + InitSuccess = false; + +#if !UNITY_EDITOR && UNITY_ANDROID + // To check, "XR_MSFT_first_person_observer" is enough because it + // requires "XR_MSFT_secondary_view_configuration" to be enabled also. + if (!ViveFirstPersonObserver.IsExtensionEnabled()) + { + Debug.LogWarning( + $"The OpenXR extension, {ViveSecondaryViewConfiguration.OPEN_XR_EXTENSION_STRING} " + + $"or {ViveFirstPersonObserver.OPEN_XR_EXTENSION_STRING}, is disabled. " + + "Please enable the extension before building the app."); + Debug.Log("Destroy the SpectatorCameraManager"); + Destroy(this); + yield break; + } +#endif + + if (_instance != null && _instance != this) + { + Debug.Log("Destroy the SpectatorCameraManager because it already exist one instance."); + Destroy(this); + yield break; + } + + _instance = this; + + // To prevent this from being destroyed on load, check whether this gameObject has a parent; + // if so, set it to no game parent. + if (transform.parent != null) + { + transform.SetParent(null); + } + + DontDestroyOnLoad(_instance.gameObject); + + if (!SpectatorCameraBased) + { + _ = new GameObject("Spectator Camera Base", typeof(SpectatorCameraBased)) + { + transform = + { + position = Vector3.zero, + rotation = Quaternion.identity + } + }; + + // Wait one frame for creating SpectatorCameraBased. + yield return null; + } + + SpectatorCameraBased.SetViewFromHmd(CameraSourceRef == SpectatorCameraHelper.CameraSourceRef.Hmd); + + if (SpectatorCameraViewMaterial) + { + SpectatorCameraBased.SpectatorCameraViewMaterial = SpectatorCameraViewMaterial; + } + + // Create camera + CreateCameraPrefab(); + + // Init camera parameter + InitCameraPose(); + InitCameraFov(); + InitCameraLayerMask(); + + // Register event + SpectatorCameraBased.OnSpectatorStart += SetupFrustum; + SpectatorCameraBased.OnSpectatorStart += SetSpectatorCameraViewMaterial; + SpectatorCameraBased.OnSpectatorStop += SetupFrustum; + SceneManager.sceneLoaded += OnSceneLoaded; + + // For opening the app the first time, manually call SetupFrustum to + // avoid missing show frustum if the user is already recording + SetupFrustum(); + + InitSuccess = true; + + yield break; + + // Create the spectator camera (prefab) + void CreateCameraPrefab() + { + if (SpectatorCameraPrefab) + { + SpectatorCamera = Instantiate(SpectatorCameraPrefab); + } + else + { + SpectatorCamera = GameObject.CreatePrimitive(PrimitiveType.Sphere); + SpectatorCamera.transform.localScale = + SpectatorCameraHelper.SpectatorCameraSpherePrefabScaleDefault; + } + + SpectatorCameraBased.SpectatorCameraGameObject.transform.SetParent(SpectatorCamera.transform, false); + + DontDestroyOnLoad(SpectatorCamera); + } + + // Init the camera pose + void InitCameraPose() + { + Vector3 position; + Quaternion rotation; + + switch (CameraSourceRef) + { + case SpectatorCameraHelper.CameraSourceRef.Hmd: + { + if (IsMainCameraExist()) + { + Transform mainCameraTransform = SpectatorCameraBased.GetMainCamera().transform; + position = mainCameraTransform.position; + rotation = mainCameraTransform.rotation; + } + else + { + Debug.LogWarning("Main camera does not exist in the scene"); + return; + } + } + break; + case SpectatorCameraHelper.CameraSourceRef.Tracker: + { + if (!IsFollowTrackerExist()) + { + if (spectatorCameraTrackerList == null) + { + spectatorCameraTrackerList = new List(); + } + + if (SpectatorCameraTrackerList.Count > 0) + { + // If there is no tracker assign to the FollowSpectatorCameraTracker and there are + // some trackers in the scene, change to use the first tracker in the list as default + FollowSpectatorCameraTracker = SpectatorCameraTrackerList[0]; + } + else + { + // If there is no tracker in the scene, change to use the HMD as default + CameraSourceRef = SpectatorCameraHelper.CameraSourceRef.Hmd; + return; + } + } + + Transform followTrackerTransform = FollowSpectatorCameraTracker.transform; + position = followTrackerTransform.position; + rotation = followTrackerTransform.rotation; + } + break; + default: + throw new ArgumentOutOfRangeException(); + } + + CameraLastPosition = position; + CameraLastRotation = rotation; + + // Init camera prefab position + SpectatorCamera.transform.position = position; + // Init camera prefab rotation + SpectatorCamera.transform.rotation = rotation; + } + + // Init the camera FOV + void InitCameraFov() + { + float fov; + + switch (CameraSourceRef) + { + case SpectatorCameraHelper.CameraSourceRef.Hmd: + { + if (IsMainCameraExist()) + { + fov = VerticalFov; + } + else + { + Debug.LogWarning("Main camera does not exist in the scene"); + return; + } + } + break; + case SpectatorCameraHelper.CameraSourceRef.Tracker: + { + if (!IsFollowTrackerExist()) + { + if (spectatorCameraTrackerList == null) + { + spectatorCameraTrackerList = new List(); + } + + if (SpectatorCameraTrackerList.Count > 0) + { + // If there is no tracker assign to the FollowSpectatorCameraTracker and there are + // some trackers in the scene, change to use the first tracker in the list as default + FollowSpectatorCameraTracker = SpectatorCameraTrackerList[0]; + } + else + { + // If there is no tracker in the scene, change to use the HMD as default + CameraSourceRef = SpectatorCameraHelper.CameraSourceRef.Hmd; + return; + } + } + + fov = FollowSpectatorCameraTracker.VerticalFov; + } + break; + default: + throw new ArgumentOutOfRangeException(); + } + + SpectatorCameraBased.SpectatorCamera.fieldOfView = fov; + } + + // Init the camera layer mask + void InitCameraLayerMask() + { + LayerMask layerMaskValue; + + switch (CameraSourceRef) + { + case SpectatorCameraHelper.CameraSourceRef.Hmd: + { + if (IsMainCameraExist()) + { + layerMaskValue = SpectatorCameraBased.GetMainCamera().cullingMask; + } + else + { + Debug.LogWarning("Main camera does not exist in the scene"); + return; + } + } + break; + case SpectatorCameraHelper.CameraSourceRef.Tracker: + { + if (!IsFollowTrackerExist()) + { + if (spectatorCameraTrackerList == null) + { + spectatorCameraTrackerList = new List(); + } + + if (SpectatorCameraTrackerList.Count > 0) + { + // If there is no tracker assign to the FollowSpectatorCameraTracker and there are + // some trackers in the scene, change to use the first tracker in the list as default + FollowSpectatorCameraTracker = SpectatorCameraTrackerList[0]; + } + else + { + // If there is no tracker in the scene, change to use the HMD as default + CameraSourceRef = SpectatorCameraHelper.CameraSourceRef.Hmd; + return; + } + } + + layerMaskValue = FollowSpectatorCameraTracker.LayerMask; + } + break; + default: + throw new ArgumentOutOfRangeException(); + } + + SpectatorCameraBased.SpectatorCamera.cullingMask = layerMaskValue; + } + } + + private void LateUpdate() + { + if (!InitSuccess) + { + return; + } + + Vector3 position; + Quaternion rotation; + bool isSmoothCameraMovementValue; + float smoothCameraMovementSpeedValue; + + switch (CameraSourceRef) + { + case SpectatorCameraHelper.CameraSourceRef.Hmd: + { + if (IsMainCameraExist()) + { + Transform mainCameraTransform = SpectatorCameraBased.GetMainCamera().transform; + position = mainCameraTransform.position; + rotation = mainCameraTransform.rotation; + isSmoothCameraMovementValue = IsSmoothCameraMovement; + smoothCameraMovementSpeedValue = SmoothCameraMovementSpeed; + } + else + { + Debug.LogWarning("Main camera does not exist in the scene"); + return; + } + } + break; + case SpectatorCameraHelper.CameraSourceRef.Tracker: + { + if (!IsFollowTrackerExist()) + { + if (spectatorCameraTrackerList == null) + { + spectatorCameraTrackerList = new List(); + } + + if (SpectatorCameraTrackerList.Count > 0) + { + // If there is no tracker assign to the FollowSpectatorCameraTracker and there are + // some trackers in the scene, change to use the first tracker in the list as default + FollowSpectatorCameraTracker = SpectatorCameraTrackerList[0]; + } + else + { + // If there is no tracker in the scene, change to use the HMD as default + CameraSourceRef = SpectatorCameraHelper.CameraSourceRef.Hmd; + return; + } + } + + isSmoothCameraMovementValue = FollowSpectatorCameraTracker.IsSmoothCameraMovement; + smoothCameraMovementSpeedValue = FollowSpectatorCameraTracker.SmoothCameraMovementSpeed; + + Transform trackerTransform = FollowSpectatorCameraTracker.transform; + position = trackerTransform.position; + rotation = trackerTransform.rotation; + } + break; + default: + throw new ArgumentOutOfRangeException(); + } + + if (isSmoothCameraMovementValue) + { + position = Vector3.Lerp(CameraLastPosition, position, Time.deltaTime * smoothCameraMovementSpeedValue); + + // To avoid problem: + // https://discussions.unity.com/t/error-compareapproximately-ascalar-0-0f-with-quaternion-lerp/161461/2 + float t = Mathf.Clamp(Time.deltaTime * smoothCameraMovementSpeedValue, 0f, 1 - Mathf.Epsilon); + rotation = Quaternion.Lerp(CameraLastRotation, rotation, t); + } + + CameraLastPosition = position; + CameraLastRotation = rotation; + + // Set camera prefab position and rotation + SpectatorCamera.transform.position = position; + SpectatorCamera.transform.rotation = rotation; + } + + private void OnDestroy() + { + if (!InitSuccess) + { + return; + } + + Debug.Log("OnDestroy"); + + if (SpectatorCameraBased) + { + SpectatorCameraBased.SpectatorCameraGameObject.transform.SetParent(null); + SpectatorCameraBased.OnSpectatorStart -= SetupFrustum; + SpectatorCameraBased.OnSpectatorStart -= SetSpectatorCameraViewMaterial; + SpectatorCameraBased.OnSpectatorStop -= SetupFrustum; + } + + SceneManager.sceneLoaded -= OnSceneLoaded; + + Destroy(SpectatorCamera); + _instance = null; + } + + private void OnSceneLoaded(Scene scene, LoadSceneMode mode) + { + if (!InitSuccess) + { + return; + } + + Debug.Log($"OnSceneLoaded: {scene.name}"); + + // Reset camera reference source + CameraSourceRef = SpectatorCameraHelper.CameraSourceRef.Hmd; + + // Reset Tracker and tracker list + FollowSpectatorCameraTracker = null; + spectatorCameraTrackerList?.Clear(); + } + + #endregion + } +} \ No newline at end of file diff --git a/com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/SpectatorCameraManager.cs.meta b/com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/SpectatorCameraManager.cs.meta new file mode 100644 index 0000000..1619c56 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/SpectatorCameraManager.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: fda46617f9e447e47863938d3006d5bd +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/SpectatorCameraTracker.Editor.cs b/com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/SpectatorCameraTracker.Editor.cs new file mode 100644 index 0000000..0d6f6da --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/SpectatorCameraTracker.Editor.cs @@ -0,0 +1,374 @@ +// Copyright HTC Corporation All Rights Reserved. + +#if UNITY_EDITOR +using System.Collections.Generic; +using System.IO; +using UnityEditor; +using UnityEngine; +using VIVE.OpenXR.Toolkits.Spectator.Helper; + +namespace VIVE.OpenXR.Toolkits.Spectator +{ + /// + /// Name: SpectatorCameraTracker.Editor.cs + /// Role: General script use in Unity Editor only + /// Responsibility: Display the SpectatorCameraTracker.cs in Unity Inspector + /// + public partial class SpectatorCameraTracker + { + [field: SerializeField] private bool IsRequireLoadJsonFile { get; set; } + + [CustomEditor(typeof(SpectatorCameraTracker))] + public class SpectatorCameraTrackerSettingEditor : UnityEditor.Editor + { + private SerializedProperty IsRequireLoadJsonFile { get; set; } + private List JsonFileList { get; set; } + private Vector2 JsonFileScrollViewVector { get; set; } + + private SerializedProperty IsSmoothCameraMovement { get; set; } + private SerializedProperty SmoothCameraMovementSpeed { get; set; } + private SerializedProperty PanoramaResolution { get; set; } + private SerializedProperty PanoramaOutputFormat { get; set; } + private SerializedProperty PanoramaOutputType { get; set; } + + private void OnEnable() + { + IsRequireLoadJsonFile = + serializedObject.FindProperty(EditorHelper.PropertyName("IsRequireLoadJsonFile")); + JsonFileList = new List(); + JsonFileScrollViewVector = Vector2.zero; + + IsSmoothCameraMovement = + serializedObject.FindProperty(EditorHelper.PropertyName("IsSmoothCameraMovement")); + SmoothCameraMovementSpeed = + serializedObject.FindProperty(EditorHelper.PropertyName("SmoothCameraMovementSpeed")); + PanoramaResolution = serializedObject.FindProperty(EditorHelper.PropertyName("PanoramaResolution")); + PanoramaOutputFormat = serializedObject.FindProperty(EditorHelper.PropertyName("PanoramaOutputFormat")); + PanoramaOutputType = serializedObject.FindProperty(EditorHelper.PropertyName("PanoramaOutputType")); + } + + public override void OnInspectorGUI() + { + // Just return if not "SpectatorCameraTrackerSetting" class + if (!(target is SpectatorCameraTracker)) + { + return; + } + + serializedObject.Update(); + + DrawGUI(); + + serializedObject.ApplyModifiedProperties(); + } + + private void DrawGUI() + { + #region GUIStyle + + var labelStyle = new GUIStyle() + { + richText = true, + alignment = TextAnchor.MiddleCenter, + normal = new GUIStyleState + { + textColor = EditorGUIUtility.isProSkin ? Color.green : Color.black + } + }; + + var resetButtonStyle = new GUIStyle(GUI.skin.button) + { + fontStyle = FontStyle.Bold, + normal = new GUIStyleState + { + textColor = EditorGUIUtility.isProSkin ? Color.yellow : Color.red + }, + hover = new GUIStyleState + { + textColor = Color.red + }, + active = new GUIStyleState + { + textColor = Color.cyan + }, + }; + + var boldButtonStyle = new GUIStyle(GUI.skin.button) + { + fontStyle = FontStyle.Bold + }; + + #endregion + + var script = (SpectatorCameraTracker)target; + + // Button for reset value + if (GUILayout.Button("Reset to default value", resetButtonStyle)) + { + Undo.RecordObject(target, $"Reset {target.name} SpectatorCameraTracker to default value"); + EditorUtility.SetDirty(target); + script.ResetSetting(); + } + + // Button for export setting + if (GUILayout.Button("Export Spectator Camera Tracker Setting", boldButtonStyle)) + { + script.ExportSetting2JsonFile(SpectatorCameraHelper.AttributeFileLocation.ResourceFolder); + AssetDatabase.Refresh(); + } + + #region Load setting from JSON file + + GUILayout.BeginHorizontal(); + EditorGUI.BeginDisabledGroup(IsRequireLoadJsonFile.boolValue); + if (GUILayout.Button("Load Setting From JSON File in Resources Folder", boldButtonStyle) || + IsRequireLoadJsonFile.boolValue) + { + IsRequireLoadJsonFile.boolValue = true; + var searchPattern = + $"{SpectatorCameraHelper.ATTRIBUTE_FILE_PREFIX_NAME}*.{SpectatorCameraHelper.ATTRIBUTE_FILE_EXTENSION}"; + + if (JsonFileList == null) + { + JsonFileList = new List(); + } + + JsonFileList.Clear(); + + var dir = new DirectoryInfo(Path.Combine(Application.dataPath, "Resources")); + var files = dir.GetFiles(searchPattern); + foreach (var item in files) + { + JsonFileList.Add(item.Name); + } + + if (JsonFileList.Count == 0) + { + Debug.Log( + "Can't find any JSON file related to the spectator camera setting in the Resources folder."); + IsRequireLoadJsonFile.boolValue = false; + } + } + + EditorGUI.EndDisabledGroup(); + + if (IsRequireLoadJsonFile.boolValue) + { + if (GUILayout.Button("Cancel")) + { + IsRequireLoadJsonFile.boolValue = false; + } + } + + GUILayout.EndHorizontal(); + + if (IsRequireLoadJsonFile.boolValue) + { + Rect r = EditorGUILayout.BeginVertical(); + + JsonFileScrollViewVector = EditorGUILayout.BeginScrollView(JsonFileScrollViewVector, + GUILayout.Width(r.width), + GUILayout.Height(80)); + + for (int i = 0; i < JsonFileList.Count; i++) + { + if (GUILayout.Button(JsonFileList[i])) + { + var path = Path.Combine( + Path.Combine(Application.dataPath, "Resources"), + JsonFileList[i]); + Undo.RecordObject(target, $"Load {JsonFileList[i]} setting to {target.name} SpectatorCameraTracker"); + EditorUtility.SetDirty(target); + script.LoadSettingFromJsonFile(path); + } + } + + EditorGUILayout.EndScrollView(); + + EditorGUILayout.EndVertical(); + } + + #endregion + + EditorGUILayout.LabelField("\n"); + + #region Setting related to spectator camera and its frustum show/hide + + EditorGUILayout.LabelField("[ General Setting ]", labelStyle); + + EditorGUI.BeginChangeCheck(); + // Setting of spectator camera layer mask + var currentLayerMask = + LayerMaskHelper.LayerMaskDrawer.LayerMaskField("Camera Layer Mask", script.LayerMask); + if (EditorGUI.EndChangeCheck()) + { + Undo.RecordObject(target, $"Modified {target.name} SpectatorCameraTracker LayerMask"); + EditorUtility.SetDirty(target); + script.LayerMask = currentLayerMask; + } + + // Setting of smooth spectator camera movement + EditorGUILayout.PropertyField(IsSmoothCameraMovement, + new GUIContent("Enable Smoothing Camera Movement")); + if (IsSmoothCameraMovement.boolValue) + { + EditorGUILayout.LabelField("\n"); + + EditorGUILayout.LabelField("[ Smooth Camera Movement Speed Setting ]", labelStyle); + + EditorGUILayout.IntSlider( + SmoothCameraMovementSpeed, + SpectatorCameraHelper.SMOOTH_CAMERA_MOVEMENT_MIN, + SpectatorCameraHelper.SMOOTH_CAMERA_MOVEMENT_MAX, + "Speed of Smoothing Camera Movement"); + + EditorGUILayout.LabelField("\n"); + } + + EditorGUI.BeginChangeCheck(); + // Spectator camera frustum show/hide + var currentIsFrustumShowed = + EditorGUILayout.Toggle("Enable Camera FOV Frustum", script.IsFrustumShowed); + if (EditorGUI.EndChangeCheck()) + { + Undo.RecordObject(target, $"Modified {target.name} SpectatorCameraTracker IsFrustumShowed"); + EditorUtility.SetDirty(target); + script.IsFrustumShowed = currentIsFrustumShowed; + } + + #endregion + + EditorGUILayout.LabelField("\n"); + + #region VerticalFov + + EditorGUILayout.LabelField("[ Vertical FOV Setting ]", labelStyle); + + EditorGUI.BeginChangeCheck(); + // FOV + var currentVerticalFov = EditorGUILayout.Slider( + "Vertical FOV", + script.VerticalFov, + SpectatorCameraHelper.VERTICAL_FOV_MIN, + SpectatorCameraHelper.VERTICAL_FOV_MAX); + if (EditorGUI.EndChangeCheck()) + { + Undo.RecordObject(target, $"Modified {target.name} SpectatorCameraTracker VerticalFov"); + EditorUtility.SetDirty(target); + script.VerticalFov = currentVerticalFov; + } + + #endregion + + EditorGUILayout.LabelField("\n"); + + #region Setting related to panorama capturing of spectator camera + + // Panorama resolution + EditorGUILayout.LabelField("[ Panorama Setting ]", labelStyle); + EditorGUILayout.PropertyField(PanoramaResolution, new GUIContent("Resolution")); + + // Panorama output format + EditorGUILayout.PropertyField(PanoramaOutputFormat, new GUIContent("Output Format")); + + // Panorama output type + EditorGUILayout.PropertyField(PanoramaOutputType, new GUIContent("Output Type")); + + #endregion + + EditorGUILayout.LabelField("\n"); + + #region Setting related to frustum + + if (script.IsFrustumShowed) + { + EditorGUILayout.LabelField("[ Frustum Setting ]", labelStyle); + + EditorGUI.BeginChangeCheck(); + // Count of frustum line + var currentFrustumLineCount = (SpectatorCameraHelper.FrustumLineCount) + EditorGUILayout.EnumPopup("Frustum Line Total", script.FrustumLineCount); + if (EditorGUI.EndChangeCheck()) + { + Undo.RecordObject(target, $"Modified {target.name} SpectatorCameraTracker FrustumLineCount"); + EditorUtility.SetDirty(target); + script.FrustumLineCount = currentFrustumLineCount; + } + + EditorGUI.BeginChangeCheck(); + // Count of frustum center line + var currentFrustumCenterLineCount = (SpectatorCameraHelper.FrustumCenterLineCount) + EditorGUILayout.EnumPopup("Frustum Center Line Total", script.FrustumCenterLineCount); + if (EditorGUI.EndChangeCheck()) + { + Undo.RecordObject(target, $"Modified {target.name} SpectatorCameraTracker FrustumCenterLineCount"); + EditorUtility.SetDirty(target); + script.FrustumCenterLineCount = currentFrustumCenterLineCount; + } + + EditorGUILayout.LabelField("\n"); + + EditorGUI.BeginChangeCheck(); + // Width of frustum line + var currentFrustumLineWidth = + EditorGUILayout.Slider( + "Frustum Line Width", + script.FrustumLineWidth, + SpectatorCameraHelper.FRUSTUM_LINE_WIDTH_MIN, + SpectatorCameraHelper.FRUSTUM_LINE_WIDTH_MAX); + if (EditorGUI.EndChangeCheck()) + { + Undo.RecordObject(target, $"Modified {target.name} SpectatorCameraTracker FrustumLineWidth"); + EditorUtility.SetDirty(target); + script.FrustumLineWidth = currentFrustumLineWidth; + } + + EditorGUI.BeginChangeCheck(); + // Width of frustum center line + var currentFrustumCenterLineWidth = + EditorGUILayout.Slider( + "Frustum Center Line Width", + script.FrustumCenterLineWidth, + SpectatorCameraHelper.FRUSTUM_CENTER_LINE_WIDTH_MIN, + SpectatorCameraHelper.FRUSTUM_CENTER_LINE_WIDTH_MAX); + if (EditorGUI.EndChangeCheck()) + { + Undo.RecordObject(target, $"Modified {target.name} SpectatorCameraTracker FrustumCenterLineWidth"); + EditorUtility.SetDirty(target); + script.FrustumCenterLineWidth = currentFrustumCenterLineWidth; + } + + EditorGUILayout.LabelField("\n"); + + EditorGUI.BeginChangeCheck(); + // Color of frustum line + var currentFrustumLineColor = EditorGUILayout.ColorField( + "Frustum Line Color", script.FrustumLineColor); + if (EditorGUI.EndChangeCheck()) + { + Undo.RecordObject(target, $"Modified {target.name} SpectatorCameraTracker FrustumLineColor"); + EditorUtility.SetDirty(target); + script.FrustumLineColor = currentFrustumLineColor; + } + + EditorGUI.BeginChangeCheck(); + // Color of frustum center line + var currentFrustumCenterLineColor = EditorGUILayout.ColorField( + "Frustum Center Line Color", + script.FrustumCenterLineColor); + if (EditorGUI.EndChangeCheck()) + { + Undo.RecordObject(target, $"Modified {target.name} SpectatorCameraTracker FrustumCenterLineColor"); + EditorUtility.SetDirty(target); + script.FrustumCenterLineColor = currentFrustumCenterLineColor; + } + + EditorGUILayout.LabelField("\n"); + } + + #endregion + } + } + } +} +#endif \ No newline at end of file diff --git a/com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/SpectatorCameraTracker.Editor.cs.meta b/com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/SpectatorCameraTracker.Editor.cs.meta new file mode 100644 index 0000000..e189a38 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/SpectatorCameraTracker.Editor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 523f24465def2a246b2f27dca663a530 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/SpectatorCameraTracker.cs b/com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/SpectatorCameraTracker.cs new file mode 100644 index 0000000..648090c --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/SpectatorCameraTracker.cs @@ -0,0 +1,479 @@ +// Copyright HTC Corporation All Rights Reserved. + +using System; +using UnityEngine; +using UnityEngine.SceneManagement; +using VIVE.OpenXR.Toolkits.Spectator.Helper; + +namespace VIVE.OpenXR.Toolkits.Spectator +{ + /// + /// Name: SpectatorCameraTracker.cs + /// Role: General script + /// Responsibility: To implement the spectator camera tracker setting and I/O function + /// + public partial class SpectatorCameraTracker : MonoBehaviour, ISpectatorCameraSetting + { + private const int TryAddTrackerIntervalSecond = 1; + + private SpectatorCameraManager SpectatorCameraManager => SpectatorCameraManager.Instance; + public SpectatorCameraHelper.CameraSourceRef CameraSourceRef => SpectatorCameraHelper.CameraSourceRef.Tracker; + + public Vector3 Position + { + get => transform.position; + set => transform.position = value; + } + + public Quaternion Rotation + { + get => transform.rotation; + set => transform.rotation = value; + } + + [SerializeField] private LayerMask layerMask = SpectatorCameraHelper.LayerMaskDefault; + + public LayerMask LayerMask + { + get => layerMask; + set + { + if (layerMask == value) + { + return; + } + + layerMask = value; + + if (Application.isPlaying && + SpectatorCameraManager != null && + SpectatorCameraManager.IsCameraSourceAsTracker() && + SpectatorCameraManager.IsFollowTrackerEqualTo(this)) + { + SpectatorCameraManager.SpectatorCameraBased.SpectatorCamera.cullingMask = layerMask; + } + } + } + + [field: SerializeField] + public bool IsSmoothCameraMovement { get; set; } = SpectatorCameraHelper.IS_SMOOTH_CAMERA_MOVEMENT_DEFAULT; + + [field: SerializeField] + public int SmoothCameraMovementSpeed { get; set; } = SpectatorCameraHelper.SMOOTH_CAMERA_MOVEMENT_SPEED_DEFAULT; + + [SerializeField] private bool isFrustumShowed = SpectatorCameraHelper.IS_FRUSTUM_SHOWED_DEFAULT; + + public bool IsFrustumShowed + { + get => isFrustumShowed; + set + { + if (isFrustumShowed == value) + { + return; + } + + isFrustumShowed = value; + + if (Application.isPlaying && + SpectatorCameraManager != null && + SpectatorCameraManager.IsCameraSourceAsTracker() && + SpectatorCameraManager.IsFollowTrackerEqualTo(this)) + { + SpectatorCameraManager.SetupFrustum(); + } + } + } + + [SerializeField] private float verticalFov = SpectatorCameraHelper.VERTICAL_FOV_DEFAULT; + + public float VerticalFov + { + get => verticalFov; + set + { + if (Math.Abs(verticalFov - value) < SpectatorCameraHelper.COMPARE_FLOAT_MEDIUM_THRESHOLD) + { + return; + } + + verticalFov = Mathf.Clamp( + value, + SpectatorCameraHelper.VERTICAL_FOV_MIN, + SpectatorCameraHelper.VERTICAL_FOV_MAX); + + if (Application.isPlaying && + SpectatorCameraManager != null && + SpectatorCameraManager.IsCameraSourceAsTracker() && + SpectatorCameraManager.IsFollowTrackerEqualTo(this)) + { + SpectatorCameraManager.SpectatorCameraBased.SpectatorCamera.fieldOfView = verticalFov; + SpectatorCameraManager.SetupFrustum(); + } + } + } + + #region Panorama properties + + [field: SerializeField] + public SpectatorCameraHelper.SpectatorCameraPanoramaResolution PanoramaResolution { get; set; } = + SpectatorCameraHelper.PANORAMA_RESOLUTION_DEFAULT; + + [field: SerializeField] + public TextureProcessHelper.PictureOutputFormat PanoramaOutputFormat { get; set; } = + SpectatorCameraHelper.PANORAMA_OUTPUT_FORMAT_DEFAULT; + + [field: SerializeField] + public TextureProcessHelper.PanoramaType PanoramaOutputType { get; set; } = + SpectatorCameraHelper.PANORAMA_TYPE_DEFAULT; + + #endregion + + [SerializeField] private SpectatorCameraHelper.FrustumLineCount frustumLineCount = + SpectatorCameraHelper.FRUSTUM_LINE_COUNT_DEFAULT; + + public SpectatorCameraHelper.FrustumLineCount FrustumLineCount + { + get => frustumLineCount; + set + { + if (frustumLineCount == value) + { + return; + } + + frustumLineCount = value; + + if (Application.isPlaying && + SpectatorCameraManager != null && + SpectatorCameraManager.IsCameraSourceAsTracker() && + SpectatorCameraManager.IsFollowTrackerEqualTo(this)) + { + SpectatorCameraManager.SetupFrustumLine(); + } + } + } + + [SerializeField] private SpectatorCameraHelper.FrustumCenterLineCount frustumCenterLineCount = + SpectatorCameraHelper.FRUSTUM_CENTER_LINE_COUNT_DEFAULT; + + public SpectatorCameraHelper.FrustumCenterLineCount FrustumCenterLineCount + { + get => frustumCenterLineCount; + set + { + if (frustumCenterLineCount == value) + { + return; + } + + frustumCenterLineCount = value; + + if (Application.isPlaying && + SpectatorCameraManager != null && + SpectatorCameraManager.IsCameraSourceAsTracker() && + SpectatorCameraManager.IsFollowTrackerEqualTo(this)) + { + SpectatorCameraManager.SetupFrustumCenterLine(); + } + } + } + + [SerializeField] private float frustumLineWidth = SpectatorCameraHelper.FRUSTUM_LINE_WIDTH_DEFAULT; + + public float FrustumLineWidth + { + get => frustumLineWidth; + set + { + if (Math.Abs(frustumLineWidth - value) < SpectatorCameraHelper.COMPARE_FLOAT_SUPER_SMALL_THRESHOLD) + { + return; + } + + frustumLineWidth = Mathf.Clamp( + value, + SpectatorCameraHelper.FRUSTUM_LINE_WIDTH_MIN, + SpectatorCameraHelper.FRUSTUM_LINE_WIDTH_MAX); + + if (Application.isPlaying && + SpectatorCameraManager != null && + SpectatorCameraManager.IsCameraSourceAsTracker() && + SpectatorCameraManager.IsFollowTrackerEqualTo(this)) + { + SpectatorCameraManager.SetupFrustumLine(); + } + } + } + + [SerializeField] private float frustumCenterLineWidth = SpectatorCameraHelper.FRUSTUM_CENTER_LINE_WIDTH_DEFAULT; + + public float FrustumCenterLineWidth + { + get => frustumCenterLineWidth; + set + { + if (Math.Abs(frustumCenterLineWidth - value) < + SpectatorCameraHelper.COMPARE_FLOAT_SUPER_SMALL_THRESHOLD) + { + return; + } + + frustumCenterLineWidth = Mathf.Clamp(value, SpectatorCameraHelper.FRUSTUM_CENTER_LINE_WIDTH_MIN, + SpectatorCameraHelper.FRUSTUM_CENTER_LINE_WIDTH_MAX); + + if (Application.isPlaying && + SpectatorCameraManager != null && + SpectatorCameraManager.IsCameraSourceAsTracker() && + SpectatorCameraManager.IsFollowTrackerEqualTo(this)) + { + SpectatorCameraManager.SetupFrustumCenterLine(); + } + } + } + + [SerializeField] private Color frustumLineColor = SpectatorCameraHelper.LineColorDefault; + + public Color FrustumLineColor + { + get => frustumLineColor; + set + { + if (frustumLineColor == value) + { + return; + } + + frustumLineColor = value; + + if (Application.isPlaying && + SpectatorCameraManager != null && + SpectatorCameraManager.IsCameraSourceAsTracker() && + SpectatorCameraManager.IsFollowTrackerEqualTo(this)) + { + SpectatorCameraManager.SetupFrustumLine(); + } + } + } + + [SerializeField] private Color frustumCenterLineColor = SpectatorCameraHelper.LineColorDefault; + + public Color FrustumCenterLineColor + { + get => frustumCenterLineColor; + set + { + if (frustumCenterLineColor == value) + { + return; + } + + frustumCenterLineColor = value; + + if (Application.isPlaying && + SpectatorCameraManager != null && + SpectatorCameraManager.IsCameraSourceAsTracker() && + SpectatorCameraManager.IsFollowTrackerEqualTo(this)) + { + SpectatorCameraManager.SetupFrustumCenterLine(); + } + } + } + + public void ResetSetting() + { + LayerMask = SpectatorCameraHelper.LayerMaskDefault; + IsSmoothCameraMovement = SpectatorCameraHelper.IS_SMOOTH_CAMERA_MOVEMENT_DEFAULT; + SmoothCameraMovementSpeed = SpectatorCameraHelper.SMOOTH_CAMERA_MOVEMENT_SPEED_DEFAULT; + IsFrustumShowed = SpectatorCameraHelper.IS_FRUSTUM_SHOWED_DEFAULT; + VerticalFov = SpectatorCameraHelper.VERTICAL_FOV_DEFAULT; + PanoramaResolution = SpectatorCameraHelper.PANORAMA_RESOLUTION_DEFAULT; + PanoramaOutputFormat = SpectatorCameraHelper.PANORAMA_OUTPUT_FORMAT_DEFAULT; + PanoramaOutputType = SpectatorCameraHelper.PANORAMA_TYPE_DEFAULT; + FrustumLineCount = SpectatorCameraHelper.FRUSTUM_LINE_COUNT_DEFAULT; + FrustumCenterLineCount = SpectatorCameraHelper.FRUSTUM_CENTER_LINE_COUNT_DEFAULT; + FrustumLineWidth = SpectatorCameraHelper.FRUSTUM_LINE_WIDTH_DEFAULT; + FrustumCenterLineWidth = SpectatorCameraHelper.FRUSTUM_CENTER_LINE_WIDTH_DEFAULT; + FrustumLineColor = SpectatorCameraHelper.LineColorDefault; + FrustumCenterLineColor = SpectatorCameraHelper.LineColorDefault; + } + + public void ExportSetting2JsonFile(in SpectatorCameraHelper.AttributeFileLocation attributeFileLocation) + { +#if !UNITY_EDITOR + if (attributeFileLocation is SpectatorCameraHelper.AttributeFileLocation.ResourceFolder) + { + Debug.LogError("It's not allowed to save setting to resource folder in runtime mode"); + return; + } +#endif + + var data = new SpectatorCameraHelper.SpectatorCameraAttribute( + CameraSourceRef, + Position, + Rotation, + LayerMask, + IsSmoothCameraMovement, + SmoothCameraMovementSpeed, + IsFrustumShowed, + VerticalFov, + PanoramaResolution, + PanoramaOutputFormat, + PanoramaOutputType, + FrustumLineCount, + FrustumCenterLineCount, + FrustumLineWidth, + FrustumCenterLineWidth, + FrustumLineColor, + FrustumCenterLineColor); + +#if UNITY_EDITOR + if (attributeFileLocation is SpectatorCameraHelper.AttributeFileLocation.ResourceFolder) + { + SpectatorCameraHelper.SaveAttributeData2ResourcesFolder( + SceneManager.GetActiveScene().name, + gameObject.name, + data); + } + else if (attributeFileLocation is SpectatorCameraHelper.AttributeFileLocation.PersistentFolder) + { + SpectatorCameraHelper.SaveAttributeData2PersistentFolder( + SceneManager.GetActiveScene().name, + gameObject.name, + data); + } +#else + SpectatorCameraHelper.SaveAttributeData2PersistentFolder( + SceneManager.GetActiveScene().name, + gameObject.name, + data); +#endif + } + + public void LoadSettingFromJsonFile(in string jsonFilePath) + { + bool loadSuccess = SpectatorCameraHelper.LoadAttributeFileFromFolder( + jsonFilePath, + out SpectatorCameraHelper.SpectatorCameraAttribute data); + if (loadSuccess) + { + ApplyData(data); + } + else + { + Debug.Log($"Load setting from {jsonFilePath} file to scene gameObject {gameObject.name} failed."); + } + } + + public void LoadSettingFromJsonFile( + in string sceneName, + in string trackerName, + in SpectatorCameraHelper.AttributeFileLocation attributeFileLocation) + { + if (string.IsNullOrEmpty(sceneName) || string.IsNullOrEmpty(trackerName)) + { + Debug.LogError("sceneName or trackerName is null or empty"); + return; + } + + var loadSuccess = false; + SpectatorCameraHelper.SpectatorCameraAttribute data = new SpectatorCameraHelper.SpectatorCameraAttribute(); + if (attributeFileLocation is SpectatorCameraHelper.AttributeFileLocation.ResourceFolder) + { + loadSuccess = SpectatorCameraHelper.LoadAttributeFileFromResourcesFolder( + sceneName, + trackerName, + out data); + } + else if (attributeFileLocation is SpectatorCameraHelper.AttributeFileLocation.PersistentFolder) + { + loadSuccess = SpectatorCameraHelper.LoadAttributeFileFromPersistentFolder( + sceneName, + trackerName, + out data); + } + + if (loadSuccess) + { + ApplyData(data); + } + else + { + var fileDirectory = string.Empty; + if (attributeFileLocation is SpectatorCameraHelper.AttributeFileLocation.ResourceFolder) + { + fileDirectory = System.IO.Path.Combine(Application.dataPath, "Resources"); + } + else if (attributeFileLocation is SpectatorCameraHelper.AttributeFileLocation.PersistentFolder) + { + fileDirectory = Application.persistentDataPath; + } + + var fileName = + SpectatorCameraHelper.GetSpectatorCameraAttributeFileNamePattern(sceneName, trackerName); + + Debug.Log( + $"Load setting from {fileDirectory}/{fileName} file to scene gameObject {gameObject.name} failed."); + } + } + + public void ApplyData(in SpectatorCameraHelper.SpectatorCameraAttribute data) + { + Transform gameObjectTransform = transform; + gameObjectTransform.position = data.position; + gameObjectTransform.rotation = data.rotation; + + LayerMask = data.layerMask; + IsSmoothCameraMovement = data.isSmoothCameraMovement; + SmoothCameraMovementSpeed = data.smoothCameraMovementSpeed; + IsFrustumShowed = data.isFrustumShowed; + VerticalFov = data.verticalFov; + PanoramaResolution = data.panoramaResolution; + PanoramaOutputFormat = data.panoramaOutputFormat; + PanoramaOutputType = data.panoramaOutputType; + FrustumLineCount = data.frustumLineCount; + FrustumCenterLineCount = data.frustumCenterLineCount; + FrustumLineWidth = data.frustumLineWidth; + FrustumCenterLineWidth = data.frustumCenterLineWidth; + FrustumLineColor = data.frustumLineColor; + FrustumCenterLineColor = data.frustumCenterLineColor; + } + + private void Start() + { + if (SpectatorCameraManager != null) + { + SpectatorCameraManager.AddSpectatorCameraTracker(this); + } + else + { + InvokeRepeating(nameof(AddTracker), TryAddTrackerIntervalSecond, TryAddTrackerIntervalSecond); + } + } + + private void OnEnable() + { + if (SpectatorCameraManager != null) + { + SpectatorCameraManager.AddSpectatorCameraTracker(this); + } + } + + private void OnDisable() + { + if (SpectatorCameraManager != null) + { + SpectatorCameraManager.RemoveSpectatorCameraTracker(this); + } + } + + private void AddTracker() + { + if (SpectatorCameraManager != null) + { + SpectatorCameraManager.AddSpectatorCameraTracker(this); + CancelInvoke(nameof(AddTracker)); + } + } + } +} \ No newline at end of file diff --git a/com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/SpectatorCameraTracker.cs.meta b/com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/SpectatorCameraTracker.cs.meta new file mode 100644 index 0000000..2afb1a0 --- /dev/null +++ b/com.htc.upm.vive.openxr/Runtime/Toolkits/Spectator/Scripts/SpectatorCameraTracker.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f0b61457a6a405c49b000f7a3ed895bf +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Runtime/VIVE.OpenXR.asmdef b/com.htc.upm.vive.openxr/Runtime/VIVE.OpenXR.asmdef index 24eb007..9fa3941 100644 --- a/com.htc.upm.vive.openxr/Runtime/VIVE.OpenXR.asmdef +++ b/com.htc.upm.vive.openxr/Runtime/VIVE.OpenXR.asmdef @@ -21,8 +21,23 @@ "versionDefines": [ { "name": "com.unity.xr.hands", - "expression": "", + "expression": "1.3.0", "define": "UNITY_XR_HANDS" + }, + { + "name": "com.unity.xr.interaction.toolkit", + "expression": "0.9.4-preview", + "define": "XR_INTERACTION_TOOLKIT" + }, + { + "name": "com.unity.xr.openxr", + "expression": "1.6.0", + "define": "UNITY_XR_OPENXR_1_6_0" + }, + { + "name": "com.unity.xr.openxr", + "expression": "1.9.1", + "define": "UNITY_XR_OPENXR_1_9_1" } ], "noEngineReferences": false diff --git a/com.htc.upm.vive.openxr/Runtime/VIVECosmosProfile.cs b/com.htc.upm.vive.openxr/Runtime/VIVECosmosProfile.cs index b1998f2..fa27b63 100644 --- a/com.htc.upm.vive.openxr/Runtime/VIVECosmosProfile.cs +++ b/com.htc.upm.vive.openxr/Runtime/VIVECosmosProfile.cs @@ -1,6 +1,7 @@ // Copyright HTC Corporation All Rights Reserved. using System.Collections.Generic; +using UnityEngine; using UnityEngine.Scripting; using UnityEngine.XR.OpenXR.Input; using UnityEngine.InputSystem; @@ -9,6 +10,7 @@ using UnityEngine.InputSystem.Controls; using UnityEngine.InputSystem.XR; using UnityEngine.XR; using UnityEngine.XR.OpenXR.Features; + #if UNITY_EDITOR using UnityEditor; using UnityEditor.XR.OpenXR.Features; @@ -272,6 +274,7 @@ namespace VIVE.OpenXR /// public const string haptic = "/output/haptic"; + private const string kLayoutName = "ViveCosmosController"; private const string kDeviceLocalizedName = "VIVE Cosmos Controller OpenXR"; /// @@ -279,21 +282,43 @@ namespace VIVE.OpenXR /// protected override void RegisterDeviceLayout() { + Debug.LogFormat("VIVECosmosProfile RegisterDeviceLayout() {0} , product: {1}", kLayoutName, kDeviceLocalizedName); InputSystem.RegisterLayout(typeof(ViveCosmosController), - matches: new InputDeviceMatcher() - .WithInterface(XRUtilities.InterfaceMatchAnyVersion) - .WithProduct(kDeviceLocalizedName)); + kLayoutName, + matches: new InputDeviceMatcher() + .WithInterface(XRUtilities.InterfaceMatchAnyVersion) + .WithProduct(kDeviceLocalizedName)); } - /// /// Removes the layout from the Input System. Matches the that is registered with . /// protected override void UnregisterDeviceLayout() { - InputSystem.RemoveLayout(typeof(ViveCosmosController).Name); + Debug.LogFormat("VIVECosmosProfile UnregisterDeviceLayout() {0}", kLayoutName); + InputSystem.RemoveLayout(kLayoutName); } +#if UNITY_XR_OPENXR_1_9_1 + /// + /// Return interaction profile type. VIVEFocus3Controller profile is Device type. + /// + /// Interaction profile type. + protected override InteractionProfileType GetInteractionProfileType() + { + return typeof(ViveCosmosController).IsSubclassOf(typeof(XRController)) ? InteractionProfileType.XRController : InteractionProfileType.Device; + } + + /// + /// Return device layer out string used for registering device VIVEFocus3Controller in InputSystem. + /// + /// Device layout string. + protected override string GetDeviceLayoutName() + { + return kLayoutName; + } +#endif + /// /// Registers an with OpenXR that matches the HTC Vive Controller. Also calls when the Input System package is available. /// diff --git a/com.htc.upm.vive.openxr/Runtime/VIVEFocus3Feature.cs b/com.htc.upm.vive.openxr/Runtime/VIVEFocus3Feature.cs index ce67336..cc2f0a2 100644 --- a/com.htc.upm.vive.openxr/Runtime/VIVEFocus3Feature.cs +++ b/com.htc.upm.vive.openxr/Runtime/VIVEFocus3Feature.cs @@ -7,6 +7,8 @@ using UnityEngine.XR.OpenXR; using UnityEngine.XR.OpenXR.Features; using System.Runtime.InteropServices; using System; +using System.Linq; +using System.Reflection; using UnityEngine; #if UNITY_EDITOR @@ -16,7 +18,7 @@ using UnityEditor.XR.OpenXR.Features; namespace VIVE.OpenXR { #if UNITY_EDITOR - [OpenXRFeature(UiName = "VIVE XR Support", + [OpenXRFeature(UiName = "VIVE XR Support", Desc = "Necessary to deploy an VIVE XR compatible app.", Company = "HTC", DocumentationLink = "https://developer.vive.com/resources/openxr/openxr-mobile/tutorials/how-install-vive-wave-openxr-plugin/", @@ -24,11 +26,11 @@ namespace VIVE.OpenXR Version = "1.0.0", BuildTargetGroups = new[] { BuildTargetGroup.Android }, CustomRuntimeLoaderBuildTargets = new[] { BuildTarget.Android }, - FeatureId = featureId + FeatureId = featureId )] #endif - public class VIVEFocus3Feature : OpenXRFeature - { + public class VIVEFocus3Feature : OpenXRFeature + { const string LOG_TAG = "VIVE.OpenXR.VIVEFocus3Feature"; static void DEBUG(string msg) { Debug.Log(LOG_TAG + " " + msg); } static void WARNING(string msg) { Debug.LogWarning(LOG_TAG + " " + msg); } @@ -128,42 +130,323 @@ namespace VIVE.OpenXR #if UNITY_EDITOR protected override void GetValidationChecks(List rules, BuildTargetGroup targetGroup) - { - rules.Add(new ValidationRule(this) - { - message = "Only the Focus 3 Interaction Profile is supported right now.", - checkPredicate = () => - { - var settings = OpenXRSettings.GetSettingsForBuildTargetGroup(targetGroup); - if (null == settings) - return false; + { + rules.Add(new ValidationRule(this) + { + message = "The VIVE Focus 3 Controller Interaction profile is necessary.", + checkPredicate = () => + { + var settings = OpenXRSettings.GetSettingsForBuildTargetGroup(targetGroup); + if (null == settings) + return false; - bool touchFeatureEnabled = false; - foreach (var feature in settings.GetFeatures()) - { - if (feature.enabled) - { - if (feature is VIVEFocus3Profile) - touchFeatureEnabled = true; - } - } - return touchFeatureEnabled; - }, - fixIt = () => - { - var settings = OpenXRSettings.GetSettingsForBuildTargetGroup(targetGroup); - if (null == settings) - return; + bool touchFeatureEnabled = false; + foreach (var feature in settings.GetFeatures()) + { + if (feature.enabled) + { + if (feature is VIVEFocus3Profile) + touchFeatureEnabled = true; + } + } + return touchFeatureEnabled; + }, + fixIt = () => + { + var settings = OpenXRSettings.GetSettingsForBuildTargetGroup(targetGroup); + if (null == settings) + return; - foreach (var feature in settings.GetFeatures()) - { - if (feature is VIVEFocus3Profile) - feature.enabled = true; - } - }, - error = true, - }); - } + foreach (var feature in settings.GetFeatures()) + { + if (feature is VIVEFocus3Profile) + feature.enabled = true; + } + }, + error = true, + }); + rules.Add(CheckSpectatorCameraExtensionRequirement()); + rules.Add(ExtensionDuplicateEnabledChecker()); + rules.Add(ViveInteractionsShouldAlertRuleAndroid()); + } + + /// + /// Get the ValidationRule to check whether the editor environment matches the spectator camera feature min requirement or not + /// + private ValidationRule CheckSpectatorCameraExtensionRequirement() + { + const bool isErrorTreatedOnBuild = true; + const string openXrSettingPath = "Project/XR Plug-in Management/OpenXR"; + const string validationMessage = "Spectator Camera Feature is only available in Unity LTS version 2022.3.0f1 or above. Please ensure the environment matches the minimum requirement if enabled. Otherwise, please disable \"VIVE XR Spectator Camera\" checkbox or upgrade the Unity Editor."; + + return new ValidationRule(this) + { + message = validationMessage, + error = isErrorTreatedOnBuild, + checkPredicate = IsEnvMatchSpectatorCameraMinimalRequires, + fixIt = () => SettingsService.OpenProjectSettings(openXrSettingPath) + }; + } + private static bool IsEnvMatchSpectatorCameraMinimalRequires() + { + if (IsViveSpectatorCameraEnabled()) + { + // Spectator Camera Feature only available at Unity 2022 LTS or newer +#if UNITY_2022_3_OR_NEWER + return true; +#else + return false; #endif - } + } + + // Spectator Camera Feature disable, so no need to check + return true; + } + + /// + /// Check Spectator Camera Feature is enabled or not. + /// + /// True if Spectator Camera Feature is enabled. Otherwise, return False. + public static bool IsViveSpectatorCameraEnabled() + { + GetOpenXrExtensionInfo(BuildTargetGroup.Android, out var myExtensionList, true); + + return myExtensionList.Any(extension => + string.Equals(extension.OpenXrExtensionStrings, SecondaryViewConfiguration.ViveSecondaryViewConfiguration.OPEN_XR_EXTENSION_STRING)); + } + + /// + /// Get the ValidationRule to check if any OpenXR extensions are duplicately implemented and enabled. + /// + private ValidationRule ExtensionDuplicateEnabledChecker() + { + const bool isErrorTreatedOnBuild = true; + const BuildTargetGroup checkTargetPlatform = BuildTargetGroup.Android; + const string openXrSettingPath = "Project/XR Plug-in Management/OpenXR"; + const string validationMessage = "Compatibility and stability safeguard. Please ensure no duplicate " + + "OpenXR extensions are implemented and enabled."; + + return new ValidationRule(this) + { + message = validationMessage, + error = isErrorTreatedOnBuild, + checkPredicate = () => !IsOpenXrExtensionDuplicateEnabled(checkTargetPlatform), + fixIt = () => SettingsService.OpenProjectSettings(openXrSettingPath) + }; + } + + /// + /// Are there any OpenXR extensions that are duplicately implemented and enabled? + /// + /// The platform that is currently used. + /// True if there are any OpenXR extension is duplicately implemented and enabled. Otherwise, return false. + private static bool IsOpenXrExtensionDuplicateEnabled(in BuildTargetGroup buildTargetGroup) + { + var extensionStringList = new List(); + + var settings = OpenXRSettings.GetSettingsForBuildTargetGroup(buildTargetGroup); + foreach (OpenXRFeature feature in settings.GetFeatures()) + { + if (!feature.enabled) + { + continue; + } + + FieldInfo fieldInfoOpenXrExtensionStrings = typeof(OpenXRFeature).GetField( + "openxrExtensionStrings", + BindingFlags.NonPublic | BindingFlags.Instance); + if (fieldInfoOpenXrExtensionStrings != null) + { + var openXrExtensionStringsArray = + ((string)fieldInfoOpenXrExtensionStrings.GetValue(feature)).Split(' '); + + foreach (string stringItem in openXrExtensionStringsArray) + { + if (string.IsNullOrEmpty(stringItem)) + { + continue; + } + + if (extensionStringList.Contains(stringItem)) + { + return true; + } + + extensionStringList.Add(stringItem); + } + } + } + return false; + } + + #region Rule of ViveInteractions + private ValidationRule ViveInteractionsShouldAlertRuleAndroid() + { + const string validationMessage = "You should NOT enable VIVE XR - Interaction Group with no extension selected." + + "\nYou can select the necessary extensions those your content needs through VIVE XR - Interaction Group settings."; + const bool isErrorTreatedOnBuild = true; + const string openXrSettingPath = "Project/XR Plug-in Management/OpenXR"; + + return new ValidationRule(this) + { + message = validationMessage, + error = isErrorTreatedOnBuild, + checkPredicate = () => ViveInteractionsShouldAlert(), + fixIt = () => SettingsService.OpenProjectSettings(openXrSettingPath) + }; + } + private static bool ViveInteractionsShouldAlert() + { + OpenXRSettings settings = null; +#if UNITY_ANDROID + settings = OpenXRSettings.GetSettingsForBuildTargetGroup(BuildTargetGroup.Android); +#elif UNITY_STANDALONE + settings = OpenXRSettings.GetSettingsForBuildTargetGroup(BuildTargetGroup.Standalone); +#endif + if (settings != null) + { + foreach (var feature in settings.GetFeatures()) + { + if (feature is Interaction.ViveInteractions) + { + if (!feature.enabled) { return true; } + + bool viveHandInteraction = ((Interaction.ViveInteractions)feature).UseViveHandInteraction(); + bool viveWristTracker = ((Interaction.ViveInteractions)feature).UseViveWristTracker(); + bool viveXrTracker = ((Interaction.ViveInteractions)feature).UseViveXrTracker(); + bool khrHandInteraction = ((Interaction.ViveInteractions)feature).UseKhrHandInteraction(); + + return (viveHandInteraction || viveWristTracker || viveXrTracker || khrHandInteraction); + } + } + } + + return true; + } + #endregion + + private struct OpenXrExtension + { + public string OpenXrExtensionStrings; + public bool IsExtensionEnabled; + } + + /// + /// Get all OpenXR extension features according to the platform. + /// + /// The platform that is currently used. + /// List item that include all OpenXR extension features. + /// /// Bool denotes that record extensions that enable only. + private static void GetOpenXrExtensionInfo + ( + in BuildTargetGroup buildTargetGroup, + out List myExtensionList, + bool isRecordEnableOnly = false + ) + { + myExtensionList = new List(); + + // FeatureHelpers.RefreshFeatures(buildTargetGroup); + + var settings = OpenXRSettings.GetSettingsForBuildTargetGroup(buildTargetGroup); + foreach (OpenXRFeature feature in settings.GetFeatures()) + { + if (isRecordEnableOnly && !feature.enabled) + { + continue; + } + + FieldInfo fieldInfoOpenXrExtensionStrings = typeof(OpenXRFeature).GetField( + "openxrExtensionStrings", + BindingFlags.NonPublic | BindingFlags.Instance); + if (fieldInfoOpenXrExtensionStrings != null) + { + var openXrExtensionStringsArray = + ((string)fieldInfoOpenXrExtensionStrings.GetValue(feature)).Split(' '); + + foreach (var stringItem in openXrExtensionStringsArray) + { + if (string.IsNullOrEmpty(stringItem)) + { + continue; + } + + var openXrExtension = new OpenXrExtension + { + IsExtensionEnabled = feature.enabled, + OpenXrExtensionStrings = stringItem + }; + myExtensionList.Add(openXrExtension); + } + } + } + } + + /// + /// Are there any OpenXR extensions that are duplicately implemented and enabled? + /// + /// The OpenXR extension features list of the project. + /// The extension string that is duplicately implemented and enabled if it exists. Otherwise, return string.Empty. + private static string IsOpenXrExtensionDuplicateEnabled(in List openXrExtensionList) + { + var extensionDuplicateEnabledName = string.Empty; + var enableOpenXrExtension = new List(); + + foreach (OpenXrExtension extension in openXrExtensionList.Where(extension => extension.IsExtensionEnabled)) + { + if (string.IsNullOrEmpty(extension.OpenXrExtensionStrings)) + { + continue; + } + + if (enableOpenXrExtension.FirstOrDefault(x => + x.Contains(extension.OpenXrExtensionStrings)) != null) + { + extensionDuplicateEnabledName = extension.OpenXrExtensionStrings; + break; + } + + enableOpenXrExtension.Add(extension.OpenXrExtensionStrings); + } + + return extensionDuplicateEnabledName; + } + + /// + /// Is there a specific OpenXR extension that is duplicately implemented and enabled? + /// + /// The OpenXR extension features list of the project. + /// The string of the specific OpenXR extension that needs to be checked. + /// True if a specific OpenXR extension is duplicately implemented and enabled. Otherwise, return false. + private static bool IsOpenXrExtensionDuplicateEnabled + ( + in List openXrExtensionList, + in string checkOpenXrExtensionName + ) + { + bool isExtensionExist = false; + bool isExtensionDuplicate = false; + + foreach (var extension in openXrExtensionList) + { + if (!(string.Equals(extension.OpenXrExtensionStrings, checkOpenXrExtensionName) + && extension.IsExtensionEnabled)) + { + continue; + } + + if (!isExtensionExist) + { + isExtensionExist = true; + continue; + } + + isExtensionDuplicate = true; + break; + } + + return isExtensionDuplicate; + } +#endif + } } diff --git a/com.htc.upm.vive.openxr/Runtime/VIVEFocus3Profile.cs b/com.htc.upm.vive.openxr/Runtime/VIVEFocus3Profile.cs index 32bb160..36802e4 100644 --- a/com.htc.upm.vive.openxr/Runtime/VIVEFocus3Profile.cs +++ b/com.htc.upm.vive.openxr/Runtime/VIVEFocus3Profile.cs @@ -12,6 +12,7 @@ using UnityEngine.InputSystem.Controls; using UnityEngine.InputSystem.XR; using UnityEngine.Scripting; using UnityEngine.XR; +using UnityEngine.XR.OpenXR; using UnityEngine.XR.OpenXR.Features; using UnityEngine.XR.OpenXR.Input; @@ -26,6 +27,8 @@ using PoseControl = UnityEngine.InputSystem.XR.PoseControl; using PoseControl = UnityEngine.XR.OpenXR.Input.PoseControl; #endif +using VIVE.OpenXR.Hand; + namespace VIVE.OpenXR { /// @@ -44,7 +47,8 @@ namespace VIVE.OpenXR #endif public class VIVEFocus3Profile : OpenXRInteractionFeature { - const string LOG_TAG = "VIVE.OpenXR.VIVEFocus3Profile "; + #region Log + const string LOG_TAG = "VIVE.OpenXR.VIVEFocus3Profile"; StringBuilder m_sb = null; StringBuilder sb { get { @@ -52,8 +56,9 @@ namespace VIVE.OpenXR return m_sb; } } - void DEBUG(StringBuilder msg) { Debug.Log(msg); } - void ERROR(StringBuilder msg) { Debug.LogError(msg); } + void DEBUG(StringBuilder msg) { Debug.LogFormat("{0} {1}", LOG_TAG, msg); } + void ERROR(StringBuilder msg) { Debug.LogErrorFormat("{0} {1}", LOG_TAG, msg); } + #endregion private static VIVEFocus3Profile m_Instance = null; @@ -64,27 +69,34 @@ namespace VIVE.OpenXR /// public const string featureId = "vive.openxr.feature.focus3controller"; + private static bool HandInteractionExtEnabled { get { return OpenXRRuntime.IsExtensionEnabled(ViveHandInteractionExt.kOpenxrExtensionString); } } + /// /// An Input System device based on the hand interaction profile in the Interaction Profile. /// [Preserve, InputControlLayout(displayName = "VIVE Focus 3 Controller (OpenXR)", commonUsages = new[] { "LeftHand", "RightHand" })] public class VIVEFocus3Controller : XRControllerWithRumble, IInputUpdateCallbackReceiver { - const string LOG_TAG = "VIVE.OpenXR.VIVEFocus3Profile.VIVEFocus3Controller "; + #region Log + const string LOG_TAG = "VIVE.OpenXR.VIVEFocus3Profile.VIVEFocus3Controller"; StringBuilder m_sb = null; - StringBuilder sb { - get { + StringBuilder sb + { + get + { if (m_sb == null) { m_sb = new StringBuilder(); } return m_sb; } } - void DEBUG(StringBuilder msg) { Debug.Log(msg); } - void ERROR(StringBuilder msg) { Debug.LogError(msg); } + void DEBUG(StringBuilder msg) { Debug.LogFormat("{0} {1}", LOG_TAG, msg); } + void ERROR(StringBuilder msg) { Debug.LogErrorFormat("{0} {1}", LOG_TAG, msg); } + #endregion + #region Action Path /// /// A [Vector2Control](xref:UnityEngine.InputSystem.Controls.Vector2Control) that represents the OpenXR binding. /// - [Preserve, InputControl(aliases = new[] { "Primary2DAxis", "joystick", "joystickAxis", "thumbstickAxis" }, usage = "Primary2DAxis")] + [Preserve, InputControl(aliases = new[] { "Joystick", "primary2DAxis", "joystickAxis", "thumbstickAxis" }, usage = "Primary2DAxis")] public Vector2Control thumbstick { get; private set; } /// @@ -96,19 +108,19 @@ namespace VIVE.OpenXR /// /// A [ButtonControl](xref:UnityEngine.InputSystem.Controls.ButtonControl) that represents the OpenXR binding. /// - [Preserve, InputControl(aliases = new[] { "GripButton", "squeezeClick" }, usage = "GripButton")] + [Preserve, InputControl(aliases = new[] { "gripButton", "squeezeClicked" }, usage = "GripButton")] public ButtonControl gripPressed { get; private set; } /// /// A [ButtonControl](xref:UnityEngine.InputSystem.Controls.ButtonControl) that represents the OpenXR binding. /// - [Preserve, InputControl(aliases = new[] { "GripTouch", "squeezeTouch" }, usage = "GripTouch")] + [Preserve, InputControl(aliases = new[] { "GripTouch", "squeezeTouched" }, usage = "GripTouch")] public ButtonControl gripTouched { get; private set; } /// /// A [ButtonControl](xref:UnityEngine.InputSystem.Controls.ButtonControl) that represents the OpenXR bindings, depending on handedness. /// - [Preserve, InputControl(aliases = new[] { "menuButton" }, usage = "MenuButton")] + [Preserve, InputControl(aliases = new[] { "Primary", "menubutton" }, usage = "MenuButton")] public ButtonControl menu { get; private set; } /// @@ -132,32 +144,32 @@ namespace VIVE.OpenXR /// /// A [ButtonControl](xref:UnityEngine.InputSystem.Controls.ButtonControl) that represents the OpenXR binding. /// - [Preserve, InputControl(aliases = new[] { "triggerButton", "triggerClick" }, usage = "TriggerButton")] + [Preserve, InputControl(aliases = new[] { "indexButton", "triggerButton" }, usage = "TriggerButton")] public ButtonControl triggerPressed { get; private set; } /// /// A [ButtonControl](xref:UnityEngine.InputSystem.Controls.ButtonControl) that represents the OpenXR binding. /// - [Preserve, InputControl(aliases = new[] { "triggerTouch", "indexTouch", "indexNearTouched" }, usage = "TriggerTouch")] + [Preserve, InputControl(aliases = new[] { "indexTouch", "indexNearTouched" }, usage = "TriggerTouch")] public ButtonControl triggerTouched { get; private set; } /// /// A [ButtonControl](xref:UnityEngine.InputSystem.Controls.ButtonControl) that represents the OpenXR binding. /// - [Preserve, InputControl(aliases = new[] { "Primary2DAxisClick", "joystickPress", "joystickClick" }, usage = "Primary2DAxisClick")] + [Preserve, InputControl(aliases = new[] { "JoystickOrPadPressed", "thumbstickClick", "joystickClicked", "primary2DAxisClick" }, usage = "Primary2DAxisClick")] public ButtonControl thumbstickClicked { get; private set; } /// /// A [ButtonControl](xref:UnityEngine.InputSystem.Controls.ButtonControl) that represents the OpenXR binding. /// - [Preserve, InputControl(aliases = new[] { "Primary2DAxisTouch", "joystickTouch" }, usage = "Primary2DAxisTouch")] + [Preserve, InputControl(aliases = new[] { "JoystickOrPadTouched", "thumbstickTouch", "joystickTouched", "primary2DAxisTouch" }, usage = "Primary2DAxisTouch")] public ButtonControl thumbstickTouched { get; private set; } /// /// A [ButtonControl](xref:UnityEngine.InputSystem.Controls.ButtonControl) that represents the OpenXR binding. /// - [Preserve, InputControl(aliases = new[] { "ParkingTouched" })] - public ButtonControl parkingTouched { get; private set; } + [Preserve, InputControl(aliases = new[] { "ParkingTouched", "parkingTouched" })] + public ButtonControl thumbrestTouched { get; private set; } /// /// A that represents the OpenXR binding. The grip pose represents the location of the user's palm or holding a motion controller. @@ -166,52 +178,84 @@ namespace VIVE.OpenXR public PoseControl devicePose { get; private set; } /// - /// A that represents the OpenXR binding. The pointer pose represents the tip of the controller pointing forward. + /// A that represents the OpenXR binding. The pointer pose represents the tip of the controller pointing forward. /// - [Preserve, InputControl(offset = 0, alias = "aimPose", usage = "Pointer")] - public PoseControl pointerPose { get; private set; } + [Preserve, InputControl(offset = 0, aliases = new[] { "aimPose", "pointerPose" }, usage = "Pointer")] + public PoseControl pointer { get; private set; } +#if UNITY_ANDROID + /// + /// A representing the OpenXR binding. + /// + [Preserve, InputControl(offset = 0, alias = "indexTip", usage = "Poke")] + public PoseControl pokePose { get; private set; } + + /// + /// A representing the OpenXR binding. + /// + [Preserve, InputControl(offset = 0, usage = "Pinch")] + public PoseControl pinchPose { get; private set; } +#endif /// /// A [ButtonControl](xref:UnityEngine.InputSystem.Controls.ButtonControl) required for backwards compatibility with the XRSDK layouts. This represents the overall tracking state of the device. This value is equivalent to mapping devicePose/isTracked. /// - [Preserve, InputControl(offset = 24, usage = "IsTracked")] + [Preserve, InputControl(offset = 24)] new public ButtonControl isTracked { get; private set; } - /// /// A [IntegerControl](xref:UnityEngine.InputSystem.Controls.IntegerControl) required for backwards compatibility with the XRSDK layouts. This represents the bit flag set to indicate what data is valid. This value is equivalent to mapping devicePose/trackingState. /// - [Preserve, InputControl(offset = 28, usage = "TrackingState")] + [Preserve, InputControl(offset = 28)] new public IntegerControl trackingState { get; private set; } - /// - /// A [Vector3Control](xref:UnityEngine.InputSystem.Controls.Vector3Control) required for backwards compatibility with the XRSDK layouts. This is the device position. For the VIVE Focus 3 device, this is both the device and the pointer position. This value is equivalent to mapping devicePose/position. + /// A [Vector3Control](xref:UnityEngine.InputSystem.Controls.Vector3Control) required for backwards compatibility with the XRSDK layouts. This is the device position. This value is equivalent to mapping devicePose/position. /// - [Preserve, InputControl(offset = 32, alias = "gripPosition")] + [Preserve, InputControl(offset = 32, noisy = true, alias = "gripPosition")] new public Vector3Control devicePosition { get; private set; } - /// - /// A [QuaternionControl](xref:UnityEngine.InputSystem.Controls.QuaternionControl) required for backwards compatibility with the XRSDK layouts. This is the device orientation. For the VIVE Focus 3 device, this is both the device and the pointer rotation. This value is equivalent to mapping devicePose/rotation. + /// A [QuaternionControl](xref:UnityEngine.InputSystem.Controls.QuaternionControl) required for backwards compatibility with the XRSDK layouts. This is the device orientation. This value is equivalent to mapping devicePose/rotation. /// - [Preserve, InputControl(offset = 44, alias = "gripOrientation")] + [Preserve, InputControl(offset = 44, noisy = true, alias = "gripOrientation")] new public QuaternionControl deviceRotation { get; private set; } /// - /// A [Vector3Control](xref:UnityEngine.InputSystem.Controls.Vector3Control) required for back compatibility with the XRSDK layouts. This is the pointer position. This value is equivalent to mapping pointerPose/position. + /// A [Vector3Control](xref:UnityEngine.InputSystem.Controls.Vector3Control) required for back compatibility with the XRSDK layouts. This is the pointer position. This value is equivalent to mapping pointer/position. /// - [Preserve, InputControl(offset = 92)] + [Preserve, InputControl(offset = 92, noisy = true)] public Vector3Control pointerPosition { get; private set; } + /// + /// A [QuaternionControl](xref:UnityEngine.InputSystem.Controls.QuaternionControl) required for backwards compatibility with the XRSDK layouts. This is the pointer rotation. This value is equivalent to mapping pointer/rotation. + /// + [Preserve, InputControl(offset = 104, noisy = true, alias = "pointerOrientation")] + public QuaternionControl pointerRotation { get; private set; } +#if UNITY_ANDROID + /// + /// A [Vector3Control](xref:UnityEngine.InputSystem.Controls.Vector3Control) required for backwards compatibility with the XRSDK layouts. This is the poke position. This value is equivalent to mapping pokePose/position. + /// + [Preserve, InputControl(offset = 152, noisy = true)] + public Vector3Control pokePosition { get; private set; } + /// + /// A [QuaternionControl](xref:UnityEngine.InputSystem.Controls.QuaternionControl) required for backwards compatibility with the XRSDK layouts. This is the poke orientation. This value is equivalent to mapping pokePose/rotation. + /// + [Preserve, InputControl(offset = 164, noisy = true)] + public QuaternionControl pokeRotation { get; private set; } /// - /// A [QuaternionControl](xref:UnityEngine.InputSystem.Controls.QuaternionControl) required for backwards compatibility with the XRSDK layouts. This is the pointer rotation. This value is equivalent to mapping pointerPose/rotation. + /// A [Vector3Control](xref:UnityEngine.InputSystem.Controls.Vector3Control) required for backwards compatibility with the XRSDK layouts. This is the pinch position. This value is equivalent to mapping pinchPose/position. /// - [Preserve, InputControl(offset = 104, alias = "pointerOrientation")] - public QuaternionControl pointerRotation { get; private set; } - + [Preserve, InputControl(offset = 212, noisy = true)] + public Vector3Control pinchPosition { get; private set; } + /// + /// A [QuaternionControl](xref:UnityEngine.InputSystem.Controls.QuaternionControl) required for backwards compatibility with the XRSDK layouts. This is the pinch orientation. This value is equivalent to mapping pinchPose/rotation. + /// + [Preserve, InputControl(offset = 224, noisy = true)] + public QuaternionControl pinchRotation { get; private set; } +#endif /// /// A that represents the binding. /// [Preserve, InputControl(usage = "Haptic")] public HapticControl haptic { get; private set; } +#endregion private bool UpdateInputDeviceInRuntime = false; @@ -234,11 +278,17 @@ namespace VIVE.OpenXR secondaryButton = GetChildControl("secondaryButton"); thumbstickClicked = GetChildControl("thumbstickClicked"); thumbstickTouched = GetChildControl("thumbstickTouched"); - parkingTouched = GetChildControl("parkingTouched"); + thumbrestTouched = GetChildControl("thumbrestTouched"); devicePose = GetChildControl("devicePose"); - pointerPose = GetChildControl("pointerPose"); - + pointer = GetChildControl("pointer"); +#if UNITY_ANDROID + if (HandInteractionExtEnabled) + { + pinchPose = GetChildControl("pinchPose"); + pokePose = GetChildControl("pokePose"); + } +#endif isTracked = GetChildControl("isTracked"); trackingState = GetChildControl("trackingState"); devicePosition = GetChildControl("devicePosition"); @@ -247,7 +297,7 @@ namespace VIVE.OpenXR pointerRotation = GetChildControl("pointerRotation"); haptic = GetChildControl("haptic"); - sb.Clear().Append(LOG_TAG) + sb.Clear() .Append("FinishSetup() device interfaceName: ").Append(description.interfaceName) .Append(", deviceClass: ").Append(description.deviceClass) .Append(", product: ").Append(description.product) @@ -265,7 +315,7 @@ namespace VIVE.OpenXR string func = "OnUpdate() "; if (leftHand.isTracked.ReadValue() > 0 && !bRoleUpdatedLeft) { - sb.Clear().Append(LOG_TAG).Append(func) + sb.Clear().Append(func) .Append("product: ").Append(description.product) .Append(" with user path: ").Append(UserPaths.leftHand).Append(" is_tracked."); DEBUG(sb); @@ -273,24 +323,24 @@ namespace VIVE.OpenXR if (m_Instance.GetInputSourceName(path, XrInputSourceLocalizedNameFlags.XR_INPUT_SOURCE_LOCALIZED_NAME_USER_PATH_BIT, out string role) != XrResult.XR_SUCCESS) { - sb.Clear().Append(LOG_TAG).Append(func) + sb.Clear().Append(func) .Append("GetInputSourceName XR_INPUT_SOURCE_LOCALIZED_NAME_USER_PATH_BIT failed."); ERROR(sb); } else { - sb.Clear().Append(LOG_TAG).Append(func) + sb.Clear().Append(func) .Append("product: ").Append(description.product) .Append(" with user path: ").Append(UserPaths.leftHand).Append(" has role: ").Append(role); DEBUG(sb); } if (m_Instance.GetInputSourceName(path, XrInputSourceLocalizedNameFlags.XR_INPUT_SOURCE_LOCALIZED_NAME_SERIAL_NUMBER_BIT_HTC, out string sn) != XrResult.XR_SUCCESS) { - sb.Clear().Append(LOG_TAG).Append(func) + sb.Clear().Append(func) .Append("GetInputSourceName XR_INPUT_SOURCE_LOCALIZED_NAME_SERIAL_NUMBER_BIT_HTC failed."); ERROR(sb); } else { - sb.Clear().Append(LOG_TAG).Append(func) + sb.Clear().Append(func) .Append("product: ").Append(description.product) .Append(" with user path: ").Append(UserPaths.leftHand).Append(" has serial number: ").Append(role); DEBUG(sb); } @@ -299,7 +349,7 @@ namespace VIVE.OpenXR } if (rightHand.isTracked.ReadValue() > 0 && !bRoleUpdatedRight) { - sb.Clear().Append(LOG_TAG).Append(func) + sb.Clear().Append(func) .Append("product: ").Append(description.product) .Append(" with user path: ").Append(UserPaths.rightHand).Append(" is_tracked."); DEBUG(sb); @@ -307,24 +357,24 @@ namespace VIVE.OpenXR if (m_Instance.GetInputSourceName(path, XrInputSourceLocalizedNameFlags.XR_INPUT_SOURCE_LOCALIZED_NAME_USER_PATH_BIT, out string role) != XrResult.XR_SUCCESS) { - sb.Clear().Append(LOG_TAG).Append(func) + sb.Clear().Append(func) .Append("GetInputSourceName XR_INPUT_SOURCE_LOCALIZED_NAME_USER_PATH_BIT failed."); ERROR(sb); } else { - sb.Clear().Append(LOG_TAG).Append(func) + sb.Clear().Append(func) .Append("product: ").Append(description.product) .Append(" with user path: ").Append(UserPaths.rightHand).Append(" has role: ").Append(role); DEBUG(sb); } if (m_Instance.GetInputSourceName(path, XrInputSourceLocalizedNameFlags.XR_INPUT_SOURCE_LOCALIZED_NAME_SERIAL_NUMBER_BIT_HTC, out string sn) != XrResult.XR_SUCCESS) { - sb.Clear().Append(LOG_TAG).Append(func) + sb.Clear().Append(func) .Append("GetInputSourceName XR_INPUT_SOURCE_LOCALIZED_NAME_SERIAL_NUMBER_BIT_HTC failed."); ERROR(sb); } else { - sb.Clear().Append(LOG_TAG).Append(func) + sb.Clear().Append(func) .Append("product: ").Append(description.product) .Append(" with user path: ").Append(UserPaths.leftHand).Append(" has serial number: ").Append(role); DEBUG(sb); } @@ -339,6 +389,7 @@ namespace VIVE.OpenXR /// public const string profile = "/interaction_profiles/htc/vive_focus3_controller"; +#region Supported component paths // Available Bindings // Left Hand Only /// @@ -409,31 +460,49 @@ namespace VIVE.OpenXR /// Constant for a boolean interaction binding '.../input/thumbrest/touch' OpenXR Input Binding. Used by input subsystem to bind actions to physical inputs. /// public const string thumbrest = "/input/thumbrest/touch"; + /// /// Constant for a hand grip pose interaction binding '.../input/grip/pose' OpenXR Input Binding. Used by input subsystem to bind actions to physical inputs. /// public const string gripPose = "/input/grip/pose"; + /// /// Constant for a hand point pose interaction binding '.../input/aim/pose' OpenXR Input Binding. Used by input subsystem to bind actions to physical inputs. /// - public const string pointerPose = "/input/aim/pose"; + public const string aim = "/input/aim/pose"; +#if UNITY_ANDROID + /// + /// Constant for a pose interaction binding '.../input/pinch_ext/pose' OpenXR Input Binding.

+ /// Typically used for directly manipulating a small object using the pinch gesture. When using a hand interaction profile, it is typically paired with the .

+ /// When using a controller interaction profile, it is typically paired with a trigger manipulated with the index finger, which typically requires curling the index finger and applying pressure with the fingertip. + ///
+ public const string pinchPose = "/input/pinch_ext/pose"; + + /// + /// Constant for a pose interaction binding '.../input/poke_ext/pose' OpenXR Input Binding.

+ /// Typically used for contact-based interactions using the motion of the hand or fingertip. It typically does not pair with other hand gestures or buttons on the controller. The application typically uses a sphere collider with the "poke" pose to visualize the pose and detect touch with a virtual object. + ///
+ public const string pokePose = "/input/poke_ext/pose"; +#endif /// /// Constant for a haptic interaction binding '.../output/haptic' OpenXR Input Binding. Used by input subsystem to bind actions to physical outputs. /// public const string haptic = "/output/haptic"; +#endregion - + private const string kLayoutName = "VIVEFocus3Controller"; private const string kDeviceLocalizedName = "VIVE Focus 3 Controller OpenXR"; - /// /// Registers the layout with the Input System. /// protected override void RegisterDeviceLayout() { + sb.Clear().Append("RegisterDeviceLayout() ").Append(kLayoutName).Append(", product: ").Append(kDeviceLocalizedName); DEBUG(sb); InputSystem.RegisterLayout(typeof(VIVEFocus3Controller), - matches: new InputDeviceMatcher() - .WithInterface(XRUtilities.InterfaceMatchAnyVersion) - .WithProduct(kDeviceLocalizedName)); + kLayoutName, + matches: new InputDeviceMatcher() + .WithInterface(XRUtilities.InterfaceMatchAnyVersion) + .WithProduct(kDeviceLocalizedName)); } /// @@ -441,33 +510,36 @@ namespace VIVE.OpenXR /// protected override void UnregisterDeviceLayout() { - InputSystem.RemoveLayout(typeof(VIVEFocus3Controller).Name); + sb.Clear().Append("UnregisterDeviceLayout() ").Append(kLayoutName); DEBUG(sb); + InputSystem.RemoveLayout(kLayoutName); } - /// - protected override void RegisterActionMapsWithRuntime() +#if UNITY_XR_OPENXR_1_9_1 + /// + /// Return interaction profile type. VIVEFocus3Controller profile is Device type. + /// + /// Interaction profile type. + protected override InteractionProfileType GetInteractionProfileType() { - ActionMapConfig actionMap = new ActionMapConfig() + return typeof(VIVEFocus3Controller).IsSubclassOf(typeof(XRController)) ? InteractionProfileType.XRController : InteractionProfileType.Device; + } + + /// + /// Return device layer out string used for registering device VIVEFocus3Controller in InputSystem. + /// + /// Device layout string. + protected override string GetDeviceLayoutName() + { + return kLayoutName; + } +#endif + + private List RequestActionConfigs() + { + if (HandInteractionExtEnabled) { - name = "vivefocus3controller", - localizedName = kDeviceLocalizedName, - desiredInteractionProfile = profile, - manufacturer = "HTC", - serialNumber = "", - deviceInfos = new List() - { - new DeviceConfig() - { - characteristics = InputDeviceCharacteristics.HeldInHand | InputDeviceCharacteristics.TrackedDevice | InputDeviceCharacteristics.Controller | InputDeviceCharacteristics.Left, - userPath = UserPaths.leftHand // "/user/hand/left" - }, - new DeviceConfig() - { - characteristics = InputDeviceCharacteristics.HeldInHand | InputDeviceCharacteristics.TrackedDevice | InputDeviceCharacteristics.Controller | InputDeviceCharacteristics.Right, - userPath = UserPaths.rightHand // "/user/hand/right" - } - }, - actions = new List() + sb.Clear().Append("RequestActionConfigs() XR_EXT_hand_interaction is enabled."); DEBUG(sb); + return new List() { // Thumbstick Axis new ActionConfig() @@ -726,7 +798,7 @@ namespace VIVE.OpenXR // Thumbrest Touch new ActionConfig() { - name = "parkingTouched", + name = "thumbrestTouched", localizedName = "Parking Touch", type = ActionType.Binary, bindings = new List() @@ -760,7 +832,7 @@ namespace VIVE.OpenXR // Pointer Pose new ActionConfig() { - name = "pointerPose", + name = "pointer", localizedName = "Pointer Pose", type = ActionType.Pose, usages = new List() @@ -771,11 +843,51 @@ namespace VIVE.OpenXR { new ActionBinding() { - interactionPath = pointerPose, + interactionPath = aim, interactionProfileName = profile, } } }, +#if UNITY_ANDROID + // Pinch Pose + new ActionConfig() + { + name = "pinchPose", + localizedName = "Pinch Pose", + type = ActionType.Pose, + usages = new List() + { + "Pinch" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = pinchPose, + interactionProfileName = profile, + } + } + }, + // Poke Pose + new ActionConfig() + { + name = "pokePose", + localizedName = "Index Tip", + type = ActionType.Pose, + usages = new List() + { + "Poke" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = pokePose, + interactionProfileName = profile, + } + } + }, +#endif // Haptics new ActionConfig() { @@ -792,13 +904,352 @@ namespace VIVE.OpenXR } } } - } + }; + } + else + { + sb.Clear().Append("RequestActionConfigs() XR_EXT_hand_interaction is disabled."); DEBUG(sb); + return new List() + { + // Thumbstick Axis + new ActionConfig() + { + name = "thumbstick", + localizedName = "Thumbstick Axis", + type = ActionType.Axis2D, + usages = new List() + { + "Primary2DAxis" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = thumbstick, + interactionProfileName = profile, + } + } + }, + // Grip Axis + new ActionConfig() + { + name = "grip", + localizedName = "Grip Axis", + type = ActionType.Axis1D, + usages = new List() + { + "Grip" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = grip, + interactionProfileName = profile, + } + } + }, + // Grip Press + new ActionConfig() + { + name = "gripPressed", + localizedName = "Grip Pressed", + type = ActionType.Binary, + usages = new List() + { + "GripButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = gripPress, + interactionProfileName = profile, + } + } + }, + // Menu + new ActionConfig() + { + name = "menu", + localizedName = "Menu", + type = ActionType.Binary, + usages = new List() + { + "MenuButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = menu, + interactionProfileName = profile, + userPaths = new List() { UserPaths.leftHand } + }, + new ActionBinding() + { + interactionPath = system, + interactionProfileName = profile, + userPaths = new List() { UserPaths.rightHand } + }, + } + }, + // X / A Press + new ActionConfig() + { + name = "primaryButton", + localizedName = "Primary Pressed", + type = ActionType.Binary, + usages = new List() + { + "PrimaryButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = buttonX, + interactionProfileName = profile, + userPaths = new List() { UserPaths.leftHand } + }, + new ActionBinding() + { + interactionPath = buttonA, + interactionProfileName = profile, + userPaths = new List() { UserPaths.rightHand } + }, + } + }, + + + // Y / B Press + new ActionConfig() + { + name = "secondaryButton", + localizedName = "Secondary Pressed", + type = ActionType.Binary, + usages = new List() + { + "SecondaryButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = buttonY, + interactionProfileName = profile, + userPaths = new List() { UserPaths.leftHand } + }, + new ActionBinding() + { + interactionPath = buttonB, + interactionProfileName = profile, + userPaths = new List() { UserPaths.rightHand } + }, + } + }, + + + // Trigger Axis + new ActionConfig() + { + name = "trigger", + localizedName = "Trigger Axis", + type = ActionType.Axis1D, + usages = new List() + { + "Trigger" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = trigger, + interactionProfileName = profile, + } + } + }, + // Trigger Press + new ActionConfig() + { + name = "triggerPressed", + localizedName = "Trigger Pressed", + type = ActionType.Binary, + usages = new List() + { + "TriggerButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = triggerClick, + interactionProfileName = profile, + } + } + }, + // Trigger Touch + new ActionConfig() + { + name = "triggerTouched", + localizedName = "Trigger Touched", + type = ActionType.Binary, + usages = new List() + { + "TriggerTouch" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = triggerTouch, + interactionProfileName = profile, + } + } + }, + // Thumbstick Click + new ActionConfig() + { + name = "thumbstickClicked", + localizedName = "Thumbstick Pressed", + type = ActionType.Binary, + usages = new List() + { + "Primary2DAxisClick" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = thumbstickClick, + interactionProfileName = profile, + } + } + }, + // Thumbstick Touch + new ActionConfig() + { + name = "thumbstickTouched", + localizedName = "Thumbstick Touched", + type = ActionType.Binary, + usages = new List() + { + "Primary2DAxisTouch" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = thumbstickTouch, + interactionProfileName = profile, + } + } + }, + // Thumbrest Touch + new ActionConfig() + { + name = "thumbrestTouched", + localizedName = "Parking Touch", + type = ActionType.Binary, + bindings = new List() + { + new ActionBinding() + { + interactionPath = thumbrest, + interactionProfileName = profile, + } + } + }, + // Device Pose + new ActionConfig() + { + name = "devicePose", + localizedName = "Grip Pose", + type = ActionType.Pose, + usages = new List() + { + "Device" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = gripPose, + interactionProfileName = profile, + } + } + }, + // Pointer Pose + new ActionConfig() + { + name = "pointer", + localizedName = "Pointer Pose", + type = ActionType.Pose, + usages = new List() + { + "Pointer" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = aim, + interactionProfileName = profile, + } + } + }, + + // Haptics + new ActionConfig() + { + name = "haptic", + localizedName = "Haptic Output", + type = ActionType.Vibrate, + usages = new List() { "Haptic" }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = haptic, + interactionProfileName = profile, + } + } + } + }; + } + } + /// + /// Register action maps for this device with the OpenXR Runtime. Called at runtime before Start. + /// + protected override void RegisterActionMapsWithRuntime() + { + ActionMapConfig actionMap = new ActionMapConfig() + { + name = "vivefocus3controller", + localizedName = kDeviceLocalizedName, + desiredInteractionProfile = profile, + manufacturer = "HTC", + serialNumber = "", + deviceInfos = new List() + { + new DeviceConfig() + { + characteristics = InputDeviceCharacteristics.HeldInHand | InputDeviceCharacteristics.TrackedDevice | InputDeviceCharacteristics.Controller | InputDeviceCharacteristics.Left, + userPath = UserPaths.leftHand // "/user/hand/left" + }, + new DeviceConfig() + { + characteristics = InputDeviceCharacteristics.HeldInHand | InputDeviceCharacteristics.TrackedDevice | InputDeviceCharacteristics.Controller | InputDeviceCharacteristics.Right, + userPath = UserPaths.rightHand // "/user/hand/right" + } + }, + actions = RequestActionConfigs() }; AddActionMap(actionMap); } - #region OpenXR function delegates +#region OpenXR function delegates /// xrGetInstanceProcAddr OpenXRHelper.xrGetInstanceProcAddrDelegate XrGetInstanceProcAddr; /// xrEnumerateDisplayRefreshRatesFB @@ -808,14 +1259,14 @@ namespace VIVE.OpenXR /// xrGetInstanceProcAddr if (xrGetInstanceProcAddr != null && xrGetInstanceProcAddr != IntPtr.Zero) { - sb.Clear().Append(LOG_TAG).Append("Get function pointer of xrGetInstanceProcAddr."); DEBUG(sb); + sb.Clear().Append("Get function pointer of xrGetInstanceProcAddr."); DEBUG(sb); XrGetInstanceProcAddr = Marshal.GetDelegateForFunctionPointer( xrGetInstanceProcAddr, typeof(OpenXRHelper.xrGetInstanceProcAddrDelegate)) as OpenXRHelper.xrGetInstanceProcAddrDelegate; } else { - sb.Clear().Append(LOG_TAG).Append("No function pointer of xrGetInstanceProcAddr"); ERROR(sb); + sb.Clear().Append("No function pointer of xrGetInstanceProcAddr"); ERROR(sb); return false; } @@ -826,26 +1277,26 @@ namespace VIVE.OpenXR { if (funcPtr != IntPtr.Zero) { - sb.Clear().Append(LOG_TAG).Append("Get function pointer of xrGetInputSourceLocalizedName."); DEBUG(sb); + sb.Clear().Append("Get function pointer of xrGetInputSourceLocalizedName."); DEBUG(sb); xrGetInputSourceLocalizedName = Marshal.GetDelegateForFunctionPointer( funcPtr, typeof(OpenXRHelper.xrGetInputSourceLocalizedNameDelegate)) as OpenXRHelper.xrGetInputSourceLocalizedNameDelegate; } else { - sb.Clear().Append(LOG_TAG).Append("No function pointer of xrGetInputSourceLocalizedName."); + sb.Clear().Append("No function pointer of xrGetInputSourceLocalizedName."); ERROR(sb); } } else { - sb.Clear().Append(LOG_TAG).Append("No function pointer of xrGetInputSourceLocalizedName"); + sb.Clear().Append("No function pointer of xrGetInputSourceLocalizedName"); ERROR(sb); } return true; } - #endregion +#endregion private XrResult GetInputSourceName(XrPath path, XrInputSourceLocalizedNameFlags sourceType, out string sourceName) { @@ -855,8 +1306,7 @@ namespace VIVE.OpenXR if (!m_XrSessionCreated || xrGetInputSourceLocalizedName == null) { return XrResult.XR_ERROR_VALIDATION_FAILURE; } string userPath = PathToString(path); - sb.Clear().Append(LOG_TAG).Append(func) - .Append("userPath: ").Append(userPath).Append(", flag: ").Append((UInt64)sourceType); DEBUG(sb); + sb.Clear().Append(func).Append("userPath: ").Append(userPath).Append(", flag: ").Append((UInt64)sourceType); DEBUG(sb); XrInputSourceLocalizedNameGetInfo nameInfo = new XrInputSourceLocalizedNameGetInfo( XrStructureType.XR_TYPE_INPUT_SOURCE_LOCALIZED_NAME_GET_INFO, @@ -870,7 +1320,7 @@ namespace VIVE.OpenXR { if (nameSizeOut < 1) { - sb.Clear().Append(LOG_TAG).Append(func) + sb.Clear().Append(func) .Append("xrGetInputSourceLocalizedName(").Append(userPath).Append(")") .Append(", flag: ").Append((UInt64)sourceType) .Append("bufferCountOutput size is invalid!"); @@ -885,7 +1335,7 @@ namespace VIVE.OpenXR if (result == XrResult.XR_SUCCESS) { sourceName = new string(buffer).TrimEnd('\0'); - sb.Clear().Append(LOG_TAG).Append(func) + sb.Clear().Append(func) .Append("xrGetInputSourceLocalizedName(").Append(userPath).Append(")") .Append(", flag: ").Append((UInt64)sourceType) .Append(", bufferCapacityInput: ").Append(nameSizeIn) @@ -895,7 +1345,7 @@ namespace VIVE.OpenXR } else { - sb.Clear().Append(LOG_TAG).Append(func) + sb.Clear().Append(func) .Append("2.xrGetInputSourceLocalizedName(").Append(userPath).Append(")") .Append(", flag: ").Append((UInt64)sourceType) .Append(", bufferCapacityInput: ").Append(nameSizeIn) @@ -906,7 +1356,7 @@ namespace VIVE.OpenXR } else { - sb.Clear().Append(LOG_TAG).Append(func) + sb.Clear().Append(func) .Append("1.xrGetInputSourceLocalizedName(").Append(userPath).Append(")") .Append(", flag: ").Append((UInt64)sourceType) .Append(", bufferCapacityInput: ").Append(nameSizeIn) @@ -918,7 +1368,7 @@ namespace VIVE.OpenXR return result; } - #region OpenXR Life Cycle +#region OpenXR Life Cycle #pragma warning disable private bool m_XrInstanceCreated = false; #pragma warning restore @@ -933,7 +1383,7 @@ namespace VIVE.OpenXR m_XrInstanceCreated = true; m_XrInstance = xrInstance; m_Instance = this; - sb.Clear().Append(LOG_TAG).Append("OnInstanceCreate() ").Append(m_XrInstance); DEBUG(sb); + sb.Clear().Append("OnInstanceCreate() ").Append(m_XrInstance); DEBUG(sb); GetXrFunctionDelegates(m_XrInstance); return true; @@ -949,7 +1399,7 @@ namespace VIVE.OpenXR m_XrInstanceCreated = false; m_XrInstance = 0; } - sb.Clear().Append(LOG_TAG).Append("OnInstanceDestroy() ").Append(xrInstance); DEBUG(sb); + sb.Clear().Append("OnInstanceDestroy() ").Append(xrInstance); DEBUG(sb); } private bool m_XrSessionCreated = false; @@ -962,7 +1412,7 @@ namespace VIVE.OpenXR { m_XrSession = xrSession; m_XrSessionCreated = true; - sb.Clear().Append(LOG_TAG).Append("OnSessionCreate() ").Append(m_XrSession); DEBUG(sb); + sb.Clear().Append("OnSessionCreate() ").Append(m_XrSession); DEBUG(sb); } /// /// Called when xrDestroySession is done. @@ -970,13 +1420,13 @@ namespace VIVE.OpenXR /// The session ID to destroy. protected override void OnSessionDestroy(ulong xrSession) { - sb.Clear().Append(LOG_TAG).Append("OnSessionDestroy() ").Append(xrSession); DEBUG(sb); + sb.Clear().Append("OnSessionDestroy() ").Append(xrSession); DEBUG(sb); if (m_XrSession == xrSession) { m_XrSession = 0; m_XrSessionCreated = false; } } - #endregion +#endregion } } diff --git a/com.htc.upm.vive.openxr/Runtime/VIVERig.cs b/com.htc.upm.vive.openxr/Runtime/VIVERig.cs index 9aab507..26f4401 100644 --- a/com.htc.upm.vive.openxr/Runtime/VIVERig.cs +++ b/com.htc.upm.vive.openxr/Runtime/VIVERig.cs @@ -13,7 +13,11 @@ namespace VIVE.OpenXR [DisallowMultipleComponent] public sealed class VIVERig : MonoBehaviour { - const string LOG_TAG = "VIVE.OpenXR.VIVERig "; + private static VIVERig m_Instance; + public static VIVERig Instance => m_Instance; + + #region Log + const string LOG_TAG = "VIVE.OpenXR.VIVERig"; StringBuilder m_sb = null; StringBuilder sb { get { @@ -21,17 +25,14 @@ namespace VIVE.OpenXR return m_sb; } } - void DEBUG(StringBuilder msg) { Debug.Log(msg); } + void DEBUG(StringBuilder msg) { Debug.LogFormat("{0} {1}", LOG_TAG, msg); } + #endregion + #region Inspector [SerializeField] private GameObject m_CameraOffset = null; public GameObject CameraOffset { get { return m_CameraOffset; } set { m_CameraOffset = value; } } - [SerializeField] - private GameObject m_CameraObject = null; - [System.Obsolete("No Used")] - public GameObject CameraObject { get { return m_CameraObject; } set { m_CameraObject = value; } } - private TrackingOriginModeFlags m_TrackingOriginEx = TrackingOriginModeFlags.Device; [SerializeField] private TrackingOriginModeFlags m_TrackingOrigin = TrackingOriginModeFlags.Device; @@ -39,7 +40,13 @@ namespace VIVE.OpenXR private Vector3 cameraPosOffset = Vector3.zero; [SerializeField] + private float m_CameraHeight = 1.5f; + public float CameraHeight { get { return m_CameraHeight; } set { m_CameraHeight = value; } } + + [System.Obsolete("This variable is deprecated. Please use CameraHeight instead.")] + [SerializeField] private float m_CameraYOffset = 1; + [System.Obsolete("This variable is deprecated. Please use CameraHeight instead.")] public float CameraYOffset { get { return m_CameraYOffset; } set { m_CameraYOffset = value; } } #if ENABLE_INPUT_SYSTEM @@ -47,6 +54,7 @@ namespace VIVE.OpenXR private InputActionAsset m_ActionAsset; public InputActionAsset actionAsset { get => m_ActionAsset; set => m_ActionAsset = value; } #endif + #endregion static List s_InputSubsystems = new List(); private void OnEnable() @@ -77,7 +85,7 @@ namespace VIVE.OpenXR private void TrackingOriginUpdated(XRInputSubsystem obj) { m_LastRecenteredTime = Time.time; - sb.Clear().Append(LOG_TAG).Append("TrackingOriginUpdated() m_LastRecenteredTime: ").Append(m_LastRecenteredTime); DEBUG(sb); + sb.Clear().Append("TrackingOriginUpdated() m_LastRecenteredTime: ").Append(m_LastRecenteredTime); DEBUG(sb); } XRInputSubsystem m_InputSystem = null; @@ -91,17 +99,27 @@ namespace VIVE.OpenXR } private void Awake() { + if (m_Instance == null) + { + m_Instance = this; + } + else if (m_Instance != this) + { + Destroy(this); + } + UpdateInputSystem(); if (m_InputSystem != null) { + sb.Clear().Append("Awake() TrySetTrackingOriginMode ").Append(m_TrackingOrigin); DEBUG(sb); m_InputSystem.TrySetTrackingOriginMode(m_TrackingOrigin); TrackingOriginModeFlags mode = m_InputSystem.GetTrackingOriginMode(); - sb.Clear().Append(LOG_TAG).Append("Awake() Tracking mode is set to ").Append(mode); DEBUG(sb); + sb.Clear().Append("Awake() Tracking mode is set to ").Append(mode); DEBUG(sb); } else { - sb.Clear().Append(LOG_TAG).Append("Awake() no XRInputSubsystem."); DEBUG(sb); + sb.Clear().Append("Awake() no XRInputSubsystem."); DEBUG(sb); } m_TrackingOriginEx = m_TrackingOrigin; } @@ -117,15 +135,15 @@ namespace VIVE.OpenXR m_InputSystem.TrySetTrackingOriginMode(m_TrackingOrigin); mode = m_InputSystem.GetTrackingOriginMode(); - sb.Clear().Append(LOG_TAG).Append("Update() Tracking mode is set to " + mode); + sb.Clear().Append("Update() Tracking mode is set to " + mode); m_TrackingOriginEx = m_TrackingOrigin; } } - if (m_CameraOffset != null) + if (m_CameraOffset != null && m_TrackingOrigin == TrackingOriginModeFlags.Device) { cameraPosOffset.x = m_CameraOffset.transform.localPosition.x; - cameraPosOffset.y = m_CameraYOffset; + cameraPosOffset.y = m_CameraHeight; cameraPosOffset.z = m_CameraOffset.transform.localPosition.z; m_CameraOffset.transform.localPosition = cameraPosOffset; diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Anchor/Materials/Green.mat b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Anchor/Materials/Green.mat new file mode 100644 index 0000000..4518eba --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Anchor/Materials/Green.mat @@ -0,0 +1,80 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Green + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ValidKeywords: [] + m_InvalidKeywords: [] + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _BumpScale: 1 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _GlossMapScale: 1 + - _Glossiness: 0.719 + - _GlossyReflections: 1 + - _Metallic: 0.37 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _UVSec: 0 + - _ZWrite: 1 + m_Colors: + - _Color: {r: 0.022671178, g: 0.6509434, b: 0, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + m_BuildTextureStacks: [] diff --git a/com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Arts/VRMfile/VRM1/Female1/Female1_Hair1.mat.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Anchor/Materials/Green.mat.meta similarity index 79% rename from com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Arts/VRMfile/VRM1/Female1/Female1_Hair1.mat.meta rename to com.htc.upm.vive.openxr/Samples~/Samples/Samples/Anchor/Materials/Green.mat.meta index da2ef36..a8b08b1 100644 --- a/com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Arts/VRMfile/VRM1/Female1/Female1_Hair1.mat.meta +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Anchor/Materials/Green.mat.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 8731be491fbbaf5468e698d6ce56d37f +guid: c3e5038ce5fef58408379db870edab7c NativeFormatImporter: externalObjects: {} mainObjectFileID: 2100000 diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Anchor/Scenes/PDAnchorTest.unity b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Anchor/Scenes/AnchorPersistanceTest.unity similarity index 59% rename from com.htc.upm.vive.openxr/Samples~/Samples/Samples/Anchor/Scenes/PDAnchorTest.unity rename to com.htc.upm.vive.openxr/Samples~/Samples/Samples/Anchor/Scenes/AnchorPersistanceTest.unity index 326d03d..94260f3 100644 --- a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Anchor/Scenes/PDAnchorTest.unity +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Anchor/Scenes/AnchorPersistanceTest.unity @@ -123,7 +123,7 @@ NavMeshSettings: debug: m_Flags: 0 m_NavMeshData: {fileID: 0} ---- !u!1 &26336042 +--- !u!1 &7822133 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -131,30 +131,133 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 26336043} - m_Layer: 0 - m_Name: Floor + - component: {fileID: 7822134} + - component: {fileID: 7822136} + - component: {fileID: 7822135} + m_Layer: 5 + m_Name: Text (TMP) m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &26336043 -Transform: +--- !u!224 &7822134 +RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 26336042} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: -0.010000005, z: 0} - m_LocalScale: {x: 50, y: 1, z: 50} + m_GameObject: {fileID: 7822133} + m_LocalRotation: {x: 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: 330888851} - m_Father: {fileID: 1109786713} - m_RootOrder: 3 + m_Children: [] + m_Father: {fileID: 1110291999} + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &7822135 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7822133} + 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: Persist A. 2 + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 30 + m_fontSizeBase: 15 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 18 + m_fontSizeMax: 30 + 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: 3 + 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 &7822136 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7822133} + m_CullTransparentMesh: 1 --- !u!1 &100546045 GameObject: m_ObjectHideFlags: 0 @@ -249,7 +352,7 @@ Transform: m_Father: {fileID: 1109786713} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 52.412, y: -30, z: 0} ---- !u!1 &120366534 +--- !u!1 &176595567 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -257,68 +360,270 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 120366535} + - component: {fileID: 176595568} + - component: {fileID: 176595570} + - component: {fileID: 176595569} m_Layer: 5 - m_Name: TextParent - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 0 ---- !u!224 &120366535 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 120366534} - m_LocalRotation: {x: 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: 1141798578} - m_Father: {fileID: 2018251898} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 125, y: -221.25} - m_SizeDelta: {x: 250, y: 150} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!1 &125112115 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 125112116} - m_Layer: 0 - m_Name: PlaneDetectionResults + m_Name: Text (TMP) m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &125112116 -Transform: +--- !u!224 &176595568 +RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 125112115} - m_LocalRotation: {x: -0, y: 0.38352865, z: -0, w: 0.92352897} - m_LocalPosition: {x: 1.315, y: 0.781, z: 0.113} - m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} + m_GameObject: {fileID: 176595567} + m_LocalRotation: {x: 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: 1955453197} - - {fileID: 399979121} - m_Father: {fileID: 1109786713} - m_RootOrder: 7 - m_LocalEulerAnglesHint: {x: 0, y: 45.105, z: 0} + m_Children: [] + m_Father: {fileID: 604750406} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &176595569 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 176595567} + 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: 'Release PAC + +' + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 30 + m_fontSizeBase: 15 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 18 + m_fontSizeMax: 30 + 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: 3 + 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 &176595570 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 176595567} + m_CullTransparentMesh: 1 +--- !u!1 &196214970 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 196214971} + - component: {fileID: 196214973} + - component: {fileID: 196214972} + 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 &196214971 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 196214970} + m_LocalRotation: {x: 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: 1123027244} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &196214972 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 196214970} + 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: Unpersist A. 2 + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 30 + m_fontSizeBase: 15 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 18 + m_fontSizeMax: 30 + 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: 3 + 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 &196214973 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 196214970} + m_CullTransparentMesh: 1 --- !u!1 &227332153 GameObject: m_ObjectHideFlags: 0 @@ -343,15 +648,285 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 227332153} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0.25, z: 2} + m_LocalPosition: {x: 0, y: 0.25, z: 1} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - {fileID: 532437211} - {fileID: 826987304} m_Father: {fileID: 1109786713} - m_RootOrder: 8 + m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &237189876 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 237189877} + - component: {fileID: 237189879} + - component: {fileID: 237189878} + m_Layer: 5 + m_Name: TestDescription + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &237189877 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 237189876} + m_LocalRotation: {x: -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: 1821684725} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &237189878 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 237189876} + 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: Persist + 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: 26.85 + m_fontSizeBase: 15 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 18 + m_fontSizeMax: 30 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + 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: 3 + 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 &237189879 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 237189876} + m_CullTransparentMesh: 1 +--- !u!1 &241558629 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 241558630} + - component: {fileID: 241558632} + - component: {fileID: 241558631} + 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 &241558630 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 241558629} + m_LocalRotation: {x: 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: 1986242393} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &241558631 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 241558629} + 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: Reload Scene + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 30 + m_fontSizeBase: 15 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 18 + m_fontSizeMax: 30 + 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: 3 + 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 &241558632 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 241558629} + m_CullTransparentMesh: 1 --- !u!850595691 &254447835 LightingSettings: m_ObjectHideFlags: 0 @@ -414,7 +989,7 @@ LightingSettings: m_PVRFilteringAtrousPositionSigmaIndirect: 2 m_PVRFilteringAtrousPositionSigmaAO: 1 m_PVRTiledBaking: 0 ---- !u!1 &258444502 +--- !u!1 &315862330 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -422,132 +997,31 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 258444503} - - component: {fileID: 258444506} - - component: {fileID: 258444505} - - component: {fileID: 258444504} - m_Layer: 5 - m_Name: BtnFollowAncho1 + - component: {fileID: 315862331} + m_Layer: 0 + m_Name: Anchor2 m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!224 &258444503 -RectTransform: +--- !u!4 &315862331 +Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 258444502} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} + m_GameObject: {fileID: 315862330} + m_LocalRotation: {x: 0.08418604, y: -0.2578342, z: 0.022557572, w: 0.96225023} + m_LocalPosition: {x: -0.49999988, y: 0.65, z: 0.49999985} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 441350527} - m_Father: {fileID: 1726873616} - m_RootOrder: 3 + - {fileID: 2098886728} + - {fileID: 394960778} + m_Father: {fileID: 1109786713} + m_RootOrder: 5 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 45} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &258444504 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 258444502} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 3 - m_WrapAround: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 1} - m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} - m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_SelectedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_SelectedTrigger: Selected - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 258444505} - m_OnClick: - m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 1759475126} - m_TargetAssemblyTypeName: HtcAnchorTestHandle, VIVE.OpenXR.Samples - m_MethodName: OnFollowAnchor1 - m_Mode: 1 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 ---- !u!114 &258444505 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 258444502} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &258444506 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 258444502} - m_CullTransparentMesh: 1 --- !u!1 &316359833 GameObject: m_ObjectHideFlags: 0 @@ -606,7 +1080,7 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_text: Clear + m_text: Obj follow A. 1 m_isRightToLeft: 0 m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} @@ -683,7 +1157,7 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 316359833} m_CullTransparentMesh: 1 ---- !u!1 &330888850 +--- !u!1 &370985692 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -691,95 +1165,133 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 330888851} - - component: {fileID: 330888854} - - component: {fileID: 330888853} - - component: {fileID: 330888852} - m_Layer: 0 - m_Name: Cube + - component: {fileID: 370985693} + - component: {fileID: 370985695} + - component: {fileID: 370985694} + m_Layer: 5 + m_Name: Text (TMP) m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 0 ---- !u!4 &330888851 -Transform: + m_IsActive: 1 +--- !u!224 &370985693 +RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 330888850} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: -0.5, z: 0} + m_GameObject: {fileID: 370985692} + m_LocalRotation: {x: 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: 26336043} + m_Father: {fileID: 475102559} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!65 &330888852 -BoxCollider: + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &370985694 +MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 330888850} + m_GameObject: {fileID: 370985692} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!23 &330888853 -MeshRenderer: + 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: Clear persisted + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 29.05 + m_fontSizeBase: 15 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 18 + m_fontSizeMax: 30 + 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: 3 + 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 &370985695 +CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 330888850} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: 4a32aaaa614a1fc44b4fb473af897213, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!33 &330888854 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 330888850} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} + m_GameObject: {fileID: 370985692} + m_CullTransparentMesh: 1 --- !u!1 &393236206 GameObject: m_ObjectHideFlags: 0 @@ -927,7 +1439,7 @@ GameObject: - component: {fileID: 394960777} - component: {fileID: 394960776} m_Layer: 0 - m_Name: Anchor2 + m_Name: AnchorObj m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -990,14 +1502,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 394960775} - m_LocalRotation: {x: 0.08418603, y: -0.25783417, z: 0.022557575, w: 0.96225023} - m_LocalPosition: {x: -1, y: 0.65, z: 1} - m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 2098886728} - m_Father: {fileID: 1109786713} - m_RootOrder: 10 + m_Children: [] + m_Father: {fileID: 315862331} + m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 10, y: -30, z: 0} --- !u!1 &397660390 GameObject: @@ -1012,7 +1523,7 @@ GameObject: - component: {fileID: 397660393} - component: {fileID: 397660392} m_Layer: 5 - m_Name: BtnDetectPlanes + m_Name: BtnCreateAnchor1 m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -1037,7 +1548,7 @@ RectTransform: m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 45} + m_SizeDelta: {x: 0, y: 40} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &397660392 MonoBehaviour: @@ -1121,104 +1632,6 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 397660390} m_CullTransparentMesh: 1 ---- !u!1 &399979117 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 399979121} - - component: {fileID: 399979120} - - component: {fileID: 399979119} - - component: {fileID: 399979118} - m_Layer: 0 - m_Name: TrackingOriginPD - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!136 &399979118 -CapsuleCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 399979117} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - m_Radius: 0.5000001 - m_Height: 2 - m_Direction: 1 - m_Center: {x: 0.000000059604645, y: 0, z: -0.00000008940697} ---- !u!23 &399979119 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 399979117} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!33 &399979120 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 399979117} - m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} ---- !u!4 &399979121 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 399979117} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.3, y: 0.01, z: 0.3} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 125112116} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &425704205 GameObject: m_ObjectHideFlags: 0 @@ -1354,7 +1767,7 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 425704205} m_CullTransparentMesh: 1 ---- !u!1 &441350526 +--- !u!1 &444083707 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -1362,46 +1775,46 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 441350527} - - component: {fileID: 441350529} - - component: {fileID: 441350528} - m_Layer: 5 + - component: {fileID: 444083708} + - component: {fileID: 444083710} + - component: {fileID: 444083709} + 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 &441350527 +--- !u!224 &444083708 RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 441350526} + m_GameObject: {fileID: 444083707} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalScale: {x: 0.02, y: 0.02, z: 0.02} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 258444503} + m_Father: {fileID: 1934207632} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: -0.2} + m_SizeDelta: {x: 20, y: 5} m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &441350528 +--- !u!114 &444083709 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 441350526} + m_GameObject: {fileID: 444083707} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Script: {fileID: 11500000, guid: 9541d86e2fd84c1d9990edf0852d74ab, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} @@ -1412,7 +1825,7 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_text: Obj follow Anchor 1 + m_text: PAnchor2 m_isRightToLeft: 0 m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} @@ -1421,8 +1834,8 @@ MonoBehaviour: m_fontMaterials: [] m_fontColor32: serializedVersion: 2 - rgba: 4281479730 - m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + rgba: 4278190080 + m_fontColor: {r: 0, g: 0, b: 0, a: 1} m_enableVertexGradient: 0 m_colorMode: 3 m_fontColorGradient: @@ -1439,15 +1852,15 @@ MonoBehaviour: m_faceColor: serializedVersion: 2 rgba: 4294967295 - m_fontSize: 28.9 - m_fontSizeBase: 15 + m_fontSize: 36 + m_fontSizeBase: 36 m_fontWeight: 400 - m_enableAutoSizing: 1 + m_enableAutoSizing: 0 m_fontSizeMin: 18 - m_fontSizeMax: 30 + m_fontSizeMax: 72 m_fontStyle: 0 m_HorizontalAlignment: 2 - m_VerticalAlignment: 512 + m_VerticalAlignment: 256 m_textAlignment: 65535 m_characterSpacing: 0 m_wordSpacing: 0 @@ -1457,7 +1870,7 @@ MonoBehaviour: m_charWidthMaxAdj: 0 m_enableWordWrapping: 1 m_wordWrappingRatios: 0.4 - m_overflowMode: 3 + m_overflowMode: 0 m_linkedTextComponent: {fileID: 0} parentLinkedComponent: {fileID: 0} m_enableKerning: 1 @@ -1465,7 +1878,7 @@ MonoBehaviour: checkPaddingRequired: 0 m_isRichText: 1 m_parseCtrlCharacters: 1 - m_isOrthographic: 1 + m_isOrthographic: 0 m_isCullingEnabled: 0 m_horizontalMapping: 0 m_verticalMapping: 0 @@ -1478,17 +1891,54 @@ MonoBehaviour: m_margin: {x: 0, y: 0, z: 0, w: 0} m_isUsingLegacyAnimationComponent: 0 m_isVolumetricText: 0 + _SortingLayer: 0 + _SortingLayerID: 0 + _SortingOrder: 0 m_hasFontAssetChanged: 0 - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!222 &441350529 -CanvasRenderer: + m_renderer: {fileID: 444083710} + m_maskType: 0 +--- !u!23 &444083710 +MeshRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 441350526} - m_CullTransparentMesh: 1 + m_GameObject: {fileID: 444083707} + 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: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, 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!1 &453770080 GameObject: m_ObjectHideFlags: 0 @@ -1515,7 +1965,7 @@ RectTransform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 453770080} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalRotation: {x: -0.0000000074505797, 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 @@ -1523,14 +1973,16 @@ RectTransform: - {fileID: 807153364} - {fileID: 1426026643} - {fileID: 1057134560} + - {fileID: 1986242393} + - {fileID: 1924049003} - {fileID: 1593155892} - m_Father: {fileID: 1168742018} - m_RootOrder: 1 + m_Father: {fileID: 547075420} + m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 700, y: -147} + m_SizeDelta: {x: 200, y: 290} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &453770082 MonoBehaviour: @@ -1545,14 +1997,14 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_Padding: - m_Left: 0 - m_Right: 0 - m_Top: 0 - m_Bottom: 0 + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 m_ChildAlignment: 0 m_Spacing: 0 m_ChildForceExpandWidth: 1 - m_ChildForceExpandHeight: 1 + m_ChildForceExpandHeight: 0 m_ChildControlWidth: 1 m_ChildControlHeight: 0 m_ChildScaleWidth: 0 @@ -1596,6 +2048,250 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 453770080} m_CullTransparentMesh: 1 +--- !u!1 &475102558 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 475102559} + - component: {fileID: 475102562} + - component: {fileID: 475102561} + - component: {fileID: 475102560} + m_Layer: 5 + m_Name: BtnClearPersisted + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &475102559 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 475102558} + m_LocalRotation: {x: 0.0000000074505797, y: 4.6295556e-10, z: -0.0000000029471678, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0.000047828173} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 370985693} + m_Father: {fileID: 1821684725} + 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: 40} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &475102560 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 475102558} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 475102561} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &475102561 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 475102558} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &475102562 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 475102558} + m_CullTransparentMesh: 1 +--- !u!1 &496171683 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 496171684} + - component: {fileID: 496171687} + - component: {fileID: 496171686} + - component: {fileID: 496171685} + m_Layer: 5 + m_Name: BtnExportAll + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &496171684 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 496171683} + m_LocalRotation: {x: 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: 1698952749} + m_Father: {fileID: 1821684725} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 40} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &496171685 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 496171683} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 496171686} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &496171686 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 496171683} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &496171687 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 496171683} + m_CullTransparentMesh: 1 --- !u!1 &532437207 GameObject: m_ObjectHideFlags: 0 @@ -1687,7 +2383,7 @@ Transform: m_GameObject: {fileID: 532437207} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.5, y: 0.02, z: 0.5} + m_LocalScale: {x: 0.25, y: 0.01, z: 0.25} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 227332154} @@ -1751,7 +2447,7 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_text: Detect + m_text: Create Anchor 1 m_isRightToLeft: 0 m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} @@ -1778,7 +2474,7 @@ MonoBehaviour: m_faceColor: serializedVersion: 2 rgba: 4294967295 - m_fontSize: 30 + m_fontSize: 27 m_fontSizeBase: 15 m_fontWeight: 400 m_enableAutoSizing: 1 @@ -1840,8 +2536,9 @@ GameObject: - component: {fileID: 546817384} - component: {fileID: 546817383} - component: {fileID: 546817382} + - component: {fileID: 546817386} m_Layer: 5 - m_Name: PDMenu + m_Name: Menu m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -1897,7 +2594,7 @@ Canvas: m_Enabled: 1 serializedVersion: 3 m_RenderMode: 2 - m_Camera: {fileID: 0} + m_Camera: {fileID: 1791666283} m_PlaneDistance: 100 m_PixelPerfect: 0 m_ReceivesEvents: 1 @@ -1915,21 +2612,107 @@ RectTransform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 546817380} - m_LocalRotation: {x: -0, y: 0.38268343, z: -0, w: 0.92387956} - m_LocalPosition: {x: 0, y: 0, z: 0.5232591} - m_LocalScale: {x: 0.004, y: 0.004, z: 0.004} + m_LocalRotation: {x: -0.17364825, y: 0, z: 0, w: 0.9848078} + m_LocalPosition: {x: 0, y: 0, z: 2} + m_LocalScale: {x: 0.005, y: 0.005, z: 0.005} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1057300752} + m_Father: {fileID: 1109786713} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: -20, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -0, y: 1.6} + m_SizeDelta: {x: 800, y: 550} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &546817386 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 546817380} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7951c64acb0fa62458bf30a60089fe2d, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 0 + m_CheckFor2DOcclusion: 0 + m_CheckFor3DOcclusion: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RaycastTriggerInteraction: 1 +--- !u!1 &547075419 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 547075420} + - component: {fileID: 547075421} + m_Layer: 5 + m_Name: Layout + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &547075420 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 547075419} + m_LocalRotation: {x: -0, y: 0.000000029688913, z: 0.0000000025974445, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - {fileID: 2018251898} - - {fileID: 1469663496} - m_Father: {fileID: 1109786713} - m_RootOrder: 5 + - {fileID: 1970549690} + - {fileID: 1821684725} + - {fileID: 453770081} + - {fileID: 920678257} + m_Father: {fileID: 1057300752} + 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: 2.3051684, y: 2} - m_SizeDelta: {x: 400, y: 300} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 300} m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &547075421 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 547075419} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 2 + m_Bottom: 2 + m_ChildAlignment: 0 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 --- !u!1 &592865849 GameObject: m_ObjectHideFlags: 0 @@ -2015,7 +2798,7 @@ MonoBehaviour: m_faceColor: serializedVersion: 2 rgba: 4294967295 - m_fontSize: 30 + m_fontSize: 27 m_fontSizeBase: 15 m_fontWeight: 400 m_enableAutoSizing: 1 @@ -2065,7 +2848,7 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 592865849} m_CullTransparentMesh: 1 ---- !u!1 &657062030 +--- !u!1 &604750405 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -2073,46 +2856,92 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 657062031} - - component: {fileID: 657062033} - - component: {fileID: 657062032} + - component: {fileID: 604750406} + - component: {fileID: 604750409} + - component: {fileID: 604750408} + - component: {fileID: 604750407} m_Layer: 5 - m_Name: Text (TMP) + m_Name: BtnReleasePAC m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!224 &657062031 +--- !u!224 &604750406 RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 657062030} + m_GameObject: {fileID: 604750405} m_LocalRotation: {x: 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: 2095785213} - m_RootOrder: 0 + m_Children: + - {fileID: 176595568} + m_Father: {fileID: 1970549690} + m_RootOrder: 6 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} + m_AnchorMax: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 40} m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &657062032 +--- !u!114 &604750407 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 657062030} + m_GameObject: {fileID: 604750405} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 604750408} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &604750408 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 604750405} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} @@ -2123,83 +2952,301 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_text: Device / Local - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4281479730 - m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} - m_enableVertexGradient: 0 - m_colorMode: 3 - m_fontColorGradient: - topLeft: {r: 1, g: 1, b: 1, a: 1} - topRight: {r: 1, g: 1, b: 1, a: 1} - bottomLeft: {r: 1, g: 1, b: 1, a: 1} - bottomRight: {r: 1, g: 1, b: 1, a: 1} - m_fontColorGradientPreset: {fileID: 0} - m_spriteAsset: {fileID: 0} - m_tintAllSprites: 0 - m_StyleSheet: {fileID: 0} - m_TextStyleHashCode: -1183493901 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_fontSize: 30 - m_fontSizeBase: 15 - m_fontWeight: 400 - m_enableAutoSizing: 1 - m_fontSizeMin: 18 - m_fontSizeMax: 30 - 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: 3 - 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 &657062033 + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &604750409 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 657062030} + m_GameObject: {fileID: 604750405} m_CullTransparentMesh: 1 +--- !u!1 &627462409 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 627462410} + - component: {fileID: 627462413} + - component: {fileID: 627462412} + - component: {fileID: 627462411} + m_Layer: 5 + m_Name: BtnUnpersistAnchor1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &627462410 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 627462409} + m_LocalRotation: {x: 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: 852128132} + m_Father: {fileID: 1970549690} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 40} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &627462411 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 627462409} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 627462412} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &627462412 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 627462409} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &627462413 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 627462409} + m_CullTransparentMesh: 1 +--- !u!1 &645324607 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 645324611} + - component: {fileID: 645324610} + - component: {fileID: 645324609} + - component: {fileID: 645324608} + m_Layer: 5 + m_Name: BtnDeleteFiles + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &645324608 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 645324607} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 645324609} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &645324609 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 645324607} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &645324610 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 645324607} + m_CullTransparentMesh: 1 +--- !u!224 &645324611 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 645324607} + m_LocalRotation: {x: 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: 1803526455} + m_Father: {fileID: 1821684725} + 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: 40} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &659690261 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 659690262} + m_Layer: 0 + m_Name: Anchor1Persisted + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &659690262 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 659690261} + m_LocalRotation: {x: 0.12059045, y: 0.049950212, z: -0.3794095, w: 0.9159757} + m_LocalPosition: {x: 0.5, y: 0.65, z: 0.5} + m_LocalScale: {x: 1, y: 1, z: 1.0000001} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 2090790537} + - {fileID: 2116241626} + m_Father: {fileID: 1109786713} + m_RootOrder: 7 + m_LocalEulerAnglesHint: {x: 15, y: 0, z: -45} --- !u!1 &661696886 GameObject: m_ObjectHideFlags: 0 @@ -2364,6 +3411,8 @@ Transform: m_ConstrainProportionsScale: 0 m_Children: - {fileID: 1791666280} + - {fileID: 1792324631} + - {fileID: 828673058} m_Father: {fileID: 1715574622} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -2399,13 +3448,13 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: - {fileID: 393236207} - m_Father: {fileID: 1726873616} + m_Father: {fileID: 2018251898} m_RootOrder: 5 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 45} + m_SizeDelta: {x: 0, y: 40} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &799484303 MonoBehaviour: @@ -2450,19 +3499,7 @@ MonoBehaviour: m_TargetGraphic: {fileID: 799484304} m_OnClick: m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 1759475126} - m_TargetAssemblyTypeName: HtcAnchorTestHandle, VIVE.OpenXR.Samples - m_MethodName: OnResetObj - m_Mode: 1 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 + m_Calls: [] --- !u!114 &799484304 MonoBehaviour: m_ObjectHideFlags: 0 @@ -2501,7 +3538,7 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 799484301} m_CullTransparentMesh: 1 ---- !u!1 &802264749 +--- !u!1 &806091609 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -2509,9 +3546,9 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 802264750} - - component: {fileID: 802264752} - - component: {fileID: 802264751} + - component: {fileID: 806091610} + - component: {fileID: 806091612} + - component: {fileID: 806091611} m_Layer: 5 m_Name: Text (TMP) m_TagString: Untagged @@ -2519,19 +3556,19 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!224 &802264750 +--- !u!224 &806091610 RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 802264749} + m_GameObject: {fileID: 806091609} m_LocalRotation: {x: 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: 1009790016} + m_Father: {fileID: 1927371023} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} @@ -2539,13 +3576,13 @@ RectTransform: m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &802264751 +--- !u!114 &806091611 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 802264749} + m_GameObject: {fileID: 806091609} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} @@ -2559,7 +3596,7 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_text: Create Anchor 1 + m_text: Import All m_isRightToLeft: 0 m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} @@ -2628,13 +3665,13 @@ MonoBehaviour: m_hasFontAssetChanged: 0 m_baseMaterial: {fileID: 0} m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!222 &802264752 +--- !u!222 &806091612 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 802264749} + m_GameObject: {fileID: 806091609} m_CullTransparentMesh: 1 --- !u!1 &807153363 GameObject: @@ -2672,7 +3709,7 @@ RectTransform: m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 40} + m_SizeDelta: {x: 0, y: 30} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &807153365 MonoBehaviour: @@ -2721,7 +3758,7 @@ MonoBehaviour: m_faceColor: serializedVersion: 2 rgba: 4294967295 - m_fontSize: 30 + m_fontSize: 26.85 m_fontSizeBase: 15 m_fontWeight: 400 m_enableAutoSizing: 1 @@ -2797,7 +3834,7 @@ RectTransform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 826987303} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.29999995} + m_LocalPosition: {x: 0, y: 0, z: -0.2} m_LocalScale: {x: 0.02, y: 0.02, z: 0.02} m_ConstrainProportionsScale: 0 m_Children: [] @@ -2806,7 +3843,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.03999996} + m_AnchoredPosition: {x: -0, y: 0.03999996} m_SizeDelta: {x: 20, y: 5} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &826987305 @@ -2943,7 +3980,7 @@ MeshRenderer: m_SortingLayer: 0 m_SortingOrder: 0 m_AdditionalVertexStreams: {fileID: 0} ---- !u!1 &1009790015 +--- !u!1 &828673057 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -2951,104 +3988,693 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1009790016} - - component: {fileID: 1009790019} - - component: {fileID: 1009790018} - - component: {fileID: 1009790017} - m_Layer: 5 - m_Name: BtnCreateAnchor1 + - component: {fileID: 828673058} + - component: {fileID: 828673063} + - component: {fileID: 828673062} + - component: {fileID: 828673061} + - component: {fileID: 828673060} + - component: {fileID: 828673059} + m_Layer: 0 + m_Name: Right Controller m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!224 &1009790016 +--- !u!4 &828673058 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 828673057} + m_LocalRotation: {x: -0, y: 0.38268343, z: -0, w: 0.92387956} + m_LocalPosition: {x: -0.22988328, y: 2.6299827, z: 0.9715143} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 685509533} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!210 &828673059 +SortingGroup: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 828673057} + m_Enabled: 1 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 5 +--- !u!114 &828673060 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 828673057} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e988983f96fe1dd48800bcdfc82f23e9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_LineWidth: 0.005 + m_OverrideInteractorLineLength: 1 + m_LineLength: 10 + m_AutoAdjustLineLength: 0 + m_MinLineLength: 0.5 + m_UseDistanceToHitAsMaxLineLength: 1 + m_LineRetractionDelay: 0.5 + m_LineLengthChangeSpeed: 12 + m_WidthCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_SetLineColorGradient: 1 + m_ValidColorGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + m_InvalidColorGradient: + serializedVersion: 2 + key0: {r: 1, g: 0, b: 0, a: 1} + key1: {r: 1, g: 0, b: 0, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + m_BlockedColorGradient: + serializedVersion: 2 + key0: {r: 1, g: 0.92156863, b: 0.015686275, a: 1} + key1: {r: 1, g: 0.92156863, b: 0.015686275, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + m_TreatSelectionAsValidState: 0 + m_SmoothMovement: 0 + m_FollowTightness: 10 + m_SnapThresholdDistance: 10 + m_Reticle: {fileID: 0} + m_BlockedReticle: {fileID: 0} + m_StopLineAtFirstRaycastHit: 1 + m_StopLineAtSelection: 0 + m_SnapEndpointIfAvailable: 1 + m_LineBendRatio: 0.5 + m_OverrideInteractorLineOrigin: 1 + m_LineOriginTransform: {fileID: 0} + m_LineOriginOffset: 0 +--- !u!120 &828673061 +LineRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 828673057} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 0 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10306, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Positions: + - {x: 0, y: 0, z: 0} + - {x: 0, y: 0, z: 1} + m_Parameters: + serializedVersion: 3 + widthMultiplier: 0.005 + widthCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + numCornerVertices: 4 + numCapVertices: 4 + alignment: 0 + textureMode: 0 + shadowBias: 0.5 + generateLightingData: 0 + m_UseWorldSpace: 1 + m_Loop: 0 +--- !u!114 &828673062 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 828673057} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6803edce0201f574f923fd9d10e5b30a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_InteractionManager: {fileID: 0} + m_InteractionLayerMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_InteractionLayers: + m_Bits: 4294967295 + m_AttachTransform: {fileID: 0} + m_KeepSelectedTargetValid: 1 + m_DisableVisualsWhenBlockedInGroup: 1 + m_StartingSelectedInteractable: {fileID: 0} + m_StartingTargetFilter: {fileID: 0} + m_HoverEntered: + m_PersistentCalls: + m_Calls: [] + m_HoverExited: + m_PersistentCalls: + m_Calls: [] + m_SelectEntered: + m_PersistentCalls: + m_Calls: [] + m_SelectExited: + m_PersistentCalls: + m_Calls: [] + m_StartingHoverFilters: [] + m_StartingSelectFilters: [] + m_OnHoverEntered: + m_PersistentCalls: + m_Calls: [] + m_OnHoverExited: + m_PersistentCalls: + m_Calls: [] + m_OnSelectEntered: + m_PersistentCalls: + m_Calls: [] + m_OnSelectExited: + m_PersistentCalls: + m_Calls: [] + m_SelectActionTrigger: 1 + m_HideControllerOnSelect: 0 + m_AllowHoveredActivate: 0 + m_TargetPriorityMode: 0 + m_PlayAudioClipOnSelectEntered: 0 + m_AudioClipForOnSelectEntered: {fileID: 0} + m_PlayAudioClipOnSelectExited: 0 + m_AudioClipForOnSelectExited: {fileID: 0} + m_PlayAudioClipOnSelectCanceled: 0 + m_AudioClipForOnSelectCanceled: {fileID: 0} + m_PlayAudioClipOnHoverEntered: 0 + m_AudioClipForOnHoverEntered: {fileID: 0} + m_PlayAudioClipOnHoverExited: 0 + m_AudioClipForOnHoverExited: {fileID: 0} + m_PlayAudioClipOnHoverCanceled: 0 + m_AudioClipForOnHoverCanceled: {fileID: 0} + m_AllowHoverAudioWhileSelecting: 1 + m_PlayHapticsOnSelectEntered: 0 + m_HapticSelectEnterIntensity: 0 + m_HapticSelectEnterDuration: 0 + m_PlayHapticsOnSelectExited: 0 + m_HapticSelectExitIntensity: 0 + m_HapticSelectExitDuration: 0 + m_PlayHapticsOnSelectCanceled: 0 + m_HapticSelectCancelIntensity: 0 + m_HapticSelectCancelDuration: 0 + m_PlayHapticsOnHoverEntered: 0 + m_HapticHoverEnterIntensity: 0 + m_HapticHoverEnterDuration: 0 + m_PlayHapticsOnHoverExited: 0 + m_HapticHoverExitIntensity: 0 + m_HapticHoverExitDuration: 0 + m_PlayHapticsOnHoverCanceled: 0 + m_HapticHoverCancelIntensity: 0 + m_HapticHoverCancelDuration: 0 + m_AllowHoverHapticsWhileSelecting: 1 + m_LineType: 0 + m_BlendVisualLinePoints: 1 + m_MaxRaycastDistance: 30 + m_RayOriginTransform: {fileID: 0} + m_ReferenceFrame: {fileID: 0} + m_Velocity: 16 + m_Acceleration: 9.8 + m_AdditionalGroundHeight: 0.1 + m_AdditionalFlightTime: 0.5 + m_EndPointDistance: 30 + m_EndPointHeight: -10 + m_ControlPointDistance: 10 + m_ControlPointHeight: 5 + m_SampleFrequency: 20 + m_HitDetectionType: 0 + m_SphereCastRadius: 0.1 + m_ConeCastAngle: 6 + m_RaycastMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RaycastTriggerInteraction: 1 + m_RaycastSnapVolumeInteraction: 1 + m_HitClosestOnly: 0 + m_HoverToSelect: 0 + m_HoverTimeToSelect: 0.5 + m_AutoDeselect: 0 + m_TimeToAutoDeselect: 3 + m_EnableUIInteraction: 1 + m_BlockUIOnInteractableSelection: 1 + m_AllowAnchorControl: 1 + m_UseForceGrab: 1 + m_RotateSpeed: 180 + m_TranslateSpeed: 1 + m_AnchorRotateReferenceFrame: {fileID: 0} + m_AnchorRotationMode: 0 + m_UIHoverEntered: + m_PersistentCalls: + m_Calls: [] + m_UIHoverExited: + m_PersistentCalls: + m_Calls: [] + m_EnableARRaycasting: 0 + m_OccludeARHitsWith3DObjects: 0 + m_OccludeARHitsWith2DObjects: 0 + m_ScaleMode: 0 +--- !u!114 &828673063 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 828673057} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: caff514de9b15ad48ab85dcff5508221, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UpdateTrackingType: 0 + m_EnableInputTracking: 1 + m_EnableInputActions: 1 + m_ModelPrefab: {fileID: 0} + m_ModelParent: {fileID: 0} + m_Model: {fileID: 0} + m_AnimateModel: 0 + m_ModelSelectTransition: + m_ModelDeSelectTransition: + m_PositionAction: + m_UseReference: 1 + m_Action: + m_Name: Position + m_Type: 0 + m_ExpectedControlType: Vector3 + m_Id: dd9b331e-72bd-4fbb-9548-3ceff6c84406 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: -5730229631511484051, guid: 7731a6c81e069424eb7df31b19b84b41, type: 3} + m_RotationAction: + m_UseReference: 1 + m_Action: + m_Name: Rotation + m_Type: 0 + m_ExpectedControlType: Quaternion + m_Id: eac46dad-8033-4102-b8a5-6bb08ed3a9e1 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: -5246335118593862002, guid: 7731a6c81e069424eb7df31b19b84b41, type: 3} + m_IsTrackedAction: + m_UseReference: 0 + m_Action: + m_Name: Is Tracked + m_Type: 1 + m_ExpectedControlType: + m_Id: b3884408-15d5-47cc-8178-141e061ea582 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 1 + m_Reference: {fileID: 0} + m_TrackingStateAction: + m_UseReference: 0 + m_Action: + m_Name: Tracking State + m_Type: 0 + m_ExpectedControlType: Integer + m_Id: d77c6a3e-b889-4f1c-a82e-8a9228bd528a + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 0} + m_SelectAction: + m_UseReference: 0 + m_Action: + m_Name: Select + m_Type: 1 + m_ExpectedControlType: + m_Id: 951a7b0e-a254-4bad-8450-2e1fe8a3346c + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 0} + m_SelectActionValue: + m_UseReference: 0 + m_Action: + m_Name: Select Value + m_Type: 0 + m_ExpectedControlType: Axis + m_Id: fccc1af9-da2f-4d06-9ff4-9f3280ef4efd + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 0} + m_ActivateAction: + m_UseReference: 1 + m_Action: + m_Name: Activate + m_Type: 1 + m_ExpectedControlType: + m_Id: bf32430d-3c3c-402f-bb1b-a363f46bfe59 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 6454596279149084813, guid: 7731a6c81e069424eb7df31b19b84b41, type: 3} + m_ActivateActionValue: + m_UseReference: 0 + m_Action: + m_Name: Activate Value + m_Type: 0 + m_ExpectedControlType: Axis + m_Id: babbf038-745d-454f-918f-9415fb06f3e3 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 0} + m_UIPressAction: + m_UseReference: 1 + m_Action: + m_Name: UI Press + m_Type: 1 + m_ExpectedControlType: + m_Id: 0ffa1bca-1c3f-4e97-a651-a3dc61fc2348 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 6454596279149084813, guid: 7731a6c81e069424eb7df31b19b84b41, type: 3} + m_UIPressActionValue: + m_UseReference: 0 + m_Action: + m_Name: UI Press Value + m_Type: 0 + m_ExpectedControlType: Axis + m_Id: 6070f2f9-e225-49d1-a6f5-8b719f580261 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 0} + m_UIScrollAction: + m_UseReference: 0 + m_Action: + m_Name: UI Scroll + m_Type: 0 + m_ExpectedControlType: Vector2 + m_Id: fd164e08-09ea-4748-be8a-d28b18b4cfc5 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 0} + m_HapticDeviceAction: + m_UseReference: 0 + m_Action: + m_Name: Haptic Device + m_Type: 2 + m_ExpectedControlType: + m_Id: 9a53418b-85dd-4e63-8c54-337d5ed4de1b + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 0} + m_RotateAnchorAction: + m_UseReference: 0 + m_Action: + m_Name: Rotate Anchor + m_Type: 0 + m_ExpectedControlType: Vector2 + m_Id: fbc64fa4-7119-447c-abfe-a955f6ac6612 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 0} + m_DirectionalAnchorRotationAction: + m_UseReference: 0 + m_Action: + m_Name: Directional Anchor Rotation + m_Type: 0 + m_ExpectedControlType: Vector2 + m_Id: 31dfad03-9979-4bf3-9f17-292c737f20c8 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 0} + m_TranslateAnchorAction: + m_UseReference: 0 + m_Action: + m_Name: Translate Anchor + m_Type: 0 + m_ExpectedControlType: Vector2 + m_Id: b344db26-ab27-4260-a385-6532b878e418 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 0} + m_ScaleToggleAction: + m_UseReference: 0 + m_Action: + m_Name: Scale Toggle + m_Type: 1 + m_ExpectedControlType: + m_Id: fbbed03c-d08a-483c-b2b7-f6ac5bc9c46f + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 0} + m_ScaleDeltaAction: + m_UseReference: 0 + m_Action: + m_Name: Scale Delta + m_Type: 0 + m_ExpectedControlType: Vector2 + m_Id: 6601bf25-07f5-447e-87eb-d919c0a8da16 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 0} + m_ButtonPressPoint: 0.5 +--- !u!1 &852128131 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 852128132} + - component: {fileID: 852128134} + - component: {fileID: 852128133} + 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 &852128132 RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1009790015} + m_GameObject: {fileID: 852128131} m_LocalRotation: {x: 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: 802264750} - m_Father: {fileID: 1726873616} - m_RootOrder: 1 + m_Children: [] + m_Father: {fileID: 627462410} + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 45} + m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1009790017 +--- !u!114 &852128133 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1009790015} + m_GameObject: {fileID: 852128131} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 3 - m_WrapAround: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 1} - m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} - m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_SelectedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_SelectedTrigger: Selected - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 1009790018} - m_OnClick: - m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 1759475126} - m_TargetAssemblyTypeName: HtcAnchorTestHandle, VIVE.OpenXR.Samples - m_MethodName: OnCreateAnchor1 - m_Mode: 1 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 ---- !u!114 &1009790018 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1009790015} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} @@ -3059,7 +4685,171 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_text: Unpersist A. 1 + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 30 + m_fontSizeBase: 15 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 18 + m_fontSizeMax: 30 + 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: 3 + 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 &852128134 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 852128131} + m_CullTransparentMesh: 1 +--- !u!1 &920678256 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 920678257} + - component: {fileID: 920678260} + - component: {fileID: 920678259} + - component: {fileID: 920678258} + m_Layer: 5 + m_Name: Panel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &920678257 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 920678256} + m_LocalRotation: {x: 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: 1239786009} + - {fileID: 1141798578} + m_Father: {fileID: 547075420} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 400, y: -425} + m_SizeDelta: {x: 800, y: 250} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &920678258 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 920678256} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!114 &920678259 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 920678256} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0.392} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 m_FillCenter: 1 @@ -3069,13 +4859,181 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 ---- !u!222 &1009790019 +--- !u!222 &920678260 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1009790015} + m_GameObject: {fileID: 920678256} + m_CullTransparentMesh: 1 +--- !u!1 &978752708 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 978752709} + m_Layer: 0 + m_Name: Anchor1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &978752709 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 978752708} + m_LocalRotation: {x: -0.12059043, y: -0.04995022, z: 0.37940958, w: -0.91597563} + m_LocalPosition: {x: 0.5, y: 0.65, z: 0.50000006} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1544127095} + - {fileID: 1649666253} + m_Father: {fileID: 1109786713} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1001247470 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1001247471} + - component: {fileID: 1001247473} + - component: {fileID: 1001247472} + 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 &1001247471 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1001247470} + m_LocalRotation: {x: 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: 1616028262} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1001247472 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1001247470} + 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: Persist A. 1 + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 30 + m_fontSizeBase: 15 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 18 + m_fontSizeMax: 30 + 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: 3 + 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 &1001247473 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1001247470} m_CullTransparentMesh: 1 --- !u!1 &1017704801 GameObject: @@ -3103,12 +5061,12 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1017704801} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0.25, z: 2} - m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalPosition: {x: 0, y: 0.25, z: 1} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1109786713} - m_RootOrder: 11 + m_RootOrder: 6 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!23 &1017704803 MeshRenderer: @@ -3169,15 +5127,30 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 1029426375} - - component: {fileID: 1029426374} + - component: {fileID: 1029426376} m_Layer: 0 - m_Name: GameHandlePD + m_Name: GameHandle m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!114 &1029426374 +--- !u!4 &1029426375 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1029426373} + m_LocalRotation: {x: -0, y: -0.38268343, z: -0, w: 0.92387956} + m_LocalPosition: {x: -5, y: -1, z: 3} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1029426376 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -3186,30 +5159,193 @@ MonoBehaviour: m_GameObject: {fileID: 1029426373} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 747416ff28a86f94ca1270999dbd3384, type: 3} + m_Script: {fileID: 11500000, guid: 16f64bee631c00a4289f36f36432aee1, type: 3} m_Name: m_EditorClassIdentifier: - extentMat: {fileID: 2100000, guid: 335e1769e67ac3f4cac3f5ab4e431980, type: 2} - planeMat: {fileID: 2100000, guid: d00a61ab1b0b1e54fbbf44c323f09ef2, type: 2} - detectPlaneButton: {fileID: 397660392} - clearObjectsButton: {fileID: 1184073696} - statusOrigin: {fileID: 1679290840} - root: {fileID: 125112116} ---- !u!4 &1029426375 -Transform: + rig: {fileID: 1715574622} + anchorPoseD: {fileID: 1017704802} + anchorPose1: {fileID: 1649666253} + anchorPose2: {fileID: 394960778} + obj: {fileID: 227332154} + panchorObj1: {fileID: 659690261} + panchorObj2: {fileID: 1934207631} + statusResponse: {fileID: 1141798579} + statusOrigin: {fileID: 1593155893} + statusAnchor: {fileID: 1239786010} + btnCreateAnchor1: {fileID: 397660392} + btnCreateAnchor2: {fileID: 2041492662} + btnFollowAnchor1: {fileID: 1184073696} + btnFollowAnchor2: {fileID: 1078600140} + btnResetObj: {fileID: 799484303} + btnClearSpatialAnchors: {fileID: 2083642734} + btnPersistAnchor1: {fileID: 1616028263} + btnPersistAnchor2: {fileID: 1110292000} + btnUnpersistAnchor1: {fileID: 627462411} + btnUnpersistAnchor2: {fileID: 1123027245} + btnClearPersistedAnchors: {fileID: 475102560} + btnAcquirePAC: {fileID: 2107616802} + btnReleasePAC: {fileID: 604750407} + btnExportAll: {fileID: 496171685} + btnImportAll: {fileID: 1927371024} + btnClearExportedAnchors: {fileID: 645324608} + btnFloor: {fileID: 1057134561} + btnDevice: {fileID: 1426026644} + btnReloadScene: {fileID: 1986242394} + btnQuitApp: {fileID: 1924049004} + testCreateAnchor1: 0 + testCreateAnchor2: 0 + testFollowAnchor1: 0 + testFollowAnchor2: 0 + testResetObj: 0 + testClearSpatialAnchors: 0 + testCreatePAC: 0 + testDestroyPAC: 0 + testPersistAnchor1: 0 + testPersistAnchor2: 0 + testUnpersistAnchor1: 0 + testUnpersistAnchor2: 0 + testClearPersistedAnchors: 0 + testExportAll: 0 + testImportAll: 0 + testClearExportedAnchors: 0 + testFloor: 0 + testDevice: 0 + testReloadScene: 0 +--- !u!1 &1053434575 +GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1029426373} - m_LocalRotation: {x: -0, y: 0.38268343, z: -0, w: 0.92387956} - m_LocalPosition: {x: 1.4142137, y: 1, z: -5.656854} + serializedVersion: 6 + m_Component: + - component: {fileID: 1053434576} + - component: {fileID: 1053434578} + - component: {fileID: 1053434577} + 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 &1053434576 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1053434575} + m_LocalRotation: {x: 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: 1109786713} - m_RootOrder: 2 + m_Father: {fileID: 2083642733} + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1053434577 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1053434575} + 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: Clear Anchors + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 30 + m_fontSizeBase: 15 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 18 + m_fontSizeMax: 30 + 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: 3 + 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 &1053434578 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1053434575} + m_CullTransparentMesh: 1 --- !u!1 &1057134559 GameObject: m_ObjectHideFlags: 0 @@ -3248,7 +5384,7 @@ RectTransform: m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 45} + m_SizeDelta: {x: 0, y: 40} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &1057134561 MonoBehaviour: @@ -3293,20 +5429,7 @@ MonoBehaviour: m_TargetGraphic: {fileID: 1057134562} m_OnClick: m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 1759475126} - m_TargetAssemblyTypeName: VIVE.OpenXR.Samples.HtcAnchor.HtcAnchorTestHandle, - VIVE.OpenXR.Samples - m_MethodName: OnFloor - m_Mode: 1 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 + m_Calls: [] --- !u!114 &1057134562 MonoBehaviour: m_ObjectHideFlags: 0 @@ -3345,6 +5468,70 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1057134559} m_CullTransparentMesh: 1 +--- !u!1 &1057300751 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1057300752} + - component: {fileID: 1057300753} + m_Layer: 5 + m_Name: VLayout + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1057300752 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1057300751} + m_LocalRotation: {x: 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: 547075420} + m_Father: {fileID: 546817385} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1057300753 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1057300751} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 0 + m_ChildControlWidth: 1 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 --- !u!1 &1078600138 GameObject: m_ObjectHideFlags: 0 @@ -3377,13 +5564,13 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: - {fileID: 2125431322} - m_Father: {fileID: 1726873616} + m_Father: {fileID: 2018251898} 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: 45} + m_SizeDelta: {x: 0, y: 40} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &1078600140 MonoBehaviour: @@ -3428,19 +5615,7 @@ MonoBehaviour: m_TargetGraphic: {fileID: 1078600141} m_OnClick: m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 1759475126} - m_TargetAssemblyTypeName: HtcAnchorTestHandle, VIVE.OpenXR.Samples - m_MethodName: OnFollowAnchor2 - m_Mode: 1 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 + m_Calls: [] --- !u!114 &1078600141 MonoBehaviour: m_ObjectHideFlags: 0 @@ -3479,6 +5654,143 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1078600138} m_CullTransparentMesh: 1 +--- !u!1 &1089510175 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1089510176} + - component: {fileID: 1089510178} + - component: {fileID: 1089510177} + 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 &1089510176 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1089510175} + m_LocalRotation: {x: 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: 2107616801} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1089510177 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1089510175} + 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: 'Acquire PAC + +' + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 30 + m_fontSizeBase: 15 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 18 + m_fontSizeMax: 30 + 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: 3 + 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 &1089510178 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1089510175} + m_CullTransparentMesh: 1 --- !u!1 &1109786712 GameObject: m_ObjectHideFlags: 0 @@ -3508,20 +5820,261 @@ Transform: m_ConstrainProportionsScale: 0 m_Children: - {fileID: 100546047} - - {fileID: 1759475127} - - {fileID: 1029426375} - - {fileID: 26336043} - - {fileID: 1168742018} - {fileID: 546817385} - {fileID: 1715574622} - - {fileID: 125112116} - {fileID: 227332154} - - {fileID: 1649666253} - - {fileID: 394960778} + - {fileID: 978752709} + - {fileID: 315862331} - {fileID: 1017704802} + - {fileID: 659690262} + - {fileID: 1934207632} m_Father: {fileID: 0} - m_RootOrder: 0 + m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: -45, z: 0} +--- !u!1 &1110291998 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1110291999} + - component: {fileID: 1110292002} + - component: {fileID: 1110292001} + - component: {fileID: 1110292000} + m_Layer: 5 + m_Name: BtnPersistAnchor2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1110291999 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1110291998} + m_LocalRotation: {x: -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: 7822134} + m_Father: {fileID: 1970549690} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 40} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1110292000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1110291998} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1110292001} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &1110292001 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1110291998} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1110292002 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1110291998} + m_CullTransparentMesh: 1 +--- !u!1 &1123027243 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1123027244} + - component: {fileID: 1123027247} + - component: {fileID: 1123027246} + - component: {fileID: 1123027245} + m_Layer: 5 + m_Name: BtnUnpersistAnchor2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1123027244 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1123027243} + m_LocalRotation: {x: -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: 196214971} + m_Father: {fileID: 1970549690} + 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: 40} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1123027245 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1123027243} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1123027246} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &1123027246 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1123027243} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1123027247 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1123027243} + m_CullTransparentMesh: 1 --- !u!1 &1141798577 GameObject: m_ObjectHideFlags: 0 @@ -3547,18 +6100,18 @@ RectTransform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1141798577} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalRotation: {x: -0.000000029802319, y: 0.00000003030398, z: 4.15407e-10, 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: 120366535} - m_RootOrder: 0 + m_Father: {fileID: 920678257} + m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 400, y: -50} + m_SizeDelta: {x: 800, y: 100} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &1141798579 MonoBehaviour: @@ -3580,10 +6133,10 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_text: Show status here + m_text: "Show Action response here\u79C0" m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontAsset: {fileID: 11400000, guid: b8d7ff1ce468ad54e95b30ad0114eca9, type: 2} + m_sharedMaterial: {fileID: -3226401479495081048, guid: b8d7ff1ce468ad54e95b30ad0114eca9, type: 2} m_fontSharedMaterials: [] m_fontMaterial: {fileID: 0} m_fontMaterials: [] @@ -3657,7 +6210,7 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1141798577} m_CullTransparentMesh: 1 ---- !u!1 &1143364005 +--- !u!1 &1163192370 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -3665,235 +6218,85 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1143364006} - - component: {fileID: 1143364008} - - component: {fileID: 1143364007} - m_Layer: 5 - m_Name: TestDescription + - component: {fileID: 1163192373} + - component: {fileID: 1163192372} + - component: {fileID: 1163192371} + m_Layer: 0 + m_Name: EventSystem m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!224 &1143364006 -RectTransform: +--- !u!114 &1163192371 +MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1143364005} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_GameObject: {fileID: 1163192370} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ab68ce6587aab0146b8dabefbd806791, type: 3} + m_Name: + m_EditorClassIdentifier: + m_SendPointerHoverToParent: 1 + m_ClickSpeed: 0.3 + m_MoveDeadzone: 0.6 + m_RepeatDelay: 0.5 + m_RepeatRate: 0.1 + m_TrackedDeviceDragThresholdMultiplier: 1.4 + m_TrackedScrollDeltaMultiplier: 5 + m_ActiveInputMode: 0 + m_MaxTrackedDeviceRaycastDistance: 1000 + m_EnableXRInput: 1 + m_EnableMouseInput: 1 + m_EnableTouchInput: 1 + m_PointAction: {fileID: 0} + m_LeftClickAction: {fileID: 0} + m_MiddleClickAction: {fileID: 0} + m_RightClickAction: {fileID: 0} + m_ScrollWheelAction: {fileID: 0} + m_NavigateAction: {fileID: 0} + m_SubmitAction: {fileID: 0} + m_CancelAction: {fileID: 0} + m_EnableBuiltinActionsAsFallback: 1 + m_EnableGamepadInput: 1 + m_EnableJoystickInput: 1 + m_HorizontalAxis: Horizontal + m_VerticalAxis: Vertical + m_SubmitButton: Submit + m_CancelButton: Cancel +--- !u!114 &1163192372 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1163192370} + 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 &1163192373 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1163192370} + m_LocalRotation: {x: 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: 1469663496} - m_RootOrder: 0 + m_Father: {fileID: 0} + m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 40} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1143364007 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1143364005} - 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: Origin - 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: 30 - m_fontSizeBase: 15 - m_fontWeight: 400 - m_enableAutoSizing: 1 - m_fontSizeMin: 18 - m_fontSizeMax: 30 - m_fontStyle: 0 - m_HorizontalAlignment: 2 - 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: 3 - 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 &1143364008 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1143364005} - m_CullTransparentMesh: 1 ---- !u!1 &1168742017 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1168742018} - - component: {fileID: 1168742021} - - component: {fileID: 1168742020} - - component: {fileID: 1168742019} - m_Layer: 5 - m_Name: Menu - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1168742018 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1168742017} - m_LocalRotation: {x: -0.083441556, y: -0, z: -0, w: 0.9965127} - m_LocalPosition: {x: 0, y: 0, z: 4.73} - m_LocalScale: {x: 0.01, y: 0.010000003, z: 0.010000003} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1726873616} - - {fileID: 453770081} - m_Father: {fileID: 1109786713} - m_RootOrder: 4 - m_LocalEulerAnglesHint: {x: -9.573, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 0, y: 1.58} - m_SizeDelta: {x: 500, y: 400} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1168742019 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1168742017} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreReversedGraphics: 1 - m_BlockingObjects: 0 - m_BlockingMask: - serializedVersion: 2 - m_Bits: 4294967295 ---- !u!114 &1168742020 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1168742017} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} - m_Name: - m_EditorClassIdentifier: - m_UiScaleMode: 0 - m_ReferencePixelsPerUnit: 100 - m_ScaleFactor: 1 - m_ReferenceResolution: {x: 800, y: 600} - m_ScreenMatchMode: 0 - m_MatchWidthOrHeight: 0 - m_PhysicalUnit: 3 - m_FallbackScreenDPI: 96 - m_DefaultSpriteDPI: 96 - m_DynamicPixelsPerUnit: 1 - m_PresetInfoIsWorld: 1 ---- !u!223 &1168742021 -Canvas: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1168742017} - m_Enabled: 1 - serializedVersion: 3 - m_RenderMode: 2 - m_Camera: {fileID: 1791666283} - 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!1 &1184073694 GameObject: m_ObjectHideFlags: 0 @@ -3907,7 +6310,7 @@ GameObject: - component: {fileID: 1184073697} - component: {fileID: 1184073696} m_Layer: 5 - m_Name: BtnClearObjects + m_Name: BtnFollowAncho1 m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -3927,12 +6330,12 @@ RectTransform: m_Children: - {fileID: 316359834} m_Father: {fileID: 2018251898} - m_RootOrder: 2 + m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 45} + m_SizeDelta: {x: 0, y: 40} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &1184073696 MonoBehaviour: @@ -4016,7 +6419,7 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1184073694} m_CullTransparentMesh: 1 ---- !u!1 &1219369120 +--- !u!1 &1239786008 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -4024,157 +6427,179 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1219369121} - - component: {fileID: 1219369125} - - component: {fileID: 1219369124} - - component: {fileID: 1219369123} - - component: {fileID: 1219369122} - m_Layer: 0 - m_Name: Gaze + - component: {fileID: 1239786009} + - component: {fileID: 1239786011} + - component: {fileID: 1239786010} + m_Layer: 5 + m_Name: AnchorStatus m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1219369121 -Transform: +--- !u!224 &1239786009 +RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1219369120} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} + m_GameObject: {fileID: 1239786008} + m_LocalRotation: {x: -0.000000029802319, y: 0.00000003030398, z: 4.15407e-10, 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: 1791666280} + m_Father: {fileID: 920678257} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &1219369122 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 400, y: -175} + m_SizeDelta: {x: 800, y: 150} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1239786010 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1219369120} + m_GameObject: {fileID: 1239786008} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 78ba47d171a9d604e87df3c8c0304fde, type: 3} + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} m_Name: m_EditorClassIdentifier: - m_IgnoreReversedGraphics: 0 - m_PhysicsCastDistance: 100 - m_PhysicsEventMask: + 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: "Show Anchor status here\u79C0" + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: b8d7ff1ce468ad54e95b30ad0114eca9, type: 2} + m_sharedMaterial: {fileID: -3226401479495081048, guid: b8d7ff1ce468ad54e95b30ad0114eca9, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: serializedVersion: 2 - m_Bits: 4294967295 - m_PointerRingWidth: 0.005 - m_PointerCircleRadius: 0.005 - m_PointerDistance: 1 - m_PointerColor: {r: 1, g: 1, b: 1, a: 1} - m_ProgressColor: {r: 0, g: 245, b: 255, a: 1} - m_PointerMaterial: {fileID: 0} - m_PointerRenderQueue: 5000 - m_PointerSortingOrder: 32767 - m_TimeToGaze: 1.5 - m_EyeTracking: 0 - m_EyePose: {fileID: 0} - m_InputEvent: 0 - m_ActionsKeys: [] - m_AlwaysEnable: 1 ---- !u!20 &1219369123 -Camera: + 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: 30 + m_fontSizeBase: 15 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 18 + m_fontSizeMax: 30 + 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: 3 + 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 &1239786011 +CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1219369120} + m_GameObject: {fileID: 1239786008} + m_CullTransparentMesh: 1 +--- !u!1 &1292963437 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1292963439} + - component: {fileID: 1292963438} + m_Layer: 0 + m_Name: XR Interaction Manager + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1292963438 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1292963437} m_Enabled: 1 - serializedVersion: 2 - m_ClearFlags: 1 - m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} - m_projectionMatrixMode: 1 - m_GateFitMode: 2 - m_FOVAxisMode: 0 - m_SensorSize: {x: 36, y: 24} - m_LensShift: {x: 0, y: 0} - m_FocalLength: 50 - m_NormalizedViewPortRect: - serializedVersion: 2 - x: 0 - y: 0 - width: 1 - height: 1 - near clip plane: 0.3 - far clip plane: 1000 - field of view: 60 - orthographic: 0 - orthographic size: 5 - m_Depth: 0 - m_CullingMask: - serializedVersion: 2 - m_Bits: 4294967295 - m_RenderingPath: -1 - m_TargetTexture: {fileID: 0} - m_TargetDisplay: 0 - m_TargetEye: 3 - m_HDR: 1 - m_AllowMSAA: 1 - m_AllowDynamicResolution: 0 - m_ForceIntoRT: 0 - m_OcclusionCulling: 1 - m_StereoConvergence: 10 - m_StereoSeparation: 0.022 ---- !u!33 &1219369124 -MeshFilter: + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 83e4e6cca11330d4088d729ab4fc9d9f, type: 3} + m_Name: + m_EditorClassIdentifier: + m_StartingHoverFilters: [] + m_StartingSelectFilters: [] +--- !u!4 &1292963439 +Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1219369120} - m_Mesh: {fileID: 0} ---- !u!23 &1219369125 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1219369120} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 0} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} + m_GameObject: {fileID: 1292963437} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -5.8495164, y: 0.51238275, z: 3.5244124} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1362459843 GameObject: m_ObjectHideFlags: 0 @@ -4267,7 +6692,7 @@ Transform: m_GameObject: {fileID: 1362459843} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.3, y: 0.01, z: 0.3} + m_LocalScale: {x: 0.1, y: 0.01, z: 0.1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1715574622} @@ -4311,7 +6736,7 @@ RectTransform: m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 45} + m_SizeDelta: {x: 0, y: 40} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &1426026644 MonoBehaviour: @@ -4356,20 +6781,7 @@ MonoBehaviour: m_TargetGraphic: {fileID: 1426026645} m_OnClick: m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 1759475126} - m_TargetAssemblyTypeName: VIVE.OpenXR.Samples.HtcAnchor.HtcAnchorTestHandle, - VIVE.OpenXR.Samples - m_MethodName: OnDevice - m_Mode: 1 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 + m_Calls: [] --- !u!114 &1426026645 MonoBehaviour: m_ObjectHideFlags: 0 @@ -4408,7 +6820,7 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1426026642} m_CullTransparentMesh: 1 ---- !u!1 &1432102734 +--- !u!1 &1514595241 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -4416,9 +6828,9 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1432102735} - - component: {fileID: 1432102737} - - component: {fileID: 1432102736} + - component: {fileID: 1514595242} + - component: {fileID: 1514595244} + - component: {fileID: 1514595243} m_Layer: 5 m_Name: TestDescription m_TagString: Untagged @@ -4426,33 +6838,33 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!224 &1432102735 +--- !u!224 &1514595242 RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1432102734} + m_GameObject: {fileID: 1514595241} m_LocalRotation: {x: -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: 1726873616} + m_Father: {fileID: 1970549690} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 40} + m_SizeDelta: {x: 0, y: 30} m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1432102736 +--- !u!114 &1514595243 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1432102734} + m_GameObject: {fileID: 1514595241} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} @@ -4466,7 +6878,7 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_text: Anchor + m_text: Persist m_isRightToLeft: 0 m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} @@ -4493,7 +6905,7 @@ MonoBehaviour: m_faceColor: serializedVersion: 2 rgba: 4294967295 - m_fontSize: 30 + m_fontSize: 26.85 m_fontSizeBase: 15 m_fontWeight: 400 m_enableAutoSizing: 1 @@ -4535,389 +6947,13 @@ MonoBehaviour: m_hasFontAssetChanged: 0 m_baseMaterial: {fileID: 0} m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!222 &1432102737 +--- !u!222 &1514595244 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1432102734} - m_CullTransparentMesh: 1 ---- !u!1 &1443411074 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1443411075} - - component: {fileID: 1443411078} - - component: {fileID: 1443411077} - - component: {fileID: 1443411076} - m_Layer: 5 - m_Name: BtnFloor - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1443411075 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1443411074} - m_LocalRotation: {x: -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: 1619730372} - m_Father: {fileID: 1469663496} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 45} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1443411076 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1443411074} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 3 - m_WrapAround: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 1} - m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} - m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_SelectedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_SelectedTrigger: Selected - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 1443411077} - m_OnClick: - m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 1029426374} - m_TargetAssemblyTypeName: PlaneDetectionTestHandle, VIVE.OpenXR.Samples - m_MethodName: OnFloor - m_Mode: 1 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 ---- !u!114 &1443411077 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1443411074} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &1443411078 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1443411074} - m_CullTransparentMesh: 1 ---- !u!1 &1459539210 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1459539213} - - component: {fileID: 1459539212} - - component: {fileID: 1459539211} - m_Layer: 5 - m_Name: TestStatus - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &1459539211 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1459539210} - 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: Show status here - 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: 30 - m_fontSizeBase: 15 - m_fontWeight: 400 - m_enableAutoSizing: 1 - m_fontSizeMin: 18 - m_fontSizeMax: 30 - 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: 3 - 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 &1459539212 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1459539210} - m_CullTransparentMesh: 1 ---- !u!224 &1459539213 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1459539210} - m_LocalRotation: {x: -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: 1726873616} - m_RootOrder: 6 - 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: 90} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!1 &1469663495 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1469663496} - - component: {fileID: 1469663499} - - component: {fileID: 1469663498} - - component: {fileID: 1469663497} - m_Layer: 5 - m_Name: OriginPanel - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1469663496 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1469663495} - m_LocalRotation: {x: 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: 1143364006} - - {fileID: 2095785213} - - {fileID: 1443411075} - - {fileID: 1679290839} - m_Father: {fileID: 546817385} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1469663497 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1469663495} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Padding: - m_Left: 0 - m_Right: 0 - m_Top: 0 - m_Bottom: 0 - m_ChildAlignment: 0 - m_Spacing: 0 - m_ChildForceExpandWidth: 1 - m_ChildForceExpandHeight: 1 - m_ChildControlWidth: 1 - m_ChildControlHeight: 0 - m_ChildScaleWidth: 0 - m_ChildScaleHeight: 0 - m_ReverseArrangement: 0 ---- !u!114 &1469663498 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1469663495} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 0.392} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &1469663499 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1469663495} + m_GameObject: {fileID: 1514595241} m_CullTransparentMesh: 1 --- !u!1 &1544127094 GameObject: @@ -4945,16 +6981,16 @@ RectTransform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1544127094} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.02, y: 0.02, z: 0.02} + m_LocalPosition: {x: 0, y: 0, z: -0} + m_LocalScale: {x: 0.02, y: 0.02, z: 0.020000001} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 1649666253} + m_Father: {fileID: 978752709} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 0, y: 0.4} + m_AnchoredPosition: {x: 0, y: 0.2} m_SizeDelta: {x: 20, y: 5} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &1544127096 @@ -5091,6 +7127,89 @@ MeshRenderer: m_SortingLayer: 0 m_SortingOrder: 0 m_AdditionalVertexStreams: {fileID: 0} +--- !u!1 &1582014099 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1582014100} + - component: {fileID: 1582014102} + - component: {fileID: 1582014101} + m_Layer: 0 + m_Name: AnchorObj + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1582014100 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1582014099} + m_LocalRotation: {x: 0, y: 0, z: 1, w: 0} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 1 + m_Children: [] + m_Father: {fileID: 1934207632} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 180} +--- !u!23 &1582014101 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1582014099} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: c3e5038ce5fef58408379db870edab7c, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1582014102 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1582014099} + m_Mesh: {fileID: 4300000, guid: f3b8c6ad724ff5b48ba73f5847c67f27, type: 2} --- !u!1 &1593155891 GameObject: m_ObjectHideFlags: 0 @@ -5103,7 +7222,7 @@ GameObject: - component: {fileID: 1593155894} - component: {fileID: 1593155893} m_Layer: 5 - m_Name: TestStatus + m_Name: OriginStatus m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -5122,12 +7241,12 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 453770081} - m_RootOrder: 3 + m_RootOrder: 5 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 90} + m_SizeDelta: {x: 0, y: 120} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &1593155893 MonoBehaviour: @@ -5149,7 +7268,7 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_text: Defualt is Floor + m_text: Default is Floor m_isRightToLeft: 0 m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} @@ -5226,7 +7345,7 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1593155891} m_CullTransparentMesh: 1 ---- !u!1 &1619730371 +--- !u!1 &1616028261 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -5234,9 +7353,214 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1619730372} - - component: {fileID: 1619730374} - - component: {fileID: 1619730373} + - component: {fileID: 1616028262} + - component: {fileID: 1616028265} + - component: {fileID: 1616028264} + - component: {fileID: 1616028263} + m_Layer: 5 + m_Name: BtnPersistAnchor1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1616028262 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1616028261} + m_LocalRotation: {x: 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: 1001247471} + m_Father: {fileID: 1970549690} + 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: 40} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1616028263 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1616028261} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1616028264} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &1616028264 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1616028261} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1616028265 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1616028261} + m_CullTransparentMesh: 1 +--- !u!1 &1649666250 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1649666253} + - component: {fileID: 1649666252} + - component: {fileID: 1649666251} + m_Layer: 0 + m_Name: AnchorObj + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!23 &1649666251 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1649666250} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 0a46af8cba986a041b02f47bb7731942, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1649666252 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1649666250} + m_Mesh: {fileID: 4300000, guid: f3b8c6ad724ff5b48ba73f5847c67f27, type: 2} +--- !u!4 &1649666253 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1649666250} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 978752709} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1698952748 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1698952749} + - component: {fileID: 1698952751} + - component: {fileID: 1698952750} m_Layer: 5 m_Name: Text (TMP) m_TagString: Untagged @@ -5244,19 +7568,19 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!224 &1619730372 +--- !u!224 &1698952749 RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1619730371} + m_GameObject: {fileID: 1698952748} m_LocalRotation: {x: 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: 1443411075} + m_Father: {fileID: 496171684} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} @@ -5264,13 +7588,13 @@ RectTransform: m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1619730373 +--- !u!114 &1698952750 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1619730371} + m_GameObject: {fileID: 1698952748} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} @@ -5284,7 +7608,7 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_text: Floor / Stage + m_text: Export All m_isRightToLeft: 0 m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} @@ -5353,15 +7677,15 @@ MonoBehaviour: m_hasFontAssetChanged: 0 m_baseMaterial: {fileID: 0} m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!222 &1619730374 +--- !u!222 &1698952751 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1619730371} + m_GameObject: {fileID: 1698952748} m_CullTransparentMesh: 1 ---- !u!1 &1624760994 +--- !u!1 &1715574619 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -5369,164 +7693,109 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1624760995} - m_Layer: 5 - m_Name: TextParent - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1624760995 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1624760994} - m_LocalRotation: {x: 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: 1726890278} - m_Father: {fileID: 2018251898} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 45} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!1 &1649666250 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1649666253} - - component: {fileID: 1649666252} - - component: {fileID: 1649666251} + - component: {fileID: 1715574622} + - component: {fileID: 1715574621} + - component: {fileID: 1715574623} m_Layer: 0 - m_Name: Anchor1 + m_Name: XR Origin m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!23 &1649666251 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1649666250} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: 0a46af8cba986a041b02f47bb7731942, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!33 &1649666252 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1649666250} - m_Mesh: {fileID: 4300000, guid: f3b8c6ad724ff5b48ba73f5847c67f27, type: 2} ---- !u!4 &1649666253 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1649666250} - m_LocalRotation: {x: 0.12059045, y: 0.049950197, z: -0.37940952, w: 0.9159757} - m_LocalPosition: {x: 1, y: 0.65, z: 1} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1544127095} - m_Father: {fileID: 1109786713} - m_RootOrder: 9 - m_LocalEulerAnglesHint: {x: 15, y: 0, z: -45} ---- !u!1 &1679290838 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1679290839} - - component: {fileID: 1679290841} - - component: {fileID: 1679290840} - m_Layer: 5 - m_Name: TestStatus - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1679290839 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1679290838} - m_LocalRotation: {x: -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: 1469663496} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 90} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1679290840 +--- !u!114 &1715574621 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1679290838} + m_GameObject: {fileID: 1715574619} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e0cb9aa70a22847b5925ee5f067c10a9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Camera: {fileID: 1791666283} + m_OriginBaseGameObject: {fileID: 1715574619} + m_CameraFloorOffsetObject: {fileID: 685509532} + m_RequestedTrackingOriginMode: 2 + m_CameraYOffset: 0 +--- !u!4 &1715574622 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1715574619} + m_LocalRotation: {x: -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: 1362459847} + - {fileID: 685509533} + m_Father: {fileID: 1109786713} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1715574623 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1715574619} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 017c5e3933235514c9520e1dace2a4b2, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionAssets: + - {fileID: -944628639613478452, guid: 7731a6c81e069424eb7df31b19b84b41, type: 3} +--- !u!1 &1719162303 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1719162304} + - component: {fileID: 1719162306} + - component: {fileID: 1719162305} + 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 &1719162304 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1719162303} + m_LocalRotation: {x: 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: 1924049003} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1719162305 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1719162303} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} @@ -5540,7 +7809,7 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_text: Defualt is Floor + m_text: Quit App m_isRightToLeft: 0 m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} @@ -5549,8 +7818,8 @@ MonoBehaviour: m_fontMaterials: [] m_fontColor32: serializedVersion: 2 - rgba: 4278190080 - m_fontColor: {r: 0, g: 0, b: 0, a: 1} + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_enableVertexGradient: 0 m_colorMode: 3 m_fontColorGradient: @@ -5574,8 +7843,8 @@ MonoBehaviour: m_fontSizeMin: 18 m_fontSizeMax: 30 m_fontStyle: 0 - m_HorizontalAlignment: 1 - m_VerticalAlignment: 256 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 m_textAlignment: 65535 m_characterSpacing: 0 m_wordSpacing: 0 @@ -5609,174 +7878,13 @@ MonoBehaviour: m_hasFontAssetChanged: 0 m_baseMaterial: {fileID: 0} m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!222 &1679290841 +--- !u!222 &1719162306 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1679290838} - m_CullTransparentMesh: 1 ---- !u!1 &1715574619 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1715574622} - - component: {fileID: 1715574621} - m_Layer: 0 - m_Name: XR Origin - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &1715574621 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1715574619} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: e0cb9aa70a22847b5925ee5f067c10a9, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Camera: {fileID: 1791666283} - m_OriginBaseGameObject: {fileID: 1715574619} - m_CameraFloorOffsetObject: {fileID: 685509532} - m_RequestedTrackingOriginMode: 1 - m_CameraYOffset: 0 ---- !u!4 &1715574622 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1715574619} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 1, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1362459847} - - {fileID: 685509533} - m_Father: {fileID: 1109786713} - m_RootOrder: 6 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1726873615 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1726873616} - - component: {fileID: 1726873619} - - component: {fileID: 1726873618} - - component: {fileID: 1726873617} - m_Layer: 5 - m_Name: AnchorPanel - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1726873616 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1726873615} - m_LocalRotation: {x: 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: 1432102735} - - {fileID: 1009790016} - - {fileID: 2041492661} - - {fileID: 258444503} - - {fileID: 1078600139} - - {fileID: 799484302} - - {fileID: 1459539213} - m_Father: {fileID: 1168742018} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0.5, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1726873617 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1726873615} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Padding: - m_Left: 0 - m_Right: 0 - m_Top: 0 - m_Bottom: 0 - m_ChildAlignment: 0 - m_Spacing: 0 - m_ChildForceExpandWidth: 1 - m_ChildForceExpandHeight: 1 - m_ChildControlWidth: 1 - m_ChildControlHeight: 0 - m_ChildScaleWidth: 0 - m_ChildScaleHeight: 0 - m_ReverseArrangement: 0 ---- !u!114 &1726873618 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1726873615} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 0.392} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &1726873619 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1726873615} + m_GameObject: {fileID: 1719162303} m_CullTransparentMesh: 1 --- !u!1 &1726890277 GameObject: @@ -5808,13 +7916,13 @@ RectTransform: m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 1624760995} + m_Father: {fileID: 2018251898} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} + m_AnchorMax: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 30} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &1726890279 MonoBehaviour: @@ -5836,7 +7944,7 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_text: Plane Detection + m_text: Anchor m_isRightToLeft: 0 m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} @@ -5863,14 +7971,14 @@ MonoBehaviour: m_faceColor: serializedVersion: 2 rgba: 4294967295 - m_fontSize: 28.25 + m_fontSize: 26.85 m_fontSizeBase: 15 m_fontWeight: 400 m_enableAutoSizing: 1 m_fontSizeMin: 18 m_fontSizeMax: 30 m_fontStyle: 0 - m_HorizontalAlignment: 1 + m_HorizontalAlignment: 2 m_VerticalAlignment: 256 m_textAlignment: 65535 m_characterSpacing: 0 @@ -5913,57 +8021,6 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1726890277} m_CullTransparentMesh: 1 ---- !u!1 &1759475125 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1759475127} - - component: {fileID: 1759475126} - m_Layer: 0 - m_Name: GameHandleAnchor - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &1759475126 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1759475125} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 16f64bee631c00a4289f36f36432aee1, type: 3} - m_Name: - m_EditorClassIdentifier: - rig: {fileID: 1715574622} - anchorPoseD: {fileID: 1017704802} - anchorPose1: {fileID: 1649666253} - anchorPose2: {fileID: 394960778} - obj: {fileID: 227332154} - status: {fileID: 1459539211} - statusOrigin: {fileID: 1593155893} ---- !u!4 &1759475127 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1759475125} - m_LocalRotation: {x: -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: 1109786713} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1791666279 GameObject: m_ObjectHideFlags: 0 @@ -5994,8 +8051,7 @@ Transform: m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1219369121} + m_Children: [] m_Father: {fileID: 685509533} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -6032,14 +8088,6 @@ MonoBehaviour: m_Groups: m_Action: Position m_Flags: 0 - - m_Name: - m_Id: 5815f503-403d-456a-8e29-86a7692fc476 - m_Path: /devicePosition - m_Interactions: - m_Processors: - m_Groups: - m_Action: Position - m_Flags: 0 m_Flags: 0 m_Reference: {fileID: 0} m_RotationInput: @@ -6060,14 +8108,6 @@ MonoBehaviour: m_Groups: m_Action: Rotation m_Flags: 0 - - m_Name: - m_Id: 4058b6ae-316c-4352-91ff-010440e85a49 - m_Path: /deviceRotation - m_Interactions: - m_Processors: - m_Groups: - m_Action: Rotation - m_Flags: 0 m_Flags: 0 m_Reference: {fileID: 0} m_TrackingStateInput: @@ -6159,7 +8199,7 @@ Camera: m_OcclusionCulling: 1 m_StereoConvergence: 10 m_StereoSeparation: 0.022 ---- !u!1 &1955453196 +--- !u!1 &1792324630 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -6167,149 +8207,211 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1955453197} - - component: {fileID: 1955453199} - - component: {fileID: 1955453198} + - component: {fileID: 1792324631} + - component: {fileID: 1792324636} + - component: {fileID: 1792324635} + - component: {fileID: 1792324634} + - component: {fileID: 1792324633} + - component: {fileID: 1792324632} m_Layer: 0 - m_Name: Text (TMP) + m_Name: Left Controller m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!224 &1955453197 -RectTransform: +--- !u!4 &1792324631 +Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1955453196} - m_LocalRotation: {x: 0.24935193, y: -0, z: -0.0000000074505797, w: 0.96841294} - m_LocalPosition: {x: 0, y: 0, z: -2.44} - m_LocalScale: {x: 0.2, y: 0.2, z: 0.2} + m_GameObject: {fileID: 1792324630} + m_LocalRotation: {x: -0, y: 0.38268343, z: -0, w: 0.92387956} + m_LocalPosition: {x: -0.22988328, y: 2.6299827, z: 0.9715143} + m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 125112116} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 28.878, 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.85} - m_SizeDelta: {x: 27, y: 5} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1955453198 + m_Father: {fileID: 685509533} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!210 &1792324632 +SortingGroup: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1792324630} + m_Enabled: 1 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 5 +--- !u!114 &1792324633 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1955453196} + m_GameObject: {fileID: 1792324630} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 9541d86e2fd84c1d9990edf0852d74ab, type: 3} + m_Script: {fileID: 11500000, guid: e988983f96fe1dd48800bcdfc82f23e9, 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: PlaneDetection Size=0.1 - 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: + m_LineWidth: 0.005 + m_OverrideInteractorLineLength: 1 + m_LineLength: 10 + m_AutoAdjustLineLength: 0 + m_MinLineLength: 0.5 + m_UseDistanceToHitAsMaxLineLength: 1 + m_LineRetractionDelay: 0.5 + m_LineLengthChangeSpeed: 12 + m_WidthCurve: 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: + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_SetLineColorGradient: 1 + m_ValidColorGradient: 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: 2 - 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 - _SortingLayer: 0 - _SortingLayerID: 0 - _SortingOrder: 0 - m_hasFontAssetChanged: 0 - m_renderer: {fileID: 1955453199} - m_maskType: 0 ---- !u!23 &1955453199 -MeshRenderer: + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + m_InvalidColorGradient: + serializedVersion: 2 + key0: {r: 1, g: 0, b: 0, a: 1} + key1: {r: 1, g: 0, b: 0, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + m_BlockedColorGradient: + serializedVersion: 2 + key0: {r: 1, g: 0.92156863, b: 0.015686275, a: 1} + key1: {r: 1, g: 0.92156863, b: 0.015686275, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + m_TreatSelectionAsValidState: 0 + m_SmoothMovement: 0 + m_FollowTightness: 10 + m_SnapThresholdDistance: 10 + m_Reticle: {fileID: 0} + m_BlockedReticle: {fileID: 0} + m_StopLineAtFirstRaycastHit: 1 + m_StopLineAtSelection: 0 + m_SnapEndpointIfAvailable: 1 + m_LineBendRatio: 0.5 + m_OverrideInteractorLineOrigin: 1 + m_LineOriginTransform: {fileID: 0} + m_LineOriginOffset: 0 +--- !u!120 &1792324634 +LineRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1955453196} + m_GameObject: {fileID: 1792324630} 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: 2 + m_MotionVectors: 0 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + - {fileID: 10306, guid: 0000000000000000f000000000000000, type: 0} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -6330,7 +8432,1172 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} + m_Positions: + - {x: 0, y: 0, z: 0} + - {x: 0, y: 0, z: 1} + m_Parameters: + serializedVersion: 3 + widthMultiplier: 0.005 + widthCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + numCornerVertices: 4 + numCapVertices: 4 + alignment: 0 + textureMode: 0 + shadowBias: 0.5 + generateLightingData: 0 + m_UseWorldSpace: 1 + m_Loop: 0 +--- !u!114 &1792324635 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1792324630} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6803edce0201f574f923fd9d10e5b30a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_InteractionManager: {fileID: 0} + m_InteractionLayerMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_InteractionLayers: + m_Bits: 4294967295 + m_AttachTransform: {fileID: 0} + m_KeepSelectedTargetValid: 1 + m_DisableVisualsWhenBlockedInGroup: 1 + m_StartingSelectedInteractable: {fileID: 0} + m_StartingTargetFilter: {fileID: 0} + m_HoverEntered: + m_PersistentCalls: + m_Calls: [] + m_HoverExited: + m_PersistentCalls: + m_Calls: [] + m_SelectEntered: + m_PersistentCalls: + m_Calls: [] + m_SelectExited: + m_PersistentCalls: + m_Calls: [] + m_StartingHoverFilters: [] + m_StartingSelectFilters: [] + m_OnHoverEntered: + m_PersistentCalls: + m_Calls: [] + m_OnHoverExited: + m_PersistentCalls: + m_Calls: [] + m_OnSelectEntered: + m_PersistentCalls: + m_Calls: [] + m_OnSelectExited: + m_PersistentCalls: + m_Calls: [] + m_SelectActionTrigger: 1 + m_HideControllerOnSelect: 0 + m_AllowHoveredActivate: 0 + m_TargetPriorityMode: 0 + m_PlayAudioClipOnSelectEntered: 0 + m_AudioClipForOnSelectEntered: {fileID: 0} + m_PlayAudioClipOnSelectExited: 0 + m_AudioClipForOnSelectExited: {fileID: 0} + m_PlayAudioClipOnSelectCanceled: 0 + m_AudioClipForOnSelectCanceled: {fileID: 0} + m_PlayAudioClipOnHoverEntered: 0 + m_AudioClipForOnHoverEntered: {fileID: 0} + m_PlayAudioClipOnHoverExited: 0 + m_AudioClipForOnHoverExited: {fileID: 0} + m_PlayAudioClipOnHoverCanceled: 0 + m_AudioClipForOnHoverCanceled: {fileID: 0} + m_AllowHoverAudioWhileSelecting: 1 + m_PlayHapticsOnSelectEntered: 0 + m_HapticSelectEnterIntensity: 0 + m_HapticSelectEnterDuration: 0 + m_PlayHapticsOnSelectExited: 0 + m_HapticSelectExitIntensity: 0 + m_HapticSelectExitDuration: 0 + m_PlayHapticsOnSelectCanceled: 0 + m_HapticSelectCancelIntensity: 0 + m_HapticSelectCancelDuration: 0 + m_PlayHapticsOnHoverEntered: 0 + m_HapticHoverEnterIntensity: 0 + m_HapticHoverEnterDuration: 0 + m_PlayHapticsOnHoverExited: 0 + m_HapticHoverExitIntensity: 0 + m_HapticHoverExitDuration: 0 + m_PlayHapticsOnHoverCanceled: 0 + m_HapticHoverCancelIntensity: 0 + m_HapticHoverCancelDuration: 0 + m_AllowHoverHapticsWhileSelecting: 1 + m_LineType: 0 + m_BlendVisualLinePoints: 1 + m_MaxRaycastDistance: 30 + m_RayOriginTransform: {fileID: 0} + m_ReferenceFrame: {fileID: 0} + m_Velocity: 16 + m_Acceleration: 9.8 + m_AdditionalGroundHeight: 0.1 + m_AdditionalFlightTime: 0.5 + m_EndPointDistance: 30 + m_EndPointHeight: -10 + m_ControlPointDistance: 10 + m_ControlPointHeight: 5 + m_SampleFrequency: 20 + m_HitDetectionType: 0 + m_SphereCastRadius: 0.1 + m_ConeCastAngle: 6 + m_RaycastMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RaycastTriggerInteraction: 1 + m_RaycastSnapVolumeInteraction: 1 + m_HitClosestOnly: 0 + m_HoverToSelect: 0 + m_HoverTimeToSelect: 0.5 + m_AutoDeselect: 0 + m_TimeToAutoDeselect: 3 + m_EnableUIInteraction: 1 + m_BlockUIOnInteractableSelection: 1 + m_AllowAnchorControl: 1 + m_UseForceGrab: 1 + m_RotateSpeed: 180 + m_TranslateSpeed: 1 + m_AnchorRotateReferenceFrame: {fileID: 0} + m_AnchorRotationMode: 0 + m_UIHoverEntered: + m_PersistentCalls: + m_Calls: [] + m_UIHoverExited: + m_PersistentCalls: + m_Calls: [] + m_EnableARRaycasting: 0 + m_OccludeARHitsWith3DObjects: 0 + m_OccludeARHitsWith2DObjects: 0 + m_ScaleMode: 0 +--- !u!114 &1792324636 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1792324630} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: caff514de9b15ad48ab85dcff5508221, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UpdateTrackingType: 0 + m_EnableInputTracking: 1 + m_EnableInputActions: 1 + m_ModelPrefab: {fileID: 0} + m_ModelParent: {fileID: 0} + m_Model: {fileID: 0} + m_AnimateModel: 0 + m_ModelSelectTransition: + m_ModelDeSelectTransition: + m_PositionAction: + m_UseReference: 1 + m_Action: + m_Name: Position + m_Type: 0 + m_ExpectedControlType: Vector3 + m_Id: 07490bff-cdd5-4ef4-ac9b-23295927b191 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 1805487408676636314, guid: 7731a6c81e069424eb7df31b19b84b41, type: 3} + m_RotationAction: + m_UseReference: 1 + m_Action: + m_Name: Rotation + m_Type: 0 + m_ExpectedControlType: Quaternion + m_Id: d78249d9-297e-4c93-ada6-20334aa10299 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: -3341103204585363708, guid: 7731a6c81e069424eb7df31b19b84b41, type: 3} + m_IsTrackedAction: + m_UseReference: 0 + m_Action: + m_Name: Is Tracked + m_Type: 1 + m_ExpectedControlType: + m_Id: ba7415fd-826e-4eea-8051-f82487aa77d6 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 1 + m_Reference: {fileID: 0} + m_TrackingStateAction: + m_UseReference: 0 + m_Action: + m_Name: Tracking State + m_Type: 0 + m_ExpectedControlType: Integer + m_Id: e9c842cd-23f1-42ab-acac-6cf22d3eb652 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 0} + m_SelectAction: + m_UseReference: 0 + m_Action: + m_Name: Select + m_Type: 1 + m_ExpectedControlType: + m_Id: 7a406f66-7b06-4da5-9b5c-f9a8ea8f7905 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 0} + m_SelectActionValue: + m_UseReference: 0 + m_Action: + m_Name: Select Value + m_Type: 0 + m_ExpectedControlType: Axis + m_Id: 4c234eaa-ff72-4fd8-81ff-4b155adee8db + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 0} + m_ActivateAction: + m_UseReference: 1 + m_Action: + m_Name: Activate + m_Type: 1 + m_ExpectedControlType: + m_Id: 24efd755-031d-472d-b8df-e02bbf39c3bb + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 6986180202050166755, guid: 7731a6c81e069424eb7df31b19b84b41, type: 3} + m_ActivateActionValue: + m_UseReference: 0 + m_Action: + m_Name: Activate Value + m_Type: 0 + m_ExpectedControlType: Axis + m_Id: c7875a38-a07b-4ba0-a217-e41fea0005f8 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 0} + m_UIPressAction: + m_UseReference: 1 + m_Action: + m_Name: UI Press + m_Type: 1 + m_ExpectedControlType: + m_Id: 943eec79-b04e-44fe-b744-fa0798350cce + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 6986180202050166755, guid: 7731a6c81e069424eb7df31b19b84b41, type: 3} + m_UIPressActionValue: + m_UseReference: 0 + m_Action: + m_Name: UI Press Value + m_Type: 0 + m_ExpectedControlType: Axis + m_Id: 6ee2c9b6-21c5-43b6-8888-cde53829a5bc + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 0} + m_UIScrollAction: + m_UseReference: 0 + m_Action: + m_Name: UI Scroll + m_Type: 0 + m_ExpectedControlType: Vector2 + m_Id: ac66a67b-87b7-4df4-ba71-3967eefb5181 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 0} + m_HapticDeviceAction: + m_UseReference: 0 + m_Action: + m_Name: Haptic Device + m_Type: 2 + m_ExpectedControlType: + m_Id: b5cdb626-c2e4-4b8e-893c-abd78bfa7b15 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 0} + m_RotateAnchorAction: + m_UseReference: 0 + m_Action: + m_Name: Rotate Anchor + m_Type: 0 + m_ExpectedControlType: Vector2 + m_Id: 6b9a22c2-743d-49a0-8c01-e97bfd8cba51 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 0} + m_DirectionalAnchorRotationAction: + m_UseReference: 0 + m_Action: + m_Name: Directional Anchor Rotation + m_Type: 0 + m_ExpectedControlType: Vector2 + m_Id: bd12403b-586a-4c2a-8f8e-19c651830c5c + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 0} + m_TranslateAnchorAction: + m_UseReference: 0 + m_Action: + m_Name: Translate Anchor + m_Type: 0 + m_ExpectedControlType: Vector2 + m_Id: 0dff3eb8-98b2-4832-b737-b9576893b399 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 0} + m_ScaleToggleAction: + m_UseReference: 0 + m_Action: + m_Name: Scale Toggle + m_Type: 1 + m_ExpectedControlType: + m_Id: d072ffc3-c6ea-43de-bb10-197e92d175a6 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 0} + m_ScaleDeltaAction: + m_UseReference: 0 + m_Action: + m_Name: Scale Delta + m_Type: 0 + m_ExpectedControlType: Vector2 + m_Id: 2e709524-f92e-4628-a4ae-4175704cbe23 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 0} + m_ButtonPressPoint: 0.5 +--- !u!1 &1803526454 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1803526455} + - component: {fileID: 1803526457} + - component: {fileID: 1803526456} + 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 &1803526455 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1803526454} + m_LocalRotation: {x: 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: 645324611} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1803526456 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1803526454} + 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: Delete Exported + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 27.25 + m_fontSizeBase: 15 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 18 + m_fontSizeMax: 30 + 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: 3 + 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 &1803526457 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1803526454} + m_CullTransparentMesh: 1 +--- !u!1 &1821684724 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1821684725} + - component: {fileID: 1821684728} + - component: {fileID: 1821684727} + - component: {fileID: 1821684726} + m_Layer: 5 + m_Name: PersistPane2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1821684725 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1821684724} + m_LocalRotation: {x: -0.00000002235174, y: -1.55422e-10, z: 0.0000000018561493, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 237189877} + - {fileID: 475102559} + - {fileID: 496171684} + - {fileID: 1927371023} + - {fileID: 645324611} + m_Father: {fileID: 547075420} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 500, y: -147} + m_SizeDelta: {x: 200, y: 290} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1821684726 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1821684724} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_ChildAlignment: 0 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 0 + m_ChildControlWidth: 1 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!114 &1821684727 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1821684724} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0.392} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1821684728 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1821684724} + m_CullTransparentMesh: 1 +--- !u!1 &1924049002 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1924049003} + - component: {fileID: 1924049006} + - component: {fileID: 1924049005} + - component: {fileID: 1924049004} + m_Layer: 5 + m_Name: BtnQuit + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1924049003 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1924049002} + m_LocalRotation: {x: -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: 1719162304} + m_Father: {fileID: 453770081} + 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: 40} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1924049004 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1924049002} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1924049005} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &1924049005 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1924049002} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1924049006 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1924049002} + m_CullTransparentMesh: 1 +--- !u!1 &1927371022 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1927371023} + - component: {fileID: 1927371026} + - component: {fileID: 1927371025} + - component: {fileID: 1927371024} + m_Layer: 5 + m_Name: BtnImportAll + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1927371023 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1927371022} + m_LocalRotation: {x: 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: 806091610} + m_Father: {fileID: 1821684725} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 40} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1927371024 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1927371022} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1927371025} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &1927371025 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1927371022} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1927371026 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1927371022} + m_CullTransparentMesh: 1 +--- !u!1 &1934207631 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1934207632} + m_Layer: 0 + m_Name: Anchor2Persisted + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1934207632 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1934207631} + m_LocalRotation: {x: 0.08418603, y: -0.25783417, z: 0.022557575, w: 0.96225023} + m_LocalPosition: {x: -0.5, y: 0.65, z: 0.5} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 444083708} + - {fileID: 1582014100} + m_Father: {fileID: 1109786713} + m_RootOrder: 8 + m_LocalEulerAnglesHint: {x: 10, y: -30, z: 0} +--- !u!1 &1970549689 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1970549690} + - component: {fileID: 1970549693} + - component: {fileID: 1970549692} + - component: {fileID: 1970549691} + m_Layer: 5 + m_Name: PersistPanel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1970549690 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1970549689} + m_LocalRotation: {x: -0.00000002235174, y: -1.55422e-10, z: 0.0000000018561493, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1514595242} + - {fileID: 1616028262} + - {fileID: 1110291999} + - {fileID: 627462410} + - {fileID: 1123027244} + - {fileID: 2107616801} + - {fileID: 604750406} + m_Father: {fileID: 547075420} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 300, y: -147} + m_SizeDelta: {x: 200, y: 290} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1970549691 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1970549689} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 + m_ChildAlignment: 0 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 0 + m_ChildControlWidth: 1 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!114 &1970549692 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1970549689} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0.392} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1970549693 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1970549689} + m_CullTransparentMesh: 1 +--- !u!1 &1986242392 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1986242393} + - component: {fileID: 1986242396} + - component: {fileID: 1986242395} + - component: {fileID: 1986242394} + m_Layer: 5 + m_Name: BtnReload + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1986242393 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1986242392} + m_LocalRotation: {x: -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: 241558630} + m_Father: {fileID: 453770081} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 40} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1986242394 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1986242392} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1986242395} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &1986242395 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1986242392} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1986242396 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1986242392} + m_CullTransparentMesh: 1 --- !u!1 &2018251897 GameObject: m_ObjectHideFlags: 0 @@ -6344,7 +9611,7 @@ GameObject: - component: {fileID: 2018251900} - component: {fileID: 2018251899} m_Layer: 5 - m_Name: Panel + m_Name: AnchorPanel m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -6357,22 +9624,25 @@ RectTransform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2018251897} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalRotation: {x: -0.0000000074505797, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0.000047019712} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 1624760995} + - {fileID: 1726890278} - {fileID: 397660391} + - {fileID: 2041492661} - {fileID: 1184073695} - - {fileID: 120366535} - m_Father: {fileID: 546817385} + - {fileID: 1078600139} + - {fileID: 799484302} + - {fileID: 2083642733} + m_Father: {fileID: 547075420} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0.5, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 100, y: -147} + m_SizeDelta: {x: 200, y: 290} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &2018251899 MonoBehaviour: @@ -6387,14 +9657,14 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_Padding: - m_Left: 0 - m_Right: 0 - m_Top: 0 - m_Bottom: 0 + m_Left: 2 + m_Right: 2 + m_Top: 2 + m_Bottom: 2 m_ChildAlignment: 0 m_Spacing: 0 m_ChildForceExpandWidth: 1 - m_ChildForceExpandHeight: 1 + m_ChildForceExpandHeight: 0 m_ChildControlWidth: 1 m_ChildControlHeight: 0 m_ChildScaleWidth: 0 @@ -6470,13 +9740,13 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: - {fileID: 592865850} - m_Father: {fileID: 1726873616} + m_Father: {fileID: 2018251898} m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 45} + m_SizeDelta: {x: 0, y: 40} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &2041492662 MonoBehaviour: @@ -6521,19 +9791,7 @@ MonoBehaviour: m_TargetGraphic: {fileID: 2041492663} m_OnClick: m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 1759475126} - m_TargetAssemblyTypeName: HtcAnchorTestHandle, VIVE.OpenXR.Samples - m_MethodName: OnCreateAnchor2 - m_Mode: 1 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 + m_Calls: [] --- !u!114 &2041492663 MonoBehaviour: m_ObjectHideFlags: 0 @@ -6572,7 +9830,7 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2041492660} m_CullTransparentMesh: 1 ---- !u!1 &2095785212 +--- !u!1 &2083642732 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -6580,45 +9838,45 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 2095785213} - - component: {fileID: 2095785216} - - component: {fileID: 2095785215} - - component: {fileID: 2095785214} + - component: {fileID: 2083642733} + - component: {fileID: 2083642736} + - component: {fileID: 2083642735} + - component: {fileID: 2083642734} m_Layer: 5 - m_Name: BtnDevice + m_Name: BtnClearAllAnchor m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!224 &2095785213 +--- !u!224 &2083642733 RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2095785212} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_GameObject: {fileID: 2083642732} + m_LocalRotation: {x: -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: 657062031} - m_Father: {fileID: 1469663496} - m_RootOrder: 1 + - {fileID: 1053434576} + m_Father: {fileID: 2018251898} + m_RootOrder: 6 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: 45} + m_SizeDelta: {x: 0, y: 40} m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &2095785214 +--- !u!114 &2083642734 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2095785212} + m_GameObject: {fileID: 2083642732} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} @@ -6652,29 +9910,17 @@ MonoBehaviour: m_SelectedTrigger: Selected m_DisabledTrigger: Disabled m_Interactable: 1 - m_TargetGraphic: {fileID: 2095785215} + m_TargetGraphic: {fileID: 2083642735} m_OnClick: m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 1029426374} - m_TargetAssemblyTypeName: PlaneDetectionTestHandle, VIVE.OpenXR.Samples - m_MethodName: OnDevice - m_Mode: 1 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 ---- !u!114 &2095785215 + m_Calls: [] +--- !u!114 &2083642735 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2095785212} + m_GameObject: {fileID: 2083642732} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} @@ -6698,14 +9944,186 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 ---- !u!222 &2095785216 +--- !u!222 &2083642736 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2095785212} + m_GameObject: {fileID: 2083642732} m_CullTransparentMesh: 1 +--- !u!1 &2090790536 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2090790537} + - component: {fileID: 2090790539} + - component: {fileID: 2090790538} + 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 &2090790537 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2090790536} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.02, y: 0.02, z: 0.02} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 659690262} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: -0.2} + m_SizeDelta: {x: 20, y: 5} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2090790538 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2090790536} + 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: PAnchor1 + 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: 36 + m_fontSizeBase: 36 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + 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 + _SortingLayer: 0 + _SortingLayerID: 0 + _SortingOrder: 0 + m_hasFontAssetChanged: 0 + m_renderer: {fileID: 2090790539} + m_maskType: 0 +--- !u!23 &2090790539 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2090790536} + 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: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, 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!1 &2098886727 GameObject: m_ObjectHideFlags: 0 @@ -6731,17 +10149,17 @@ RectTransform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2098886727} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.02, y: 0.02, z: 0.02} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0} + m_LocalScale: {x: 0.02, y: 0.02, z: 0.019999998} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 394960778} + m_Father: {fileID: 315862331} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 0, y: 0.4} + m_AnchoredPosition: {x: 0, y: 0.2} m_SizeDelta: {x: 20, y: 5} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &2098886729 @@ -6878,6 +10296,211 @@ MeshRenderer: m_SortingLayer: 0 m_SortingOrder: 0 m_AdditionalVertexStreams: {fileID: 0} +--- !u!1 &2107616800 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2107616801} + - component: {fileID: 2107616804} + - component: {fileID: 2107616803} + - component: {fileID: 2107616802} + m_Layer: 5 + m_Name: BtnAcquirePAC + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2107616801 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2107616800} + m_LocalRotation: {x: 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: 1089510176} + m_Father: {fileID: 1970549690} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 40} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2107616802 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2107616800} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 2107616803} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &2107616803 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2107616800} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &2107616804 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2107616800} + m_CullTransparentMesh: 1 +--- !u!1 &2116241625 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2116241626} + - component: {fileID: 2116241628} + - component: {fileID: 2116241627} + m_Layer: 0 + m_Name: AnchorObj + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2116241626 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2116241625} + m_LocalRotation: {x: 0, y: 0, z: 1, w: 0} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 1 + m_Children: [] + m_Father: {fileID: 659690262} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 180} +--- !u!23 &2116241627 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2116241625} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: c3e5038ce5fef58408379db870edab7c, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &2116241628 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2116241625} + m_Mesh: {fileID: 4300000, guid: f3b8c6ad724ff5b48ba73f5847c67f27, type: 2} --- !u!1 &2125431321 GameObject: m_ObjectHideFlags: 0 @@ -6936,7 +10559,7 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_text: Obj follow Anchor 2 + m_text: Obj follow A. 2 m_isRightToLeft: 0 m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} @@ -6963,7 +10586,7 @@ MonoBehaviour: m_faceColor: serializedVersion: 2 rgba: 4294967295 - m_fontSize: 28.9 + m_fontSize: 30 m_fontSizeBase: 15 m_fontWeight: 400 m_enableAutoSizing: 1 diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Anchor/Scenes/AnchorTest.unity.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Anchor/Scenes/AnchorPersistanceTest.unity.meta similarity index 74% rename from com.htc.upm.vive.openxr/Samples~/Samples/Samples/Anchor/Scenes/AnchorTest.unity.meta rename to com.htc.upm.vive.openxr/Samples~/Samples/Samples/Anchor/Scenes/AnchorPersistanceTest.unity.meta index 78965e8..eb20d5b 100644 --- a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Anchor/Scenes/AnchorTest.unity.meta +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Anchor/Scenes/AnchorPersistanceTest.unity.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 16ef4499b3cb6b645b262cd98234bad1 +guid: 61ee4d8f1d5153248867a00cf8eda2f0 DefaultImporter: externalObjects: {} userData: diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Anchor/Scenes/AnchorTest.unity b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Anchor/Scenes/AnchorTest.unity deleted file mode 100644 index 1a82009..0000000 --- a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Anchor/Scenes/AnchorTest.unity +++ /dev/null @@ -1,4677 +0,0 @@ -%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.17964186, g: 0.22493142, b: 0.30648687, 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: 254447835} ---- !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 &26336042 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 26336043} - m_Layer: 0 - m_Name: Floor - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &26336043 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 26336042} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: -0.010000005, z: 0} - m_LocalScale: {x: 50, y: 1, z: 50} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 330888851} - m_Father: {fileID: 1109786713} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &100546045 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 100546047} - - component: {fileID: 100546046} - 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 &100546046 -Light: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 100546045} - 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 &100546047 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 100546045} - m_LocalRotation: {x: 0.42655224, y: -0.23221558, z: 0.114294305, w: 0.8666406} - m_LocalPosition: {x: 0, y: 3, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1109786713} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 52.412, y: -30, z: 0} ---- !u!1 &227332153 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 227332154} - m_Layer: 0 - m_Name: Obj - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &227332154 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 227332153} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0.25, z: 2} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 532437211} - - {fileID: 826987304} - m_Father: {fileID: 1109786713} - m_RootOrder: 5 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!850595691 &254447835 -LightingSettings: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: - serializedVersion: 4 - m_GIWorkflowMode: 1 - m_EnableBakedLightmaps: 1 - m_EnableRealtimeLightmaps: 0 - m_RealtimeEnvironmentLighting: 1 - m_BounceScale: 1 - m_AlbedoBoost: 1 - m_IndirectOutputScale: 1 - m_UsingShadowmask: 1 - m_BakeBackend: 1 - m_LightmapMaxSize: 1024 - m_BakeResolution: 40 - m_Padding: 2 - m_LightmapCompression: 3 - 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: 512 - m_PVREnvironmentSampleCount: 256 - m_PVREnvironmentReferencePointCount: 2048 - m_LightProbeSampleCountMultiplier: 4 - m_PVRBounces: 2 - m_PVRMinBounces: 1 - m_PVREnvironmentMIS: 1 - m_PVRFilteringMode: 1 - m_PVRDenoiserTypeDirect: 1 - m_PVRDenoiserTypeIndirect: 1 - m_PVRDenoiserTypeAO: 1 - 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 - m_PVRTiledBaking: 0 ---- !u!1 &316359833 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 316359834} - - component: {fileID: 316359836} - - component: {fileID: 316359835} - 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 &316359834 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 316359833} - m_LocalRotation: {x: 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: 1184073695} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &316359835 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 316359833} - 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: Obj follow Anchor 1 - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4281479730 - m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} - m_enableVertexGradient: 0 - m_colorMode: 3 - m_fontColorGradient: - topLeft: {r: 1, g: 1, b: 1, a: 1} - topRight: {r: 1, g: 1, b: 1, a: 1} - bottomLeft: {r: 1, g: 1, b: 1, a: 1} - bottomRight: {r: 1, g: 1, b: 1, a: 1} - m_fontColorGradientPreset: {fileID: 0} - m_spriteAsset: {fileID: 0} - m_tintAllSprites: 0 - m_StyleSheet: {fileID: 0} - m_TextStyleHashCode: -1183493901 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_fontSize: 28.9 - m_fontSizeBase: 15 - m_fontWeight: 400 - m_enableAutoSizing: 1 - m_fontSizeMin: 18 - m_fontSizeMax: 30 - 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: 3 - 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 &316359836 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 316359833} - m_CullTransparentMesh: 1 ---- !u!1 &330888850 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 330888851} - - component: {fileID: 330888854} - - component: {fileID: 330888853} - - component: {fileID: 330888852} - m_Layer: 0 - m_Name: Cube - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 0 ---- !u!4 &330888851 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 330888850} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: -0.5, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 26336043} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!65 &330888852 -BoxCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 330888850} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!23 &330888853 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 330888850} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: 4a32aaaa614a1fc44b4fb473af897213, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!33 &330888854 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 330888850} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!1 &393236206 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 393236207} - - component: {fileID: 393236209} - - component: {fileID: 393236208} - 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 &393236207 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 393236206} - m_LocalRotation: {x: 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: 799484302} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &393236208 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 393236206} - 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: Obj Reset - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4281479730 - m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} - m_enableVertexGradient: 0 - m_colorMode: 3 - m_fontColorGradient: - topLeft: {r: 1, g: 1, b: 1, a: 1} - topRight: {r: 1, g: 1, b: 1, a: 1} - bottomLeft: {r: 1, g: 1, b: 1, a: 1} - bottomRight: {r: 1, g: 1, b: 1, a: 1} - m_fontColorGradientPreset: {fileID: 0} - m_spriteAsset: {fileID: 0} - m_tintAllSprites: 0 - m_StyleSheet: {fileID: 0} - m_TextStyleHashCode: -1183493901 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_fontSize: 30 - m_fontSizeBase: 15 - m_fontWeight: 400 - m_enableAutoSizing: 1 - m_fontSizeMin: 18 - m_fontSizeMax: 30 - 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: 3 - 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 &393236209 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 393236206} - m_CullTransparentMesh: 1 ---- !u!1 &394960775 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 394960778} - - component: {fileID: 394960777} - - component: {fileID: 394960776} - m_Layer: 0 - m_Name: Anchor2 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!23 &394960776 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 394960775} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: 0a46af8cba986a041b02f47bb7731942, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!33 &394960777 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 394960775} - m_Mesh: {fileID: 4300000, guid: f3b8c6ad724ff5b48ba73f5847c67f27, type: 2} ---- !u!4 &394960778 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 394960775} - m_LocalRotation: {x: 0.08418603, y: -0.25783417, z: 0.022557575, w: 0.96225023} - m_LocalPosition: {x: -1, y: 0.65, z: 1} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 2098886728} - m_Father: {fileID: 1109786713} - m_RootOrder: 7 - m_LocalEulerAnglesHint: {x: 10, y: -30, z: 0} ---- !u!1 &397660390 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 397660391} - - component: {fileID: 397660394} - - component: {fileID: 397660393} - - component: {fileID: 397660392} - m_Layer: 5 - m_Name: BtnCreateAnchor1 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &397660391 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 397660390} - m_LocalRotation: {x: 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: 541032879} - m_Father: {fileID: 2018251898} - 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: 45} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &397660392 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 397660390} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 3 - m_WrapAround: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 1} - m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} - m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_SelectedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_SelectedTrigger: Selected - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 397660393} - m_OnClick: - m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 1029426376} - m_TargetAssemblyTypeName: HtcAnchorTestHandle, VIVE.OpenXR.Samples - m_MethodName: OnCreateAnchor1 - m_Mode: 1 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 ---- !u!114 &397660393 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 397660390} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &397660394 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 397660390} - m_CullTransparentMesh: 1 ---- !u!1 &425704205 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 425704206} - - component: {fileID: 425704208} - - component: {fileID: 425704207} - 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 &425704206 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 425704205} - m_LocalRotation: {x: 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: 1057134560} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &425704207 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 425704205} - 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: Floor / Stage - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4281479730 - m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} - m_enableVertexGradient: 0 - m_colorMode: 3 - m_fontColorGradient: - topLeft: {r: 1, g: 1, b: 1, a: 1} - topRight: {r: 1, g: 1, b: 1, a: 1} - bottomLeft: {r: 1, g: 1, b: 1, a: 1} - bottomRight: {r: 1, g: 1, b: 1, a: 1} - m_fontColorGradientPreset: {fileID: 0} - m_spriteAsset: {fileID: 0} - m_tintAllSprites: 0 - m_StyleSheet: {fileID: 0} - m_TextStyleHashCode: -1183493901 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_fontSize: 30 - m_fontSizeBase: 15 - m_fontWeight: 400 - m_enableAutoSizing: 1 - m_fontSizeMin: 18 - m_fontSizeMax: 30 - 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: 3 - 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 &425704208 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 425704205} - m_CullTransparentMesh: 1 ---- !u!1 &453770080 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 453770081} - - component: {fileID: 453770084} - - component: {fileID: 453770083} - - component: {fileID: 453770082} - m_Layer: 5 - m_Name: OriginPanel - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &453770081 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 453770080} - m_LocalRotation: {x: 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: 807153364} - - {fileID: 1426026643} - - {fileID: 1057134560} - - {fileID: 1593155892} - m_Father: {fileID: 546817385} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &453770082 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 453770080} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Padding: - m_Left: 0 - m_Right: 0 - m_Top: 0 - m_Bottom: 0 - m_ChildAlignment: 0 - m_Spacing: 0 - m_ChildForceExpandWidth: 1 - m_ChildForceExpandHeight: 1 - m_ChildControlWidth: 1 - m_ChildControlHeight: 0 - m_ChildScaleWidth: 0 - m_ChildScaleHeight: 0 - m_ReverseArrangement: 0 ---- !u!114 &453770083 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 453770080} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 0.392} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &453770084 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 453770080} - m_CullTransparentMesh: 1 ---- !u!1 &532437207 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 532437211} - - component: {fileID: 532437210} - - component: {fileID: 532437209} - - component: {fileID: 532437208} - m_Layer: 0 - m_Name: Cube - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!65 &532437208 -BoxCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 532437207} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!23 &532437209 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 532437207} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: 0a46af8cba986a041b02f47bb7731942, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!33 &532437210 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 532437207} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!4 &532437211 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 532437207} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.5, y: 0.02, z: 0.5} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 227332154} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &541032878 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 541032879} - - component: {fileID: 541032881} - - component: {fileID: 541032880} - 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 &541032879 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 541032878} - m_LocalRotation: {x: 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: 397660391} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &541032880 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 541032878} - 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: Create Anchor 1 - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4281479730 - m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} - m_enableVertexGradient: 0 - m_colorMode: 3 - m_fontColorGradient: - topLeft: {r: 1, g: 1, b: 1, a: 1} - topRight: {r: 1, g: 1, b: 1, a: 1} - bottomLeft: {r: 1, g: 1, b: 1, a: 1} - bottomRight: {r: 1, g: 1, b: 1, a: 1} - m_fontColorGradientPreset: {fileID: 0} - m_spriteAsset: {fileID: 0} - m_tintAllSprites: 0 - m_StyleSheet: {fileID: 0} - m_TextStyleHashCode: -1183493901 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_fontSize: 30 - m_fontSizeBase: 15 - m_fontWeight: 400 - m_enableAutoSizing: 1 - m_fontSizeMin: 18 - m_fontSizeMax: 30 - 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: 3 - 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 &541032881 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 541032878} - m_CullTransparentMesh: 1 ---- !u!1 &546817380 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 546817385} - - component: {fileID: 546817384} - - component: {fileID: 546817383} - - component: {fileID: 546817382} - m_Layer: 5 - m_Name: Menu - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &546817382 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 546817380} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreReversedGraphics: 1 - m_BlockingObjects: 0 - m_BlockingMask: - serializedVersion: 2 - m_Bits: 4294967295 ---- !u!114 &546817383 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 546817380} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} - m_Name: - m_EditorClassIdentifier: - m_UiScaleMode: 0 - m_ReferencePixelsPerUnit: 100 - m_ScaleFactor: 1 - m_ReferenceResolution: {x: 800, y: 600} - m_ScreenMatchMode: 0 - m_MatchWidthOrHeight: 0 - m_PhysicalUnit: 3 - m_FallbackScreenDPI: 96 - m_DefaultSpriteDPI: 96 - m_DynamicPixelsPerUnit: 1 - m_PresetInfoIsWorld: 1 ---- !u!223 &546817384 -Canvas: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 546817380} - m_Enabled: 1 - serializedVersion: 3 - m_RenderMode: 2 - m_Camera: {fileID: 1791666283} - 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 &546817385 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 546817380} - m_LocalRotation: {x: -0.083441556, y: -0, z: -0, w: 0.9965127} - m_LocalPosition: {x: 0, y: 0, z: 4.73} - m_LocalScale: {x: 0.01, y: 0.010000003, z: 0.010000003} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 2018251898} - - {fileID: 453770081} - m_Father: {fileID: 1109786713} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: -9.573, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 0, y: 1.58} - m_SizeDelta: {x: 500, y: 400} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!1 &592865849 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 592865850} - - component: {fileID: 592865852} - - component: {fileID: 592865851} - 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 &592865850 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 592865849} - m_LocalRotation: {x: 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: 2041492661} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &592865851 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 592865849} - 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: Create Anchor 2 - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4281479730 - m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} - m_enableVertexGradient: 0 - m_colorMode: 3 - m_fontColorGradient: - topLeft: {r: 1, g: 1, b: 1, a: 1} - topRight: {r: 1, g: 1, b: 1, a: 1} - bottomLeft: {r: 1, g: 1, b: 1, a: 1} - bottomRight: {r: 1, g: 1, b: 1, a: 1} - m_fontColorGradientPreset: {fileID: 0} - m_spriteAsset: {fileID: 0} - m_tintAllSprites: 0 - m_StyleSheet: {fileID: 0} - m_TextStyleHashCode: -1183493901 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_fontSize: 30 - m_fontSizeBase: 15 - m_fontWeight: 400 - m_enableAutoSizing: 1 - m_fontSizeMin: 18 - m_fontSizeMax: 30 - 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: 3 - 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 &592865852 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 592865849} - m_CullTransparentMesh: 1 ---- !u!1 &661696886 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 661696887} - - component: {fileID: 661696889} - - component: {fileID: 661696888} - 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 &661696887 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 661696886} - m_LocalRotation: {x: 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: 1426026643} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &661696888 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 661696886} - 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: Device / Local - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4281479730 - m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} - m_enableVertexGradient: 0 - m_colorMode: 3 - m_fontColorGradient: - topLeft: {r: 1, g: 1, b: 1, a: 1} - topRight: {r: 1, g: 1, b: 1, a: 1} - bottomLeft: {r: 1, g: 1, b: 1, a: 1} - bottomRight: {r: 1, g: 1, b: 1, a: 1} - m_fontColorGradientPreset: {fileID: 0} - m_spriteAsset: {fileID: 0} - m_tintAllSprites: 0 - m_StyleSheet: {fileID: 0} - m_TextStyleHashCode: -1183493901 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_fontSize: 30 - m_fontSizeBase: 15 - m_fontWeight: 400 - m_enableAutoSizing: 1 - m_fontSizeMin: 18 - m_fontSizeMax: 30 - 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: 3 - 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 &661696889 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 661696886} - m_CullTransparentMesh: 1 ---- !u!1 &685509532 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 685509533} - m_Layer: 0 - m_Name: FloorOffset - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &685509533 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 685509532} - m_LocalRotation: {x: 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: 1791666280} - m_Father: {fileID: 1715574622} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &799484301 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 799484302} - - component: {fileID: 799484305} - - component: {fileID: 799484304} - - component: {fileID: 799484303} - m_Layer: 5 - m_Name: BtnReset - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &799484302 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 799484301} - m_LocalRotation: {x: 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: 393236207} - m_Father: {fileID: 2018251898} - m_RootOrder: 5 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 45} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &799484303 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 799484301} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 3 - m_WrapAround: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 1} - m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} - m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_SelectedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_SelectedTrigger: Selected - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 799484304} - m_OnClick: - m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 1029426376} - m_TargetAssemblyTypeName: HtcAnchorTestHandle, VIVE.OpenXR.Samples - m_MethodName: OnResetObj - m_Mode: 1 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 ---- !u!114 &799484304 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 799484301} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &799484305 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 799484301} - m_CullTransparentMesh: 1 ---- !u!1 &807153363 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 807153364} - - component: {fileID: 807153366} - - component: {fileID: 807153365} - m_Layer: 5 - m_Name: TestDescription - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &807153364 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 807153363} - m_LocalRotation: {x: -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: 453770081} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 40} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &807153365 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 807153363} - 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: Origin - 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: 30 - m_fontSizeBase: 15 - m_fontWeight: 400 - m_enableAutoSizing: 1 - m_fontSizeMin: 18 - m_fontSizeMax: 30 - m_fontStyle: 0 - m_HorizontalAlignment: 2 - 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: 3 - 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 &807153366 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 807153363} - m_CullTransparentMesh: 1 ---- !u!1 &826987303 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 826987304} - - component: {fileID: 826987306} - - component: {fileID: 826987305} - 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 &826987304 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 826987303} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0.29999995} - m_LocalScale: {x: 0.02, y: 0.02, z: 0.02} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 227332154} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 0, y: 0.03999996} - m_SizeDelta: {x: 20, y: 5} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &826987305 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 826987303} - 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: Obj - 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: 2 - 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 - _SortingLayer: 0 - _SortingLayerID: 0 - _SortingOrder: 0 - m_hasFontAssetChanged: 0 - m_renderer: {fileID: 826987306} - m_maskType: 0 ---- !u!23 &826987306 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 826987303} - 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: 2 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, 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!1 &1017704801 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1017704802} - - component: {fileID: 1017704804} - - component: {fileID: 1017704803} - m_Layer: 0 - m_Name: AnchorD - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1017704802 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1017704801} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0.25, z: 2} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1109786713} - m_RootOrder: 8 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!23 &1017704803 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1017704801} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: bb0aba741af9506469fd96c2850b2e21, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!33 &1017704804 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1017704801} - m_Mesh: {fileID: 4300000, guid: f3b8c6ad724ff5b48ba73f5847c67f27, type: 2} ---- !u!1 &1029426373 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1029426375} - - component: {fileID: 1029426376} - m_Layer: 0 - m_Name: GameHandle - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1029426375 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1029426373} - m_LocalRotation: {x: -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: 1109786713} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &1029426376 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1029426373} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 16f64bee631c00a4289f36f36432aee1, type: 3} - m_Name: - m_EditorClassIdentifier: - rig: {fileID: 1715574622} - anchorPoseD: {fileID: 1017704802} - anchorPose1: {fileID: 1649666253} - anchorPose2: {fileID: 394960778} - obj: {fileID: 227332154} - status: {fileID: 1141798579} - statusOrigin: {fileID: 1593155893} ---- !u!1 &1057134559 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1057134560} - - component: {fileID: 1057134563} - - component: {fileID: 1057134562} - - component: {fileID: 1057134561} - m_Layer: 5 - m_Name: BtnFloor - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1057134560 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1057134559} - m_LocalRotation: {x: -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: 425704206} - m_Father: {fileID: 453770081} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 45} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1057134561 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1057134559} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 3 - m_WrapAround: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 1} - m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} - m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_SelectedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_SelectedTrigger: Selected - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 1057134562} - m_OnClick: - m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 1029426376} - m_TargetAssemblyTypeName: VIVE.OpenXR.Samples.HtcAnchor.HtcAnchorTestHandle, - VIVE.OpenXR.Samples - m_MethodName: OnFloor - m_Mode: 1 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 ---- !u!114 &1057134562 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1057134559} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &1057134563 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1057134559} - m_CullTransparentMesh: 1 ---- !u!1 &1078600138 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1078600139} - - component: {fileID: 1078600142} - - component: {fileID: 1078600141} - - component: {fileID: 1078600140} - m_Layer: 5 - m_Name: BtnFollowAncho2 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1078600139 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1078600138} - m_LocalRotation: {x: 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: 2125431322} - m_Father: {fileID: 2018251898} - 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: 45} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1078600140 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1078600138} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 3 - m_WrapAround: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 1} - m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} - m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_SelectedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_SelectedTrigger: Selected - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 1078600141} - m_OnClick: - m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 1029426376} - m_TargetAssemblyTypeName: HtcAnchorTestHandle, VIVE.OpenXR.Samples - m_MethodName: OnFollowAnchor2 - m_Mode: 1 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 ---- !u!114 &1078600141 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1078600138} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &1078600142 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1078600138} - m_CullTransparentMesh: 1 ---- !u!1 &1109786712 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1109786713} - m_Layer: 0 - m_Name: Environment - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1109786713 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1109786712} - m_LocalRotation: {x: 0, y: -0.38268343, z: 0, w: 0.92387956} - m_LocalPosition: {x: -5, y: -1, z: 3} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 100546047} - - {fileID: 1029426375} - - {fileID: 26336043} - - {fileID: 546817385} - - {fileID: 1715574622} - - {fileID: 227332154} - - {fileID: 1649666253} - - {fileID: 394960778} - - {fileID: 1017704802} - m_Father: {fileID: 0} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: -45, z: 0} ---- !u!1 &1141798577 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1141798578} - - component: {fileID: 1141798580} - - component: {fileID: 1141798579} - m_Layer: 5 - m_Name: TestStatus - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1141798578 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1141798577} - m_LocalRotation: {x: -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: 2018251898} - m_RootOrder: 6 - 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: 90} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1141798579 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1141798577} - 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: Show status here - 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: 30 - m_fontSizeBase: 15 - m_fontWeight: 400 - m_enableAutoSizing: 1 - m_fontSizeMin: 18 - m_fontSizeMax: 30 - 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: 3 - 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 &1141798580 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1141798577} - m_CullTransparentMesh: 1 ---- !u!1 &1184073694 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1184073695} - - component: {fileID: 1184073698} - - component: {fileID: 1184073697} - - component: {fileID: 1184073696} - m_Layer: 5 - m_Name: BtnFollowAncho1 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1184073695 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1184073694} - m_LocalRotation: {x: 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: 316359834} - m_Father: {fileID: 2018251898} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 45} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1184073696 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1184073694} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 3 - m_WrapAround: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 1} - m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} - m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_SelectedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_SelectedTrigger: Selected - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 1184073697} - m_OnClick: - m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 1029426376} - m_TargetAssemblyTypeName: HtcAnchorTestHandle, VIVE.OpenXR.Samples - m_MethodName: OnFollowAnchor1 - m_Mode: 1 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 ---- !u!114 &1184073697 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1184073694} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &1184073698 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1184073694} - m_CullTransparentMesh: 1 ---- !u!1 &1219369120 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1219369121} - - component: {fileID: 1219369125} - - component: {fileID: 1219369124} - - component: {fileID: 1219369123} - - component: {fileID: 1219369122} - m_Layer: 0 - m_Name: Gaze - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1219369121 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1219369120} - m_LocalRotation: {x: 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: 1791666280} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &1219369122 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1219369120} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 78ba47d171a9d604e87df3c8c0304fde, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreReversedGraphics: 0 - m_PhysicsCastDistance: 100 - m_PhysicsEventMask: - serializedVersion: 2 - m_Bits: 4294967295 - m_PointerRingWidth: 0.005 - m_PointerCircleRadius: 0.005 - m_PointerDistance: 1 - m_PointerColor: {r: 1, g: 1, b: 1, a: 1} - m_ProgressColor: {r: 0, g: 245, b: 255, a: 1} - m_PointerMaterial: {fileID: 0} - m_PointerRenderQueue: 5000 - m_PointerSortingOrder: 32767 - m_TimeToGaze: 1.5 - m_EyeTracking: 0 - m_EyePose: {fileID: 0} - m_InputEvent: 0 - m_ActionsKeys: [] - m_AlwaysEnable: 1 ---- !u!20 &1219369123 -Camera: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1219369120} - m_Enabled: 1 - serializedVersion: 2 - m_ClearFlags: 1 - m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} - m_projectionMatrixMode: 1 - m_GateFitMode: 2 - m_FOVAxisMode: 0 - m_SensorSize: {x: 36, y: 24} - m_LensShift: {x: 0, y: 0} - m_FocalLength: 50 - m_NormalizedViewPortRect: - serializedVersion: 2 - x: 0 - y: 0 - width: 1 - height: 1 - near clip plane: 0.3 - far clip plane: 1000 - field of view: 60 - orthographic: 0 - orthographic size: 5 - m_Depth: 0 - m_CullingMask: - serializedVersion: 2 - m_Bits: 4294967295 - m_RenderingPath: -1 - m_TargetTexture: {fileID: 0} - m_TargetDisplay: 0 - m_TargetEye: 3 - m_HDR: 1 - m_AllowMSAA: 1 - m_AllowDynamicResolution: 0 - m_ForceIntoRT: 0 - m_OcclusionCulling: 1 - m_StereoConvergence: 10 - m_StereoSeparation: 0.022 ---- !u!33 &1219369124 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1219369120} - m_Mesh: {fileID: 0} ---- !u!23 &1219369125 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1219369120} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 0} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!1 &1362459843 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1362459847} - - component: {fileID: 1362459846} - - component: {fileID: 1362459845} - - component: {fileID: 1362459844} - m_Layer: 0 - m_Name: TrackingOrigin - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!136 &1362459844 -CapsuleCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1362459843} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - m_Radius: 0.5000001 - m_Height: 2 - m_Direction: 1 - m_Center: {x: 0.000000059604645, y: 0, z: -0.00000008940697} ---- !u!23 &1362459845 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1362459843} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!33 &1362459846 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1362459843} - m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} ---- !u!4 &1362459847 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1362459843} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.3, y: 0.01, z: 0.3} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1715574622} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1426026642 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1426026643} - - component: {fileID: 1426026646} - - component: {fileID: 1426026645} - - component: {fileID: 1426026644} - m_Layer: 5 - m_Name: BtnDevice - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1426026643 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1426026642} - m_LocalRotation: {x: 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: 661696887} - m_Father: {fileID: 453770081} - 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: 45} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1426026644 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1426026642} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 3 - m_WrapAround: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 1} - m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} - m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_SelectedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_SelectedTrigger: Selected - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 1426026645} - m_OnClick: - m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 1029426376} - m_TargetAssemblyTypeName: VIVE.OpenXR.Samples.HtcAnchor.HtcAnchorTestHandle, - VIVE.OpenXR.Samples - m_MethodName: OnDevice - m_Mode: 1 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 ---- !u!114 &1426026645 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1426026642} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &1426026646 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1426026642} - m_CullTransparentMesh: 1 ---- !u!1 &1544127094 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1544127095} - - component: {fileID: 1544127097} - - component: {fileID: 1544127096} - 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 &1544127095 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1544127094} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.02, y: 0.02, z: 0.02} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1649666253} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 0, y: 0.4} - m_SizeDelta: {x: 20, y: 5} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1544127096 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1544127094} - 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: Anchor1 - 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: 36 - m_fontSizeBase: 36 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_HorizontalAlignment: 2 - 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 - _SortingLayer: 0 - _SortingLayerID: 0 - _SortingOrder: 0 - m_hasFontAssetChanged: 0 - m_renderer: {fileID: 1544127097} - m_maskType: 0 ---- !u!23 &1544127097 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1544127094} - 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: 2 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, 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!1 &1593155891 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1593155892} - - component: {fileID: 1593155894} - - component: {fileID: 1593155893} - m_Layer: 5 - m_Name: TestStatus - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1593155892 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1593155891} - m_LocalRotation: {x: -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: 453770081} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 90} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1593155893 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1593155891} - 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: Defualt is Floor - 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: 30 - m_fontSizeBase: 15 - m_fontWeight: 400 - m_enableAutoSizing: 1 - m_fontSizeMin: 18 - m_fontSizeMax: 30 - 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: 3 - 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 &1593155894 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1593155891} - m_CullTransparentMesh: 1 ---- !u!1 &1649666250 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1649666253} - - component: {fileID: 1649666252} - - component: {fileID: 1649666251} - m_Layer: 0 - m_Name: Anchor1 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!23 &1649666251 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1649666250} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: 0a46af8cba986a041b02f47bb7731942, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!33 &1649666252 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1649666250} - m_Mesh: {fileID: 4300000, guid: f3b8c6ad724ff5b48ba73f5847c67f27, type: 2} ---- !u!4 &1649666253 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1649666250} - m_LocalRotation: {x: 0.12059045, y: 0.049950197, z: -0.37940952, w: 0.9159757} - m_LocalPosition: {x: 1, y: 0.65, z: 1} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1544127095} - m_Father: {fileID: 1109786713} - m_RootOrder: 6 - m_LocalEulerAnglesHint: {x: 15, y: 0, z: -45} ---- !u!1 &1715574619 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1715574622} - - component: {fileID: 1715574621} - m_Layer: 0 - m_Name: XR Origin - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &1715574621 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1715574619} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: e0cb9aa70a22847b5925ee5f067c10a9, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Camera: {fileID: 1791666283} - m_OriginBaseGameObject: {fileID: 1715574619} - m_CameraFloorOffsetObject: {fileID: 685509532} - m_RequestedTrackingOriginMode: 2 - m_CameraYOffset: 1.5 ---- !u!4 &1715574622 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1715574619} - m_LocalRotation: {x: -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: 1362459847} - - {fileID: 685509533} - m_Father: {fileID: 1109786713} - m_RootOrder: 4 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1726890277 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1726890278} - - component: {fileID: 1726890280} - - component: {fileID: 1726890279} - m_Layer: 5 - m_Name: TestDescription - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1726890278 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1726890277} - m_LocalRotation: {x: -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: 2018251898} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 40} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1726890279 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1726890277} - 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: Anchor - 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: 30 - m_fontSizeBase: 15 - m_fontWeight: 400 - m_enableAutoSizing: 1 - m_fontSizeMin: 18 - m_fontSizeMax: 30 - m_fontStyle: 0 - m_HorizontalAlignment: 2 - 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: 3 - 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 &1726890280 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1726890277} - m_CullTransparentMesh: 1 ---- !u!1 &1791666279 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1791666280} - - component: {fileID: 1791666283} - - component: {fileID: 1791666282} - - component: {fileID: 1791666281} - m_Layer: 0 - m_Name: Main Camera - m_TagString: MainCamera - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1791666280 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1791666279} - m_LocalRotation: {x: -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: 1219369121} - m_Father: {fileID: 685509533} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &1791666281 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1791666279} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: c2fadf230d1919748a9aa21d40f74619, type: 3} - m_Name: - m_EditorClassIdentifier: - m_TrackingType: 0 - m_UpdateType: 0 - m_IgnoreTrackingState: 0 - m_PositionInput: - m_UseReference: 0 - m_Action: - m_Name: Position - m_Type: 0 - m_ExpectedControlType: Vector3 - m_Id: f2ad8d0d-ad19-414e-9163-dbdaca16f00a - m_Processors: - m_Interactions: - m_SingletonActionBindings: - - m_Name: - m_Id: 7f233ff3-df4d-4d31-9d16-1e56eedd0603 - m_Path: /centerEyePosition - m_Interactions: - m_Processors: - m_Groups: - m_Action: Position - m_Flags: 0 - - m_Name: - m_Id: 5815f503-403d-456a-8e29-86a7692fc476 - m_Path: /devicePosition - m_Interactions: - m_Processors: - m_Groups: - m_Action: Position - m_Flags: 0 - m_Flags: 0 - m_Reference: {fileID: 0} - m_RotationInput: - m_UseReference: 0 - m_Action: - m_Name: Rotation - m_Type: 0 - m_ExpectedControlType: Quaternion - m_Id: aa5c989d-004c-499d-80d9-7e2ea064334c - m_Processors: - m_Interactions: - m_SingletonActionBindings: - - m_Name: - m_Id: c2627867-3257-4bd3-a647-d3a1caa8e923 - m_Path: /centerEyeRotation - m_Interactions: - m_Processors: - m_Groups: - m_Action: Rotation - m_Flags: 0 - - m_Name: - m_Id: 4058b6ae-316c-4352-91ff-010440e85a49 - m_Path: /deviceRotation - m_Interactions: - m_Processors: - m_Groups: - m_Action: Rotation - m_Flags: 0 - m_Flags: 0 - m_Reference: {fileID: 0} - m_TrackingStateInput: - m_UseReference: 0 - m_Action: - m_Name: Tracking State - m_Type: 0 - m_ExpectedControlType: Integer - m_Id: e21481b7-976c-404a-b195-668fb3767441 - m_Processors: - m_Interactions: - m_SingletonActionBindings: - - m_Name: - m_Id: 803d8cff-e2c6-4449-8b85-bb66b0b83558 - m_Path: /trackingState - m_Interactions: - m_Processors: - m_Groups: - m_Action: Tracking State - m_Flags: 0 - m_Flags: 0 - m_Reference: {fileID: 0} - m_PositionAction: - m_Name: - m_Type: 0 - m_ExpectedControlType: - m_Id: - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 - m_RotationAction: - m_Name: - m_Type: 0 - m_ExpectedControlType: - m_Id: - m_Processors: - m_Interactions: - m_SingletonActionBindings: [] - m_Flags: 0 ---- !u!81 &1791666282 -AudioListener: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1791666279} - m_Enabled: 1 ---- !u!20 &1791666283 -Camera: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1791666279} - m_Enabled: 1 - serializedVersion: 2 - m_ClearFlags: 1 - m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} - m_projectionMatrixMode: 1 - m_GateFitMode: 2 - m_FOVAxisMode: 0 - m_SensorSize: {x: 36, y: 24} - m_LensShift: {x: 0, y: 0} - m_FocalLength: 50 - m_NormalizedViewPortRect: - serializedVersion: 2 - x: 0 - y: 0 - width: 1 - height: 1 - near clip plane: 0.01 - far clip plane: 1000 - field of view: 60 - orthographic: 0 - orthographic size: 5 - m_Depth: 0 - m_CullingMask: - serializedVersion: 2 - m_Bits: 4294967295 - m_RenderingPath: -1 - m_TargetTexture: {fileID: 0} - m_TargetDisplay: 0 - m_TargetEye: 3 - m_HDR: 1 - m_AllowMSAA: 1 - m_AllowDynamicResolution: 0 - m_ForceIntoRT: 0 - m_OcclusionCulling: 1 - m_StereoConvergence: 10 - m_StereoSeparation: 0.022 ---- !u!1 &2018251897 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2018251898} - - component: {fileID: 2018251901} - - component: {fileID: 2018251900} - - component: {fileID: 2018251899} - m_Layer: 5 - m_Name: AnchorPanel - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &2018251898 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2018251897} - m_LocalRotation: {x: 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: 1726890278} - - {fileID: 397660391} - - {fileID: 2041492661} - - {fileID: 1184073695} - - {fileID: 1078600139} - - {fileID: 799484302} - - {fileID: 1141798578} - m_Father: {fileID: 546817385} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0.5, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &2018251899 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2018251897} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Padding: - m_Left: 0 - m_Right: 0 - m_Top: 0 - m_Bottom: 0 - m_ChildAlignment: 0 - m_Spacing: 0 - m_ChildForceExpandWidth: 1 - m_ChildForceExpandHeight: 1 - m_ChildControlWidth: 1 - m_ChildControlHeight: 0 - m_ChildScaleWidth: 0 - m_ChildScaleHeight: 0 - m_ReverseArrangement: 0 ---- !u!114 &2018251900 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2018251897} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 0.392} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &2018251901 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2018251897} - m_CullTransparentMesh: 1 ---- !u!1 &2041492660 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2041492661} - - component: {fileID: 2041492664} - - component: {fileID: 2041492663} - - component: {fileID: 2041492662} - m_Layer: 5 - m_Name: BtnCreateAnchor2 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &2041492661 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2041492660} - m_LocalRotation: {x: -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: 592865850} - m_Father: {fileID: 2018251898} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 45} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &2041492662 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2041492660} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 3 - m_WrapAround: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 1} - m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} - m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_SelectedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_SelectedTrigger: Selected - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 2041492663} - m_OnClick: - m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 1029426376} - m_TargetAssemblyTypeName: HtcAnchorTestHandle, VIVE.OpenXR.Samples - m_MethodName: OnCreateAnchor2 - m_Mode: 1 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 ---- !u!114 &2041492663 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2041492660} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &2041492664 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2041492660} - m_CullTransparentMesh: 1 ---- !u!1 &2098886727 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2098886728} - - component: {fileID: 2098886730} - - component: {fileID: 2098886729} - 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 &2098886728 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2098886727} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.02, y: 0.02, z: 0.02} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 394960778} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 0, y: 0.4} - m_SizeDelta: {x: 20, y: 5} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &2098886729 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2098886727} - 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: Anchor2 - 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: 36 - m_fontSizeBase: 36 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_HorizontalAlignment: 2 - 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 - _SortingLayer: 0 - _SortingLayerID: 0 - _SortingOrder: 0 - m_hasFontAssetChanged: 0 - m_renderer: {fileID: 2098886730} - m_maskType: 0 ---- !u!23 &2098886730 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2098886727} - 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: 2 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, 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!1 &2125431321 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2125431322} - - component: {fileID: 2125431324} - - component: {fileID: 2125431323} - 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 &2125431322 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2125431321} - m_LocalRotation: {x: 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: 1078600139} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &2125431323 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2125431321} - 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: Obj follow Anchor 2 - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4281479730 - m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} - m_enableVertexGradient: 0 - m_colorMode: 3 - m_fontColorGradient: - topLeft: {r: 1, g: 1, b: 1, a: 1} - topRight: {r: 1, g: 1, b: 1, a: 1} - bottomLeft: {r: 1, g: 1, b: 1, a: 1} - bottomRight: {r: 1, g: 1, b: 1, a: 1} - m_fontColorGradientPreset: {fileID: 0} - m_spriteAsset: {fileID: 0} - m_tintAllSprites: 0 - m_StyleSheet: {fileID: 0} - m_TextStyleHashCode: -1183493901 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_fontSize: 28.9 - m_fontSizeBase: 15 - m_fontWeight: 400 - m_enableAutoSizing: 1 - m_fontSizeMin: 18 - m_fontSizeMax: 30 - 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: 3 - 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 &2125431324 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2125431321} - m_CullTransparentMesh: 1 diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Anchor/Scripts/AnchorTestHandle.cs b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Anchor/Scripts/AnchorTestHandle.cs index 4b9717f..9eeea90 100644 --- a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Anchor/Scripts/AnchorTestHandle.cs +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Anchor/Scripts/AnchorTestHandle.cs @@ -1,14 +1,32 @@ -// Copyright HTC Corporation All Rights Reserved. +// Copyright HTC Corporation All Rights Reserved. +using System; using System.Collections; using System.Collections.Generic; +using System.IO; +using System.Threading.Tasks; using TMPro; using UnityEngine; +using UnityEngine.UI; using UnityEngine.XR; +using VIVE.OpenXR.Feature; +using VIVE.OpenXR.Toolkits; using VIVE.OpenXR.Toolkits.Anchor; namespace VIVE.OpenXR.Samples.Anchor { - + /// + /// This script is used to test AnchorManager. + /// + /// Every frame, it will check if persisted anchors are existed. + /// If existed, it will create anchors from them. If the anchor is existed, it will dispose it first. + /// + /// Anchors created by AnchorManager.CreateAnchor() didn't have tracking ability. + /// Only Anchors created by AnchorManager.CreateSpatialAnchorFromPersistedAnchor() have tracking ability. + /// If Anchors has tracking ability, it will update pose over time. + /// + /// The panchorObj1 and panchorObj2 are used to show the pose of the trackable anchors. + /// + /// public class AnchorTestHandle : MonoBehaviour { public Transform rig; @@ -16,16 +34,93 @@ namespace VIVE.OpenXR.Samples.Anchor public Transform anchorPose1; public Transform anchorPose2; public Transform obj; + public GameObject panchorObj1; + public GameObject panchorObj2; public AnchorManager.Anchor anchor1; public AnchorManager.Anchor anchor2; - public TextMeshProUGUI status; + string anchor1FromPA; + string anchor2FromPA; + public TextMeshProUGUI statusResponse; public TextMeshProUGUI statusOrigin; + public TextMeshProUGUI statusAnchor; - Pose originFloor; + public Button btnCreateAnchor1; + public Button btnCreateAnchor2; + public Button btnFollowAnchor1; + public Button btnFollowAnchor2; + public Button btnResetObj; + public Button btnClearSpatialAnchors; + public Button btnPersistAnchor1; + public Button btnPersistAnchor2; + public Button btnUnpersistAnchor1; + public Button btnUnpersistAnchor2; + public Button btnClearPersistedAnchors; + public Button btnAcquirePAC; + public Button btnReleasePAC; + + public Button btnExportAll; + public Button btnImportAll; + public Button btnClearExportedAnchors; + + public Button btnFloor; + public Button btnDevice; + public Button btnReloadScene; + public Button btnQuitApp; + + // For Editor test + public bool testCreateAnchor1; + public bool testCreateAnchor2; + public bool testFollowAnchor1; + public bool testFollowAnchor2; + public bool testResetObj; + public bool testClearSpatialAnchors; + + public bool testCreatePAC; + public bool testDestroyPAC; + public bool testPersistAnchor1; + public bool testPersistAnchor2; + public bool testUnpersistAnchor1; + public bool testUnpersistAnchor2; + public bool testClearPersistedAnchors; + + public bool testExportAll; + public bool testImportAll; + public bool testClearExportedAnchors; + + public bool testFloor; + public bool testDevice; + public bool testReloadScene; public XRInputSubsystem xrInputSubsystem; + private int lastPACount = -1; + private int lastFoundExportedFilesCount = -1; + private FutureTask<(XrResult, IntPtr)> taskPAC = null; + + bool isAnchorSupported; + bool isPAnchorSupported; + bool isPACollectionAcquired; + + // æŒ means "hold", "persisted". + const string utf8Word = "æŒ"; + + // In Update, check enumerated spatial anchors to update these flags + bool hasPersistedAnchor1; + string persistedAnchor1Name; + bool hasPersistedAnchor2; + string persistedAnchor2Name; + + // Any anchor file in the app's local storage set flag to true + bool hasPersistedAnchorFiles; + + bool doesUIInteractionsNeedUpdated = false; + float lastUpdateTime = 0; + + readonly FutureTaskManager tmPA = new FutureTaskManager(); + readonly FutureTaskManager tmFPA = new FutureTaskManager(); + readonly List tasks = new List(); + void GetXRInputSubsystem() { List xrSubsystemList = new List(); @@ -40,10 +135,215 @@ namespace VIVE.OpenXR.Samples.Anchor } } + private void OnEnable() + { + btnCreateAnchor1.onClick.AddListener(OnCreateAnchor1); + btnCreateAnchor2.onClick.AddListener(OnCreateAnchor2); + btnFollowAnchor1.onClick.AddListener(OnFollowAnchor1); + btnFollowAnchor2.onClick.AddListener(OnFollowAnchor2); + btnResetObj.onClick.AddListener(OnResetObj); + btnClearSpatialAnchors.onClick.AddListener(OnClearAllAnchors); + + btnAcquirePAC.onClick.AddListener(OnAcquirePersistedAnchorCollection); + btnReleasePAC.onClick.AddListener(OnReleasePersistedAnchorCollection); + btnPersistAnchor1.onClick.AddListener(OnPersistAnchor1); + btnPersistAnchor2.onClick.AddListener(OnPersistAnchor2); + btnUnpersistAnchor1.onClick.AddListener(OnUnpersistAnchor1); + btnUnpersistAnchor2.onClick.AddListener(OnUnpersistAnchor2); + + btnClearPersistedAnchors.onClick.AddListener(OnClearPersistedAnchors); + btnExportAll.onClick.AddListener(OnExportAll); + btnImportAll.onClick.AddListener(OnImportAll); + btnClearExportedAnchors.onClick.AddListener(OnClearExportedAnchors); + + btnFloor.onClick.AddListener(OnFloor); + btnDevice.onClick.AddListener(OnDevice); + btnReloadScene.onClick.AddListener(OnReloadScene); + btnQuitApp.onClick.AddListener(Application.Quit); + } + + private void OnAcquirePersistedAnchorCollection() + { + if (AnchorManager.IsPersistedAnchorCollectionAcquired()) return; + if (taskPAC != null) return; + + taskPAC = AnchorManager.AcquirePersistedAnchorCollection(); + // Acturally, it will auto complete by default. Just make sure we can continue with AutoCompleteTask + taskPAC.AutoComplete(); + taskPAC.AutoCompleteTask.ContinueWith((act) => { + taskPAC = null; + CheckSupported(); + UINeedUpdate(); + }); + } + + private void OnReleasePersistedAnchorCollection() + { + // the taskPAC will be canceled in ReleasePersistedAnchorCollection + taskPAC = null; + + anchor1FromPA = null; + anchor2FromPA = null; + hasPersistedAnchor1 = false; + hasPersistedAnchor2 = false; + persistedAnchor1Name = null; + persistedAnchor2Name = null; + //hasPersistedAnchorFiles = false; + + AnchorManager.ReleasePersistedAnchorCollection(); + CheckSupported(); + UINeedUpdate(); + } + + + private void OnDisable() + { + // Remove listeners + btnCreateAnchor1.onClick.RemoveListener(OnCreateAnchor1); + btnCreateAnchor2.onClick.RemoveListener(OnCreateAnchor2); + btnFollowAnchor1.onClick.RemoveListener(OnFollowAnchor1); + btnFollowAnchor2.onClick.RemoveListener(OnFollowAnchor2); + btnResetObj.onClick.RemoveListener(OnResetObj); + btnClearSpatialAnchors.onClick.RemoveListener(OnClearAllAnchors); + + btnAcquirePAC.onClick.RemoveListener(OnAcquirePersistedAnchorCollection); + btnReleasePAC.onClick.RemoveListener(OnReleasePersistedAnchorCollection); + btnPersistAnchor1.onClick.RemoveListener(OnPersistAnchor1); + btnPersistAnchor2.onClick.RemoveListener(OnPersistAnchor2); + btnUnpersistAnchor1.onClick.RemoveListener(OnUnpersistAnchor1); + btnUnpersistAnchor2.onClick.RemoveListener(OnUnpersistAnchor2); + + btnClearPersistedAnchors.onClick.RemoveListener(OnClearPersistedAnchors); + btnExportAll.onClick.RemoveListener(OnExportAll); + btnImportAll.onClick.RemoveListener(OnImportAll); + btnClearExportedAnchors.onClick.RemoveListener(OnClearExportedAnchors); + btnFloor.onClick.RemoveListener(OnFloor); + + btnDevice.onClick.RemoveListener(OnDevice); + btnReloadScene.onClick.RemoveListener(OnReloadScene); + btnQuitApp.onClick.RemoveListener(Application.Quit); + + // No need to clear all persistance anchor. Reload scene can test the persist. + + // Disable Persistance Anchor + AnchorManager.ReleasePersistedAnchorCollection(); + + // Dispose all anchors + OnClearAllAnchors(); + + // Dispose all tasks + foreach (var task in tasks) + { + task.Dispose(); + } + tasks.Clear(); + + // Clear all task managers. It's readonly, so no need to dispose. + tmPA.Clear(); + tmFPA.Clear(); + } + + private void OnDestroy() + { + // Dispose all anchors + OnClearAllAnchorsInner(true); + + // Dispose all tasks + foreach (var task in tasks) + { + task.Dispose(); + } + tasks.Clear(); + + // Clear all task managers. It's readonly, so no need to dispose. + tmPA.Clear(); + tmFPA.Clear(); + } + + void UINeedUpdate() + { + doesUIInteractionsNeedUpdated = true; + } + + void UpdateUIInteractions() + { + if ((Time.time - lastUpdateTime) > 2.0f) + { + lastUpdateTime = Time.time; + doesUIInteractionsNeedUpdated = true; + } + + if (!doesUIInteractionsNeedUpdated) + return; + doesUIInteractionsNeedUpdated = false; + + bool hasAnchor1 = anchor1 != null; + bool hasAnchor2 = anchor2 != null; + bool hasAnchor = hasAnchor1 || hasAnchor2; + + // Create / Follow / Reset / Dispose + // If created, can created again. + // If no Anchor, cannot follow. + // however these interactions no need block + btnCreateAnchor1.interactable = isAnchorSupported && !hasPersistedAnchor1; + btnCreateAnchor2.interactable = isAnchorSupported && !hasPersistedAnchor2; + btnFollowAnchor1.interactable = hasAnchor1 && !anchor1.IsPersisted; + btnFollowAnchor2.interactable = hasAnchor2 && !anchor2.IsPersisted; + btnResetObj.interactable = true; + btnClearSpatialAnchors.interactable = hasAnchor; + + // Create Persisted Anchor Collection / Destroy Persisted Anchor Collection + // If has created, can destroy + // If has not created, can create + btnAcquirePAC.interactable = isPAnchorSupported && !isPACollectionAcquired && taskPAC == null; + btnReleasePAC.interactable = isPAnchorSupported && isPACollectionAcquired; + + // Persist / Unpersist / Clear + // If has anchor, can persist + // If has persisted anchor, can unpersist + // If has persisted anchor, can clear + btnPersistAnchor1.interactable = isPACollectionAcquired && hasAnchor1; + btnPersistAnchor2.interactable = isPACollectionAcquired && hasAnchor2; + btnUnpersistAnchor1.interactable = isPACollectionAcquired && hasPersistedAnchor1; + btnUnpersistAnchor2.interactable = isPACollectionAcquired && hasPersistedAnchor2; + btnClearPersistedAnchors.interactable = isPACollectionAcquired && (hasPersistedAnchor1 || hasPersistedAnchor2); + + // Export / Import / Clear + // If has persisted anchor, can export + // If has exported anchor, can import + // If has exported anchor, can clear + btnExportAll.interactable = isPACollectionAcquired && (hasPersistedAnchor1 || hasPersistedAnchor2) && tasks.Count == 0; + btnImportAll.interactable = isPACollectionAcquired && hasPersistedAnchorFiles && tasks.Count == 0; + // Not to clear when exporting or importing + btnClearExportedAnchors.interactable = hasPersistedAnchorFiles && tasks.Count == 0; + + string sa1 = "", sa2 = ""; + if (hasAnchor1) + sa1 = "A1: " + anchor1.Name + (anchor1.IsTrackable ? " T" : "") + (anchor1.IsPersisted ? " P" : "") + "\n"; + if (hasAnchor2) + sa2 = "A2: " + anchor2.Name + (anchor2.IsTrackable ? " T" : "") + (anchor2.IsPersisted ? " P" : "") + "\n"; + statusAnchor.text = sa1 + sa2 + + (hasPersistedAnchor1 ? "PA1: " + persistedAnchor1Name + "\n" : "") + + (hasPersistedAnchor2 ? "PA2: " + persistedAnchor2Name + "\n" : ""); + } + + void CheckSupported() + { + isAnchorSupported = AnchorManager.IsSupported(); + Debug.Log("AnchorTestHandle: Is Anchor supported: " + isAnchorSupported); + isPAnchorSupported = AnchorManager.IsPersistedAnchorSupported(); + Debug.Log("AnchorTestHandle: Is Persisted Anchor supported: " + isPAnchorSupported); + isPACollectionAcquired = AnchorManager.IsPersistedAnchorCollectionAcquired(); + Debug.Log("AnchorTestHandle: Is Persisted Anchor Collection acquired: " + isPACollectionAcquired); + } + IEnumerator Start() { - originFloor = new Pose(rig.position, rig.rotation); + CheckSupported(); + UINeedUpdate(); + UpdateUIInteractions(); + yield return null; // yield and let Time.unscaledTime to be updated float t = Time.unscaledTime; while (xrInputSubsystem == null) { @@ -51,11 +351,42 @@ namespace VIVE.OpenXR.Samples.Anchor GetXRInputSubsystem(); if (Time.unscaledTime - t > 5) { - Debug.LogError("Get XRInputSubsystem timeout"); - status.text = "Get XRInputSubsystem timeout"; +#if UNITY_EDITOR + Debug.LogError("Get XRInputSubsystem timeout. Check if you acturally enable the OpenXR's Mock Runtime."); +#else + Debug.LogError("Get XRInputSubsystem timeout. Check if you acturally enable any VR runtime."); +#endif + statusResponse.text = "No VR runtime"; yield break; } } + + // Check again + CheckSupported(); + UINeedUpdate(); + + if (!isPAnchorSupported) yield break; + + Debug.Log("AnchorTestHandle: AcquirePersistedAnchorCollection"); + + taskPAC = AnchorManager.AcquirePersistedAnchorCollection(); + taskPAC.Debug = true; + while (!AnchorManager.IsPersistedAnchorCollectionAcquired()) + { + Debug.Log("AnchorTestHandle: Wait PersistedAnchorCollection acquired"); + yield return null; + } + taskPAC = null; + + AnchorManager.GetPersistedAnchorProperties(out ViveAnchor.XrPersistedAnchorPropertiesGetInfoHTC properties); + Debug.Log("AnchorTestHandle: PersistAnchorProperties.maxPersistedAnchorCount=" + properties.maxPersistedAnchorCount); + + CheckSupported(); + + Debug.Log("AnchorTestHandle: Start() finished"); + + UINeedUpdate(); + UpdateUIInteractions(); } public Pose GetRelatedPoseToRig(Transform t) @@ -63,6 +394,24 @@ namespace VIVE.OpenXR.Samples.Anchor return new Pose(rig.InverseTransformPoint(t.position), Quaternion.Inverse(rig.rotation) * t.rotation); } + string MakeAnchorName(string userName) + { + // userName means user defined name. Add frame count to make it unique. + return userName + " (" + Time.frameCount + ")"; + } + + string MakePersistedAnchorName(string anchorName) + { + // the anchor name support UTF-8 encoding. + return anchorName + utf8Word; + } + + string MakeSpatialAnchorName(string persistedName) + { + // Remove the utf8Word from the anchor name + return persistedName.Substring(0, persistedName.Length - utf8Word.Length); + } + /// /// Help create anchor by anchor manager /// @@ -73,14 +422,14 @@ namespace VIVE.OpenXR.Samples.Anchor { if (!AnchorManager.IsSupported()) { - Debug.LogError("AnchorManager is not supported."); - status.text = "AnchorManager is not supported."; + Debug.LogError("AnchorManager: Anchor is not supported."); + statusResponse.text = "Anchor is not supported."; return null; } - var anchor = AnchorManager.CreateAnchor(relatedPose, name + " (" + Time.frameCount + ")"); + var anchor = AnchorManager.CreateAnchor(relatedPose, MakeAnchorName(name)); if (anchor == null) { - status.text = "Create " + name + " failed"; + statusResponse.text = "Create " + name + " failed"; Debug.LogError("Create " + name + " failed"); // Even error, still got. Use fake data. return anchor; @@ -88,7 +437,7 @@ namespace VIVE.OpenXR.Samples.Anchor else { string msg = "Create Anchor n=" + anchor.Name + " space=" + anchor.GetXrSpace() + " at p=" + relatedPose.position + " & r=" + relatedPose.rotation.eulerAngles; - status.text = msg; + statusResponse.text = msg; Debug.Log(msg); return anchor; } @@ -102,6 +451,7 @@ namespace VIVE.OpenXR.Samples.Anchor anchor1 = null; } anchor1 = CreateAnchor(GetRelatedPoseToRig(anchorPose1), "anchor1"); + UINeedUpdate(); } public void OnCreateAnchor2() @@ -112,6 +462,7 @@ namespace VIVE.OpenXR.Samples.Anchor anchor2 = null; } anchor2 = CreateAnchor(GetRelatedPoseToRig(anchorPose2), "anchor2"); + UINeedUpdate(); } public void MoveObjToAnchor(AnchorManager.Anchor anchor) @@ -121,7 +472,7 @@ namespace VIVE.OpenXR.Samples.Anchor if (anchor == null) { - status.text = "anchor is null"; + statusResponse.text = "anchor is null"; return; } @@ -131,35 +482,934 @@ namespace VIVE.OpenXR.Samples.Anchor obj.position = rig.TransformPoint(pose.position); obj.rotation = rig.rotation * pose.rotation; - status.text = "Obj move to " + anchor.GetSpatialAnchorName(); + statusResponse.text = "Obj move to " + anchor.GetSpatialAnchorName(); } else { - status.text = "Fail to get anchor's pose"; + statusResponse.text = "Fail to get anchor's pose"; } } public void OnFollowAnchor1() { + Debug.Log("AnchorTestHandle: OnFollowAnchor1()"); MoveObjToAnchor(anchor1); } public void OnFollowAnchor2() { + Debug.Log("AnchorTestHandle: OnFollowAnchor2()"); MoveObjToAnchor(anchor2); } public void OnResetObj() { - obj.position = anchorPoseD.position; - obj.rotation = anchorPoseD.rotation; + Debug.Log("AnchorTestHandle: OnResetObj()"); + if (obj != null && anchorPoseD != null) + { + obj.position = anchorPoseD.position; + obj.rotation = anchorPoseD.rotation; + } - status.text = "Obj move to default pose"; + if (statusResponse != null) + statusResponse.text = "Obj move to default pose"; } + private void OnClearAllAnchorsInner(bool isDestroy = false) + { + Debug.Log("AnchorTestHandle: OnClearAllAnchors()"); + try + { + if (!isDestroy) + { + // Not to touch object when destroy + if (obj != null && anchorPoseD != null) + { + obj.position = anchorPoseD.position; + obj.rotation = anchorPoseD.rotation; + } + + if (statusResponse != null) + { + if (hasPersistedAnchor1 || hasPersistedAnchor2) + statusResponse.text = "Dispose spatial anchors but will create again by persisted"; + else + statusResponse.text = "Dispose spatial anchors"; + } + } + } + catch (System.Exception e) + { + Debug.LogError("AnchorTestHandle: OnClearAllAnchorsInner: " + e.Message); + } + + if (anchor1 != null) + { + anchor1.Dispose(); + anchor1 = null; + } + if (anchor2 != null) + { + anchor2.Dispose(); + anchor2 = null; + } + } + + public void OnClearAllAnchors() + { + OnClearAllAnchorsInner(); + } + + public void OnPersistAnchor1() + { + Debug.Log("AnchorTestHandle: OnPersistAnchor1()"); + if (anchor1 == null) + { + statusResponse.text = "anchor1 is null"; + return; + } + + // Create new persisted anchor name by frame count. Not to follow the original anchor name. + var newName = MakePersistedAnchorName(MakeAnchorName("anchor1")); + Debug.Log($"AnchorTestHandle: Persist {anchor1.Name} to {newName}"); + var task = tmPA.GetTask(anchor1.GetXrSpace()); + if (task != null) + { + statusResponse.text = "Persist " + newName + " is running, please wait"; + return; + } + + task = AnchorManager.PersistAnchor(anchor1, newName); + tmPA.AddTask(anchor1.GetXrSpace(), task); + statusResponse.text = "Persist " + newName + " task is running, please wait"; + } + + public void OnPersistAnchor2() + { + Debug.Log("AnchorTestHandle: OnPersistAnchor2()"); + if (anchor2 == null) + { + statusResponse.text = "anchor2 is null"; + return; + } + + // Create new persisted anchor name by frame count. Not to follow the original anchor name. + var newName = MakePersistedAnchorName(MakeAnchorName("anchor2")); + Debug.Log($"AnchorTestHandle: Persist {anchor2.Name} to {newName}"); + var task = tmPA.GetTask(anchor2.GetXrSpace()); + if (task != null) + { + statusResponse.text = "Persist " + newName + " is running, please wait"; + return; + } + + task = AnchorManager.PersistAnchor(anchor2, newName); + tmPA.AddTask(anchor2.GetXrSpace(), task); + statusResponse.text = "Persist " + newName + " task is running, please wait"; + } + + public void OnUnpersistAnchor1() + { + Debug.Log("AnchorTestHandle: OnUnpersistAnchor1()"); + if (!hasPersistedAnchor1 || string.IsNullOrEmpty(persistedAnchor1Name)) + { + statusResponse.text = "persist anchor1 not exist"; + return; + } + + var ret = AnchorManager.UnpersistAnchor(persistedAnchor1Name) == XrResult.XR_SUCCESS; + if (ret) + statusResponse.text = "Unpersist " + persistedAnchor1Name + " success"; + else + statusResponse.text = "Unpersist " + persistedAnchor1Name + " failed: " + ret; + + hasPersistedAnchor1 = false; + persistedAnchor1Name = null; + UINeedUpdate(); + } + + public void OnUnpersistAnchor2() + { + Debug.Log("AnchorTestHandle: OnUnpersistAnchor2()"); + if (!hasPersistedAnchor2 || string.IsNullOrEmpty(persistedAnchor2Name)) + { + statusResponse.text = "persist anchor2 not exist"; + return; + } + + var ret = AnchorManager.UnpersistAnchor(persistedAnchor2Name) == XrResult.XR_SUCCESS; + if (ret) + statusResponse.text = "Unpersist " + persistedAnchor2Name + " success"; + else + statusResponse.text = "Unpersist " + persistedAnchor2Name + " failed: " + ret; + + hasPersistedAnchor2 = false; + persistedAnchor2Name = null; + UINeedUpdate(); + } + + public void OnClearPersistedAnchors() + { + Debug.Log("AnchorTestHandle: OnClearPersistedAnchors()"); + var ret = AnchorManager.ClearPersistedAnchors() == XrResult.XR_SUCCESS; + if (ret) + { + hasPersistedAnchor1 = false; + hasPersistedAnchor2 = false; + persistedAnchor1Name = null; + persistedAnchor2Name = null; + + statusResponse.text = "Clear persisted anchors success"; + } + else + statusResponse.text = "Clear persisted anchors failed: " + ret; + } + + public IEnumerator WaitExportFinish() + { + while (tasks.Count > 0) + { + Debug.Log("AnchorTestHandle: WaitExportFinish: " + tasks.Count); + foreach (var task in tasks) + { + if (task.IsCompleted) + { + Task<(XrResult, string, byte[])> t = task as Task<(XrResult, string, byte[])>; + if (t.Result.Item1 == XrResult.XR_SUCCESS) + { + // write to file + string path = GetExportPath(); + if (!Directory.Exists(path)) + { + Directory.CreateDirectory(path); + } + + string paname = t.Result.Item2; + if (!paname.EndsWith(utf8Word)) + throw new System.Exception("Anchor name is not ended with " + utf8Word); + paname = paname.Substring(0, paname.Length - 1); + string file = Path.Combine(path, paname + ".pa"); + Debug.Log("AnchorTestHandle: Data length: " + t.Result.Item3.Length); + File.WriteAllBytes(file, t.Result.Item3); + Debug.Log("AnchorTestHandle: Exported anchor to " + file); + statusResponse.text = "Exported anchor to " + file; + } + else + { + Debug.LogError("AnchorTestHandle: Export persisted anchor failed: " + t.Result.Item1); + statusResponse.text = "Export persisted anchor failed: " + t.Result.Item1; + } + tasks.Remove(task); + break; + } + } + yield return null; + } + + UINeedUpdate(); + + statusResponse.text = "All persisted anchors exported"; + } + + public void OnExportAll() + { + Debug.Log("AnchorTestHandle: OnExportAll()"); + // Create export folder + string path = GetExportPath(); + if (!Directory.Exists(path)) + Directory.CreateDirectory(path); + + OnClearExportedAnchors(); + + if (tasks.Count > 0) + { + statusResponse.text = "Other task is running, please wait"; + return; + } + + statusResponse.text = "Exporting anchors"; + + if (hasPersistedAnchor1) + { + Task t = AnchorManager.ExportPersistedAnchor(persistedAnchor1Name); + tasks.Add(t); + } + + if (hasPersistedAnchor2) + { + Task t = AnchorManager.ExportPersistedAnchor(persistedAnchor2Name); + tasks.Add(t); + } + + // Has tasks, export/import/clear buttons should be disabled + UINeedUpdate(); + + StartCoroutine(WaitExportFinish()); + } + + public IEnumerator WaitImportFinish() + { + while (tasks.Count > 0) + { + foreach (var task in tasks) + { + if (task.IsCompleted) + { + tasks.Remove(task); + break; + } + } + yield return null; + } + + // No tasks, export/import/clear buttons should be enabled + UINeedUpdate(); + statusResponse.text = "All persisted anchors imported"; + } + + public void OnImportAll() + { + Debug.Log("AnchorTestHandle: OnImportAll()"); + if (tasks.Count > 0) + { + statusResponse.text = "Other task is running, please wait"; + return; + } + + var list = GetExportedFilesList(); + if (list == null) + { + statusResponse.text = "No exported anchor files"; + return; + } + + string names = ""; + try + { + foreach (var file in list) + { + Task tread = new Task(async () => + { + try + { + Debug.Log("AnchorTestHandle: Read file: " + file); + var data = File.ReadAllBytes(file); + Debug.Log("AnchorTestHandle: data length: " + data.Length); + + AnchorManager.GetPersistedAnchorNameFromBuffer(data, out string name); + Debug.Log("AnchorTestHandle: data is from " + name); + names += name + "\n"; + + Task importTask = AnchorManager.ImportPersistedAnchor(data); + await importTask; + + if (importTask.Result == XrResult.XR_SUCCESS) + Debug.Log("AnchorTestHandle: Import persisted anchor success"); + else + Debug.LogError("AnchorTestHandle: Import persisted anchor failed: " + importTask.Result); + } + catch (System.Exception e) + { + Debug.LogError("AnchorTestHandle: Read file " + file + " failed: " + e.Message); + statusResponse.text = "Read file " + file + " failed: " + e.Message; + } + }); + tread.Start(); + tasks.Add(tread); + } + } + catch (System.Exception e) + { + Debug.LogError("AnchorTestHandle: Import persisted anchor failed: " + e.Message); + statusResponse.text = "Import persisted anchor failed: " + e.Message; + } + + // Has tasks, export/import/clear buttons should be disabled + UINeedUpdate(); + statusResponse.text = "Importing " + list.Count + "persist anchor(s):\n" + names; + + + StartCoroutine(WaitImportFinish()); + } + + public void OnClearExportedAnchors() + { + Debug.Log("AnchorTestHandle: OnClearExportedAnchors()"); + var list = GetExportedFilesList(); + if (list != null) + { + foreach (var file in list) + { + Debug.Log("AnchorTestHandle: Delete file " + file); + File.Delete(file); + } + hasPersistedAnchorFiles = false; + statusResponse.text = "Del " + list.Count + " files"; + } + UINeedUpdate(); + } + + string GetExportPath() + { + return Path.Combine(Application.persistentDataPath, "Anchors"); + } + + List GetExportedFilesList() + { + // Get persistance storage path + // Check if any anchor file in the app's local storage + string path = GetExportPath(); + if (!Directory.Exists(path)) return null; + + string[] files = Directory.GetFiles(path); + List anchorFiles = new List(); + if (files.Length == 0) return null; + foreach (string file in files ) { + if (file.EndsWith(".pa")) + anchorFiles.Add(file); + } + // Print log if files count changed + if (anchorFiles.Count != lastFoundExportedFilesCount) + { + Debug.Log("AnchorTestHandle: Found " + anchorFiles.Count + " anchor files"); + foreach (var file in anchorFiles) + Debug.Log("AnchorTestHandle: " + file); + lastFoundExportedFilesCount = anchorFiles.Count; + } + + hasPersistedAnchorFiles = anchorFiles.Count > 0; + return anchorFiles; + } + + public void CheckExportedFiles() + { + if (hasPersistedAnchorFiles) return; + + GetExportedFilesList(); + } + + public void EnumeratePersistedAnchors() + { + if (!isAnchorSupported || !isPAnchorSupported || !isPACollectionAcquired) + return; + + if (AnchorManager.GetNumberOfPersistedAnchors(out int count) != XrResult.XR_SUCCESS) { + Debug.LogError("AnchorTestHandle: GetNumberOfPersistedAnchors failed"); + return; + } + + var tmpHasPA1 = hasPersistedAnchor1; + var tmpHasPA2 = hasPersistedAnchor2; + hasPersistedAnchor1 = false; + hasPersistedAnchor2 = false; + persistedAnchor1Name = null; + persistedAnchor2Name = null; + + if (count != lastPACount) + { + Debug.Log("AnchorTestHandle: GetNumberOfPersistedAnchors=" + count); + lastPACount = count; + } + + if (count == 0) + return; + + // Enumerate persisted anchors + if (AnchorManager.EnumeratePersistedAnchorNames(out string[] names) != XrResult.XR_SUCCESS) + { + Debug.LogError("AnchorTestHandle: EnumeratePersistedAnchorNames failed"); + return; + } + + foreach (var name in names) + { + if (name.EndsWith(utf8Word)) + { + if (name.StartsWith("anchor1")) + { + if (!tmpHasPA1) + Debug.Log("AnchorTestHandle: Found persisted anchor1: " + name); + hasPersistedAnchor1 = true; + persistedAnchor1Name = name; + } + else if (name.StartsWith("anchor2")) + { + if (!tmpHasPA2) + Debug.Log("AnchorTestHandle: Found persisted anchor2: " + name); + hasPersistedAnchor2 = true; + persistedAnchor2Name = name; + } + } + + // Others don't care + } + + if (hasPersistedAnchor1 != tmpHasPA1 && hasPersistedAnchor1 == false) + Debug.Log("AnchorTestHandle: Lost persisted anchor1"); + + if (hasPersistedAnchor2 != tmpHasPA2 && hasPersistedAnchor2 == false) + Debug.Log("AnchorTestHandle: Lost persisted anchor2"); + + if (hasPersistedAnchor1 != tmpHasPA1 || hasPersistedAnchor2 != tmpHasPA2) + UINeedUpdate(); + } + + /// + /// If both anchor and persited anchor are existed, check if the anchor is created from the persisted anchor. If not, destroy the anchor. + /// + /// Persisted anchor exist + /// Persisted anchor's name + /// if anchor is not null, anchor exist + /// If the anchor is from a persisted anchor, the persisted anchor's name + /// If the anchor need be destroyed + bool NeedDestroy(bool hasPA, string paName, AnchorManager.Anchor anchor, string anchorFromPA) { + // If no persisted anchor, no need to destroy the anchor. + if (!hasPA) + return false; + // If no anchor, no need to destroy the anchor. + if (anchor == null) + return false; + // If the anchor is created from the same persisted anchor, no need to destroy it. + if (anchorFromPA == paName) + return false; + // If the anchor is created from other persisted anchor, need to destroy it. + return true; + } + + bool NeedCancelCFPA(bool hasPA, string paName, FutureTask<(XrResult, AnchorManager.Anchor)> task, string anchorFromPA) { + // If task is already created from the same persisted anchor, no need to cancel it. + if (anchorFromPA == paName) + return false; + // If task is already created from the same persisted anchor, no need to cancel it. + // If no persisted anchor, keep the task. + return hasPA && task != null; + } + + // If persisted anchors are existed, create anchor from them. + void UpdateAnchorsIfPersistExist() + { + // If both anchor and persited anchor are existed, check if the anchor is created from the persisted anchor. If not, dispose the anchor. + + // Check if the anchor is realted to the persisted anchor. + bool a1NeedDispose = NeedDestroy(hasPersistedAnchor1, persistedAnchor1Name, anchor1, anchor1FromPA); + bool a2NeedDispose = NeedDestroy(hasPersistedAnchor2, persistedAnchor2Name, anchor2, anchor2FromPA); + + if (a1NeedDispose) + { + Debug.Log("AnchorTestHandle: Dispose existed anchor1 because we want to create it from persisted anchor"); + anchor1.Dispose(); + anchor1 = null; + anchor1FromPA = ""; + } + + if (a2NeedDispose) + { + Debug.Log("AnchorTestHandle: Dispose existed anchor2 because we want to create it from persisted anchor"); + anchor2.Dispose(); + anchor2 = null; + anchor2FromPA = ""; + } + + // Use TaskManager to keep the tasks + var task1 = tmFPA.GetTask(anchor1FromPA); + var task2 = tmFPA.GetTask(anchor2FromPA); + + // Check if the task is related to the persisted anchor. + bool cfpa1NeedCancel = NeedCancelCFPA(hasPersistedAnchor1, persistedAnchor1Name, task1, anchor1FromPA); + bool cfpa2NeedCancel = NeedCancelCFPA(hasPersistedAnchor2, persistedAnchor2Name, task2, anchor2FromPA); + + if (cfpa1NeedCancel) + { + tmFPA.RemoveTask(task1); + task1 = null; + anchor1FromPA = ""; + } + + if (cfpa2NeedCancel) + { + tmFPA.RemoveTask(task2); + task2 = null; + anchor2FromPA = ""; + } + + bool needCreateAnchor1 = hasPersistedAnchor1 && anchor1 == null && task1 == null && !string.IsNullOrEmpty(persistedAnchor1Name); + if (needCreateAnchor1) + { + task1 = AnchorManager.CreateSpatialAnchorFromPersistedAnchor(persistedAnchor1Name, MakeSpatialAnchorName(persistedAnchor1Name)); + tmFPA.AddTask(persistedAnchor1Name, task1); + anchor1FromPA = persistedAnchor1Name; + } + + bool needCreateAnchor2 = hasPersistedAnchor2 && anchor2 == null && task2 == null && !string.IsNullOrEmpty(persistedAnchor2Name); + if (needCreateAnchor2) + { + task2 = AnchorManager.CreateSpatialAnchorFromPersistedAnchor(persistedAnchor2Name, MakeSpatialAnchorName(persistedAnchor2Name)); + tmFPA.AddTask(persistedAnchor2Name, task2); + anchor2FromPA = persistedAnchor2Name; + } + + if (task1 != null && task1.IsPollCompleted) + { + var result = task1.Complete(); + tmFPA.RemoveTask(task1); + if (result.Item1 != XrResult.XR_SUCCESS) + { + Debug.LogError("AnchorTestHandle: Create anchor1 from persisted anchor failed"); + statusResponse.text = "Create anchor1 from persisted anchor failed"; + anchor1FromPA = null; + } + else + { + anchor1 = result.Item2; + } + } + + if (task2 != null && task2.IsPollCompleted) + { + var result = task2.Complete(); + tmFPA.RemoveTask(task2); + if (result.Item1 != XrResult.XR_SUCCESS) + { + Debug.LogError("AnchorTestHandle: Create anchor2 from persisted anchor failed"); + statusResponse.text = "Create anchor2 from persisted anchor failed"; + anchor2FromPA = null; + } + else + { + anchor2 = result.Item2; + } + } + } + + float lastUpdateTimeTAP = -1; + + void UpdateTrackableAnchorsPose() + { + bool panchorObj1ShouldBeSeen = false; + bool panchorObj2ShouldBeSeen = false; + + if (anchor1 == null || !anchor1.IsTrackable) + panchorObj1ShouldBeSeen = false; + + if (anchor2 == null || !anchor2.IsTrackable) + panchorObj2ShouldBeSeen = false; + + if (anchor1 != null && anchor1.IsTrackable) + { + if (AnchorManager.GetTrackingSpacePose(anchor1, out Pose pose)) + { + panchorObj1ShouldBeSeen = true; + panchorObj1.transform.position = rig.TransformPoint(pose.position); + panchorObj1.transform.rotation = rig.rotation * pose.rotation; + } + else + { + panchorObj1ShouldBeSeen = false; + Debug.LogError("AnchorTestHandle: GetTrackingSpacePose for anchor1 is failed"); + } + } + + if (anchor2 != null && anchor2.IsTrackable) + { + if (AnchorManager.GetTrackingSpacePose(anchor2, out Pose pose)) + { + panchorObj2ShouldBeSeen = true; + panchorObj2.transform.position = rig.TransformPoint(pose.position); + panchorObj2.transform.rotation = rig.rotation * pose.rotation; + } + else + { + panchorObj2ShouldBeSeen = false; + Debug.LogError("AnchorTestHandle: GetTrackingSpacePose for anchor2 is failed"); + } + } + + var switchObj1 = panchorObj1ShouldBeSeen != panchorObj1.activeInHierarchy; + if (switchObj1) + panchorObj1.SetActive(panchorObj1ShouldBeSeen); + + var switchObj2 = panchorObj2ShouldBeSeen != panchorObj2.activeInHierarchy; + if (switchObj2) + panchorObj2.SetActive(panchorObj2ShouldBeSeen); + + // force update log once if switchObj1 or switchObj2 + if (switchObj1 || switchObj2) + lastUpdateTimeTAP = -1; + + if (panchorObj1ShouldBeSeen || panchorObj2ShouldBeSeen) + { + if (Time.time - lastUpdateTimeTAP > 0.25f) + { + StackTraceLogType stackTraceLogTypeOrigin = Application.GetStackTraceLogType(LogType.Log); + Application.SetStackTraceLogType(LogType.Log, StackTraceLogType.None); + if (panchorObj1ShouldBeSeen) + { + var pos = panchorObj1.transform.localPosition; + var rot = panchorObj1.transform.localRotation.eulerAngles; + Debug.Log("AnchorTestHandle: panchorObj1 pos=" + pos.x + "," + pos.y + "," + pos.z); + Debug.Log("AnchorTestHandle: panchorObj1 rot=" + rot.x + "," + rot.y + "," + rot.z); + } + + if (panchorObj2ShouldBeSeen) + { + var pos = panchorObj2.transform.localPosition; + var rot = panchorObj2.transform.localRotation.eulerAngles; + Debug.Log("AnchorTestHandle: panchorObj2 pos=" + pos.x + "," + pos.y + "," + pos.z); + Debug.Log("AnchorTestHandle: panchorObj2 rot=" + rot.x + "," + rot.y + "," + rot.z); + } + Application.SetStackTraceLogType(LogType.Log, stackTraceLogTypeOrigin); + lastUpdateTimeTAP = Time.time; + } + } + } + + void PerformEditorTest() + { + if (testCreateAnchor1) + { + testCreateAnchor1 = false; + OnCreateAnchor1(); + } + + if (testCreateAnchor2) + { + testCreateAnchor2 = false; + OnCreateAnchor2(); + } + + if (testFollowAnchor1) + { + testFollowAnchor1 = false; + OnFollowAnchor1(); + } + + if (testFollowAnchor2) + { + testFollowAnchor2 = false; + OnFollowAnchor2(); + } + + if (testResetObj) + { + testResetObj = false; + OnResetObj(); + } + + if (testClearSpatialAnchors) + { + testClearSpatialAnchors = false; + OnClearAllAnchors(); + } + + if (testCreatePAC) + { + testCreatePAC = false; + OnAcquirePersistedAnchorCollection(); + } + + if (testDestroyPAC) + { + testDestroyPAC = false; + OnReleasePersistedAnchorCollection(); + } + + if (testPersistAnchor1) + { + testPersistAnchor1 = false; + OnPersistAnchor1(); + } + + if (testPersistAnchor2) + { + testPersistAnchor2 = false; + OnPersistAnchor2(); + } + + if (testExportAll) + { + testExportAll = false; + OnExportAll(); + } + + if (testImportAll) + { + testImportAll = false; + OnImportAll(); + } + + if (testClearExportedAnchors) + { + testClearExportedAnchors = false; + OnClearExportedAnchors(); + } + + if (testUnpersistAnchor1) + { + testUnpersistAnchor1 = false; + OnUnpersistAnchor1(); + } + + if (testUnpersistAnchor2) + { + testUnpersistAnchor2 = false; + OnUnpersistAnchor2(); + } + + if (testClearPersistedAnchors) + { + testClearPersistedAnchors = false; + OnClearPersistedAnchors(); + } + + if (testFloor) + { + testFloor = false; + OnFloor(); + } + + if (testDevice) + { + testDevice = false; + OnDevice(); + } + + if (testReloadScene) + { + testReloadScene = false; + OnReloadScene(); + } + } + + List> toRemovePA = new List>(); + List> toRemoveFPA = new List>(); + + void UpdateTasks() + { + toRemovePA.Clear(); + // Check persist anchor tasks + foreach (var taskTuple in tmPA.GetTasks()) + { + var anchor = taskTuple.Item1; + var task = taskTuple.Item2; + if (!AnchorManager.GetSpatialAnchorName(anchor, out string name)) + Debug.LogError("Faild to get anchor name: " + anchor); + + if (task.IsPollCompleted) + { + toRemovePA.Add(task); + if (task.PollResult == XrResult.XR_SUCCESS) + { + var result = task.Complete(); + if (result == XrResult.XR_SUCCESS) + { + Debug.Log("AnchorTestHandle: Persist anchor " + anchor + "=" + name + " success"); + } + else + { + Debug.LogError("AnchorTestHandle: Persist anchor " + anchor + "=" + name + " failed: " + result); + } + } + else + { + Debug.LogError("AnchorTestHandle: Persist anchor " + anchor + "=" + name + " failed: " + task.PollResult); + } + } + } + foreach (var task in toRemovePA) + { + tmPA.RemoveTask(task); + } + toRemovePA.Clear(); + + // Check create from persisted anchor tasks + toRemoveFPA.Clear(); + foreach (var taskTuple in tmFPA.GetTasks()) + { + var paName = taskTuple.Item1; + var task = taskTuple.Item2; + if (task.IsPollCompleted) + { + toRemoveFPA.Add(task); + if (task.PollResult == XrResult.XR_SUCCESS) + { + var result = task.Complete(); + if (result.Item1 == XrResult.XR_SUCCESS) + { + Debug.Log("AnchorTestHandle: Create anchor from persisted anchor " + paName + " success"); + if (paName == persistedAnchor1Name) + { + anchor1 = result.Item2; + } + else if (paName == persistedAnchor2Name) + { + anchor2 = result.Item2; + } + } + else + { + Debug.LogError("AnchorTestHandle: Create anchor from persisted anchor " + paName + " failed: " + result.Item1); + if (paName == persistedAnchor1Name) + { + anchor1FromPA = null; + } + else if (paName == persistedAnchor2Name) + { + anchor2FromPA = null; + } + } + } + else + { + Debug.LogError("AnchorTestHandle: Create anchor from persisted anchor " + paName + " failed: " + task.PollResult); + if (paName == persistedAnchor1Name) + { + anchor1FromPA = null; + } + else if (paName == persistedAnchor2Name) + { + anchor2FromPA = null; + } + } + } + } + foreach (var task in toRemoveFPA) + { + tmFPA.RemoveTask(task); + } + toRemoveFPA.Clear(); + } + + void Update() + { + PerformEditorTest(); + + if (!isAnchorSupported) + { + UpdateUIInteractions(); + return; + } + + UpdateTasks(); + + // Check persisted files + CheckExportedFiles(); + + // Enumerate persisted anchors + EnumeratePersistedAnchors(); + + // Update anchors if persisted anchors are existed + UpdateAnchorsIfPersistExist(); + + // Update trackable anchors' pose + UpdateTrackableAnchorsPose(); + + // Update UI interactions + UpdateUIInteractions(); + } public void OnFloor() { + Debug.Log("AnchorTestHandle: OnFloor()"); if (xrInputSubsystem == null) { Debug.LogError("xrInputSubsystem is null"); @@ -168,13 +1418,11 @@ namespace VIVE.OpenXR.Samples.Anchor } + OnResetObj(); + OnClearAllAnchors(); if (xrInputSubsystem.TrySetTrackingOriginMode(TrackingOriginModeFlags.Floor)) { statusOrigin.text = "Set tracking origin to floor. Reset Obj and anchors"; - rig.position = originFloor.position; - OnResetObj(); - anchor1 = null; - anchor2 = null; } else { @@ -184,34 +1432,31 @@ namespace VIVE.OpenXR.Samples.Anchor public void OnDevice() { + Debug.Log("AnchorTestHandle: OnDevice()"); if (xrInputSubsystem == null) { - Debug.LogError("xrInputSubsystem is null"); + Debug.LogError("AnchorTestHandle: xrInputSubsystem is null"); statusOrigin.text = "xrInputSubsystem is null"; return; } + OnResetObj(); + OnClearAllAnchors(); if (xrInputSubsystem.TrySetTrackingOriginMode(TrackingOriginModeFlags.Device)) { statusOrigin.text = "Set tracking origin to device. Reset Obj and anchors"; - rig.position = originFloor.position + Vector3.up; - OnResetObj(); - if (anchor1 != null) - { - anchor1.Dispose(); - anchor1 = null; - } - if (anchor2 != null) - { - anchor2.Dispose(); - anchor2 = null; - } } else { statusOrigin.text = "Fail to set tracking origin to device"; } } + + public void OnReloadScene() + { + Debug.Log("AnchorTestHandle: OnReloadScene()"); + UnityEngine.SceneManagement.SceneManager.LoadScene(UnityEngine.SceneManagement.SceneManager.GetActiveScene().name); + } } -} \ No newline at end of file +} diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/ActionMap/InputActions.inputactions b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/ActionMap/InputActions.inputactions index 7187977..9c3c2ff 100644 --- a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/ActionMap/InputActions.inputactions +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/ActionMap/InputActions.inputactions @@ -15,40 +15,13 @@ "initialStateCheck": false }, { - "name": "GripRotation", - "type": "Value", - "id": "9a324f95-c0bd-46b0-a59e-7576f0279b65", - "expectedControlType": "Quaternion", + "name": "TriggerTouch", + "type": "Button", + "id": "e43fd4f9-8f68-485d-a7a3-081d8fa745a3", + "expectedControlType": "Button", "processors": "", "interactions": "", - "initialStateCheck": true - }, - { - "name": "GripPosition", - "type": "Value", - "id": "519bdbd2-563b-4227-8533-200dc2cd257f", - "expectedControlType": "Vector3", - "processors": "", - "interactions": "", - "initialStateCheck": true - }, - { - "name": "AimRotation", - "type": "Value", - "id": "8b0c064e-e191-42f1-9493-c908ccf24b22", - "expectedControlType": "Quaternion", - "processors": "", - "interactions": "", - "initialStateCheck": true - }, - { - "name": "AimPosition", - "type": "Value", - "id": "4c72e7e0-5dda-44f9-855f-6bcae7eb29db", - "expectedControlType": "Vector3", - "processors": "", - "interactions": "", - "initialStateCheck": true + "initialStateCheck": false }, { "name": "Trigger", @@ -176,6 +149,204 @@ "interactions": "", "initialStateCheck": false }, + { + "name": "PointerPosition", + "type": "Value", + "id": "4c72e7e0-5dda-44f9-855f-6bcae7eb29db", + "expectedControlType": "Vector3", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "PointerRotation", + "type": "Value", + "id": "8b0c064e-e191-42f1-9493-c908ccf24b22", + "expectedControlType": "Quaternion", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "GripPosition", + "type": "Value", + "id": "519bdbd2-563b-4227-8533-200dc2cd257f", + "expectedControlType": "Vector3", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "GripRotation", + "type": "Value", + "id": "9a324f95-c0bd-46b0-a59e-7576f0279b65", + "expectedControlType": "Quaternion", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "Haptic", + "type": "PassThrough", + "id": "c28d7366-eaa9-4c1a-afcd-11a42e73afe5", + "expectedControlType": "Haptic", + "processors": "", + "interactions": "", + "initialStateCheck": false + }, + { + "name": "PokePosition", + "type": "Value", + "id": "ca86dd28-8403-4411-b357-12e60359d869", + "expectedControlType": "Vector3", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "PokeRotation", + "type": "Value", + "id": "e94beec4-c4d1-4a9b-8ea7-bd2df7ee1067", + "expectedControlType": "Quaternion", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "PinchPosition", + "type": "Value", + "id": "256bb79a-806e-47ad-a739-432054b9539c", + "expectedControlType": "Vector3", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "PinchRotation", + "type": "Value", + "id": "d6b9b40b-787e-49ef-9eaf-252c7d0a059a", + "expectedControlType": "Quaternion", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "PinchValue", + "type": "Value", + "id": "3519abc9-d93f-47e5-9e52-1ab77d92e331", + "expectedControlType": "Axis", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "PinchReady", + "type": "Button", + "id": "129007ee-4583-4243-ba48-aab01c86e1ae", + "expectedControlType": "Button", + "processors": "", + "interactions": "", + "initialStateCheck": false + }, + { + "name": "PointerActivate", + "type": "Value", + "id": "557ceb4f-b921-471e-959a-4b1a388d2d2e", + "expectedControlType": "Axis", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "PointerActivateReady", + "type": "Button", + "id": "29286b83-438c-4ebc-9156-d806a238645d", + "expectedControlType": "Button", + "processors": "", + "interactions": "", + "initialStateCheck": false + }, + { + "name": "GraspValue", + "type": "Value", + "id": "40d16137-3367-44f1-a006-4e73810c7270", + "expectedControlType": "Axis", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "GraspReady", + "type": "Button", + "id": "3d11c429-5e4d-4071-b939-edf189aa39f6", + "expectedControlType": "Button", + "processors": "", + "interactions": "", + "initialStateCheck": false + }, + { + "name": "PalmPosePosition", + "type": "Value", + "id": "eefaf18c-77c4-4239-babe-adf9e6594e78", + "expectedControlType": "Vector3", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "PalmPoseRotation", + "type": "Value", + "id": "216e3b04-41b1-40d4-875e-83edfdd6c730", + "expectedControlType": "Quaternion", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "PinchPose", + "type": "Value", + "id": "554c8747-f43e-4d59-a959-ef764e2f0345", + "expectedControlType": "Pose", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "PokePose", + "type": "Value", + "id": "b6c60260-b2c8-43b3-b77a-311536ae7a28", + "expectedControlType": "Pose", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "PalmPose", + "type": "Value", + "id": "17f9c634-10d0-4761-94ea-1d79bb2b758b", + "expectedControlType": "Pose", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "GripPose", + "type": "Value", + "id": "e57e1937-cf92-4b04-b7c9-41ec409292b6", + "expectedControlType": "Pose", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "AimPose", + "type": "Value", + "id": "f2111c43-d1dc-425e-8e48-4429849ab749", + "expectedControlType": "Pose", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, { "name": "IsTracked", "type": "Value", @@ -194,123 +365,6 @@ "interactions": "", "initialStateCheck": true }, - { - "name": "PinchStrength", - "type": "Value", - "id": "f898cc19-e826-4614-93a3-6b5d51889820", - "expectedControlType": "Analog", - "processors": "", - "interactions": "", - "initialStateCheck": true - }, - { - "name": "PinchPose", - "type": "PassThrough", - "id": "4b012362-3164-467b-93ee-89690b5ab6bf", - "expectedControlType": "Pose", - "processors": "", - "interactions": "", - "initialStateCheck": false - }, - { - "name": "PinchGripIsTracked", - "type": "Value", - "id": "95eabb07-506c-46ae-8414-72d8dd0d5056", - "expectedControlType": "Analog", - "processors": "", - "interactions": "", - "initialStateCheck": true - }, - { - "name": "PinchGripTrackingState", - "type": "Value", - "id": "4ac5f4d8-4417-47c8-9e0a-e7efb02d5595", - "expectedControlType": "Integer", - "processors": "", - "interactions": "", - "initialStateCheck": true - }, - { - "name": "PinchGripPosition", - "type": "Value", - "id": "f8fa2624-ffe3-450b-b961-dacd12abe91b", - "expectedControlType": "Vector3", - "processors": "", - "interactions": "", - "initialStateCheck": true - }, - { - "name": "PinchGripRotation", - "type": "Value", - "id": "3d99abd0-1ace-442a-a168-261c12800719", - "expectedControlType": "Quaternion", - "processors": "", - "interactions": "", - "initialStateCheck": true - }, - { - "name": "PinchGripStrength", - "type": "Value", - "id": "9ecf9f1f-41a9-4081-8ac8-b321569e8a6d", - "expectedControlType": "Analog", - "processors": "", - "interactions": "", - "initialStateCheck": true - }, - { - "name": "TrackerPrimaryButton", - "type": "Button", - "id": "63a5174a-4199-4dfb-abea-cbff941fb1ac", - "expectedControlType": "Button", - "processors": "", - "interactions": "", - "initialStateCheck": false - }, - { - "name": "TrackerMenu", - "type": "Button", - "id": "056c5c79-de76-471c-8ed1-b2e7935082ee", - "expectedControlType": "Button", - "processors": "", - "interactions": "", - "initialStateCheck": false - }, - { - "name": "TrackerPose", - "type": "PassThrough", - "id": "576957d5-7e52-43f4-9b2b-6b409f90de83", - "expectedControlType": "Pose", - "processors": "", - "interactions": "", - "initialStateCheck": false - }, - { - "name": "TrackerTracked", - "type": "Value", - "id": "b379a167-57ab-4bf7-9a82-b1ee6614c34e", - "expectedControlType": "Analog", - "processors": "", - "interactions": "", - "initialStateCheck": true - }, - { - "name": "TrackerTrackingState", - "type": "Value", - "id": "2b81baa6-4a40-4078-876c-149d8bf87da6", - "expectedControlType": "Integer", - "processors": "", - "interactions": "", - "initialStateCheck": true - }, - { - "name": "TriggerTouch", - "type": "Button", - "id": "e43fd4f9-8f68-485d-a7a3-081d8fa745a3", - "expectedControlType": "Button", - "processors": "", - "interactions": "", - "initialStateCheck": false - }, { "name": "GripTouch", "type": "Button", @@ -321,7 +375,7 @@ "initialStateCheck": false }, { - "name": "ParkingTouch", + "name": "ThumbrestTouched", "type": "Button", "id": "3db6b074-3acb-4c3f-bb16-11f8b9e38d37", "expectedControlType": "Button", @@ -342,6 +396,28 @@ "isComposite": false, "isPartOfComposite": false }, + { + "name": "", + "id": "6ffba069-2076-48e0-b33b-bab9598844da", + "path": "{LeftHand}/deviceRotation", + "interactions": "", + "processors": "", + "groups": "", + "action": "GripRotation", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "eb10cbdb-a9e7-4bec-b76c-1718f456ac14", + "path": "{LeftHand}/{TriggerTouch}", + "interactions": "", + "processors": "", + "groups": "", + "action": "TriggerTouch", + "isComposite": false, + "isPartOfComposite": false + }, { "name": "", "id": "ec353a5a-6a7a-4ee6-a33e-d12a8c0b705a", @@ -353,6 +429,17 @@ "isComposite": false, "isPartOfComposite": false }, + { + "name": "", + "id": "3dfde460-9bef-4bd9-943d-170adc171ff8", + "path": "{LeftHand}/{PrimaryTouch}", + "interactions": "", + "processors": "", + "groups": "", + "action": "PrimaryTouch", + "isComposite": false, + "isPartOfComposite": false + }, { "name": "", "id": "1a98fe1d-5477-4473-9ed1-05d2decb2c15", @@ -364,17 +451,6 @@ "isComposite": false, "isPartOfComposite": false }, - { - "name": "", - "id": "3dfde460-9bef-4bd9-943d-170adc171ff8", - "path": "{LeftHand}/{primaryTouch}", - "interactions": "", - "processors": "", - "groups": "", - "action": "PrimaryTouch", - "isComposite": false, - "isPartOfComposite": false - }, { "name": "", "id": "9603ae96-fef3-432c-88a0-282232c1368d", @@ -509,100 +585,12 @@ }, { "name": "", - "id": "4d8fde07-f5ac-4a1b-b3e9-783eccfc1d17", - "path": "{LeftHand}/isTracked", + "id": "6ecaec07-8710-4084-94c5-efcc1f6a9dea", + "path": "{LeftHand}/pointerRotation", "interactions": "", "processors": "", "groups": "", - "action": "IsTracked", - "isComposite": false, - "isPartOfComposite": false - }, - { - "name": "", - "id": "cb1e1906-671b-49f8-9e1b-540c6caf0379", - "path": "{LeftHand}/selectValue", - "interactions": "", - "processors": "", - "groups": "", - "action": "PinchStrength", - "isComposite": false, - "isPartOfComposite": false - }, - { - "name": "", - "id": "3b835a88-b652-4a4d-ad97-7f5ec91f842c", - "path": "{LeftHand}/primaryButton", - "interactions": "", - "processors": "", - "groups": "", - "action": "TrackerPrimaryButton", - "isComposite": false, - "isPartOfComposite": false - }, - { - "name": "", - "id": "399543a2-be42-4909-a29a-8d01eb6cd818", - "path": "{LeftHand}/pointerPose", - "interactions": "", - "processors": "", - "groups": "", - "action": "PinchPose", - "isComposite": false, - "isPartOfComposite": false - }, - { - "name": "", - "id": "dfe51db1-692c-49dc-b4a3-407b1ccf3fb3", - "path": "{LeftHand}/devicePose", - "interactions": "", - "processors": "", - "groups": "", - "action": "TrackerPose", - "isComposite": false, - "isPartOfComposite": false - }, - { - "name": "", - "id": "dc04bc6e-b1c6-4c13-9387-87acf6c2838d", - "path": "{LeftHand}/menu", - "interactions": "", - "processors": "", - "groups": "", - "action": "TrackerMenu", - "isComposite": false, - "isPartOfComposite": false - }, - { - "name": "", - "id": "f676025c-f2bf-4a47-b3e4-ca55309a42c9", - "path": "{LeftHand}/devicePose/isTracked", - "interactions": "", - "processors": "", - "groups": "", - "action": "TrackerTracked", - "isComposite": false, - "isPartOfComposite": false - }, - { - "name": "", - "id": "134ee4a8-3562-4560-8003-ca3f9791d9e8", - "path": "{LeftHand}/trackingState", - "interactions": "", - "processors": "", - "groups": "", - "action": "TrackingState", - "isComposite": false, - "isPartOfComposite": false - }, - { - "name": "", - "id": "e7d358e0-d459-419e-9f0b-ac40b9fc48dc", - "path": "{LeftHand}/devicePose/trackingState", - "interactions": "", - "processors": "", - "groups": "", - "action": "TrackerTrackingState", + "action": "PointerRotation", "isComposite": false, "isPartOfComposite": false }, @@ -613,18 +601,7 @@ "interactions": "", "processors": "", "groups": "", - "action": "AimPosition", - "isComposite": false, - "isPartOfComposite": false - }, - { - "name": "", - "id": "6ecaec07-8710-4084-94c5-efcc1f6a9dea", - "path": "{LeftHand}/pointerRotation", - "interactions": "", - "processors": "", - "groups": "", - "action": "AimRotation", + "action": "PointerPosition", "isComposite": false, "isPartOfComposite": false }, @@ -641,23 +618,243 @@ }, { "name": "", - "id": "6ffba069-2076-48e0-b33b-bab9598844da", - "path": "{LeftHand}/deviceRotation", + "id": "21ae7383-37ab-4b76-a2bf-5ac51f0f3d68", + "path": "{LeftHand}/haptic", "interactions": "", "processors": "", - "groups": "", - "action": "GripRotation", + "groups": "XR Usage", + "action": "Haptic", "isComposite": false, "isPartOfComposite": false }, { "name": "", - "id": "eb10cbdb-a9e7-4bec-b76c-1718f456ac14", - "path": "{LeftHand}/triggerTouched", + "id": "b72dfc23-7e0b-4dce-8fdd-87199f44763d", + "path": "{LeftHand}/pokePosition", + "interactions": "", + "processors": "", + "groups": "XR Usage", + "action": "PokePosition", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "95909a99-e8b7-442d-a780-1e51bae768c7", + "path": "{LeftHand}/pokeRotation", + "interactions": "", + "processors": "", + "groups": "XR Usage", + "action": "PokeRotation", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "ef50bd8f-94ba-4a17-88bd-e830c0050c46", + "path": "{LeftHand}/pinchPosition", + "interactions": "", + "processors": "", + "groups": "XR Usage", + "action": "PinchPosition", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "8177a21e-2065-47bd-bf2a-f3ec68204f77", + "path": "{LeftHand}/pinchRotation", + "interactions": "", + "processors": "", + "groups": "XR Usage", + "action": "PinchRotation", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "bf6c549b-a5ea-43dd-acc6-f346d46a293b", + "path": "{LeftHand}/pinchValue", + "interactions": "", + "processors": "", + "groups": "XR Usage", + "action": "PinchValue", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "d8bd5155-5910-497c-96ba-4a1983274f8a", + "path": "{LeftHand}/pinchReady", + "interactions": "", + "processors": "", + "groups": "XR Usage", + "action": "PinchReady", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "0feae31f-6f32-4267-a3cc-8aae8c4fda1c", + "path": "{LeftHand}/pointerActivateValue", + "interactions": "", + "processors": "", + "groups": "XR Usage", + "action": "PointerActivate", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "0322cb99-7096-4e19-82c7-8e8e12fe47ce", + "path": "{LeftHand}/pointerActivateReady", + "interactions": "", + "processors": "", + "groups": "XR Usage", + "action": "PointerActivateReady", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "8252b1eb-9413-4080-b488-57653224777e", + "path": "{LeftHand}/graspValue", + "interactions": "", + "processors": "", + "groups": "XR Usage", + "action": "GraspValue", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "78d208f0-0e3f-4687-8a1f-e3b5d12bfc04", + "path": "{LeftHand}/graspReady", + "interactions": "", + "processors": "", + "groups": "XR Usage", + "action": "GraspReady", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "f933235b-9764-4d4a-9eeb-6fa4349ad9f1", + "path": "{LeftHand}/palmPosition", + "interactions": "", + "processors": "", + "groups": "XR Usage", + "action": "PalmPosePosition", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "9362a799-90e0-4573-937b-b1036a12c159", + "path": "{LeftHand}/palmRotation", + "interactions": "", + "processors": "", + "groups": "XR Usage", + "action": "PalmPoseRotation", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "f21e1a19-432f-4b21-80f1-8d125378f5ef", + "path": "{LeftHand}/pinchPose", + "interactions": "", + "processors": "", + "groups": "XR Usage", + "action": "PinchPose", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "20f80365-788b-4b7f-b2a0-9a6658dc2a21", + "path": "{LeftHand}/pinchPose", + "interactions": "", + "processors": "", + "groups": "XR Usage", + "action": "PinchPose", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "5841423e-362a-451c-a426-1d63b5deaa39", + "path": "{LeftHand}/pokePose", + "interactions": "", + "processors": "", + "groups": "XR Usage", + "action": "PokePose", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "80aff0e0-ac53-4f66-9220-5136adb9223c", + "path": "{LeftHand}/pokePose", + "interactions": "", + "processors": "", + "groups": "XR Usage", + "action": "PokePose", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "5007351e-6380-4ab3-8405-5c091789fc29", + "path": "{LeftHand}/palmPose", + "interactions": "", + "processors": "", + "groups": "XR Usage", + "action": "PalmPose", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "42392da5-4328-46a7-95fe-9c0beec80b1f", + "path": "{LeftHand}/devicePose", + "interactions": "", + "processors": "", + "groups": "XR Usage", + "action": "GripPose", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "953d54c9-4180-44b0-8045-987c828aecec", + "path": "{LeftHand}/pointer", + "interactions": "", + "processors": "", + "groups": "XR Usage", + "action": "AimPose", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "4d8fde07-f5ac-4a1b-b3e9-783eccfc1d17", + "path": "{LeftHand}/isTracked", "interactions": "", "processors": "", "groups": "", - "action": "TriggerTouch", + "action": "IsTracked", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "134ee4a8-3562-4560-8003-ca3f9791d9e8", + "path": "{LeftHand}/trackingState", + "interactions": "", + "processors": "", + "groups": "", + "action": "TrackingState", "isComposite": false, "isPartOfComposite": false }, @@ -675,66 +872,11 @@ { "name": "", "id": "4a34abeb-b57c-4bef-8b3d-9b845377c543", - "path": "{LeftHand}/parkingTouched", + "path": "{LeftHand}/thumbrestTouched", "interactions": "", "processors": "", "groups": "", - "action": "ParkingTouch", - "isComposite": false, - "isPartOfComposite": false - }, - { - "name": "", - "id": "1c9e4cce-d602-410d-84ee-89cd4c31297d", - "path": "{LeftHand}/devicePosition", - "interactions": "", - "processors": "", - "groups": "", - "action": "PinchGripPosition", - "isComposite": false, - "isPartOfComposite": false - }, - { - "name": "", - "id": "668cc891-0715-4ec8-967e-93b9380e7ffe", - "path": "{LeftHand}/gripValue", - "interactions": "", - "processors": "", - "groups": "", - "action": "PinchGripStrength", - "isComposite": false, - "isPartOfComposite": false - }, - { - "name": "", - "id": "57cd85e4-bc88-4c76-bfe8-3263a6fcd1ea", - "path": "{LeftHand}/deviceRotation", - "interactions": "", - "processors": "", - "groups": "", - "action": "PinchGripRotation", - "isComposite": false, - "isPartOfComposite": false - }, - { - "name": "", - "id": "d4611d3c-02c6-42bb-a69b-09ee2dd86aae", - "path": "{LeftHand}/trackingState", - "interactions": "", - "processors": "", - "groups": "", - "action": "PinchGripTrackingState", - "isComposite": false, - "isPartOfComposite": false - }, - { - "name": "", - "id": "bad51413-32e9-480e-a371-64539c613f6a", - "path": "{LeftHand}/isTracked", - "interactions": "", - "processors": "", - "groups": "", - "action": "PinchGripIsTracked", + "action": "ThumbrestTouched", "isComposite": false, "isPartOfComposite": false } @@ -753,6 +895,15 @@ "interactions": "", "initialStateCheck": false }, + { + "name": "TriggerTouch", + "type": "Button", + "id": "9f8d7577-92b6-47e1-9843-4022bb3c83bb", + "expectedControlType": "Button", + "processors": "", + "interactions": "", + "initialStateCheck": false + }, { "name": "Trigger", "type": "Value", @@ -880,133 +1031,7 @@ "initialStateCheck": false }, { - "name": "IsTracked", - "type": "Value", - "id": "d1478f77-9424-45e1-bbe0-949fcfaec599", - "expectedControlType": "Analog", - "processors": "", - "interactions": "", - "initialStateCheck": true - }, - { - "name": "TrackingState", - "type": "Value", - "id": "c13385e1-8194-4e1b-87a8-076ae733a2f4", - "expectedControlType": "Integer", - "processors": "", - "interactions": "", - "initialStateCheck": true - }, - { - "name": "PinchStrength", - "type": "Value", - "id": "ad138355-d99b-4614-a881-6422986ab4ea", - "expectedControlType": "Analog", - "processors": "", - "interactions": "", - "initialStateCheck": true - }, - { - "name": "PinchPose", - "type": "PassThrough", - "id": "614a15a0-5f44-4110-a387-352976113b58", - "expectedControlType": "Pose", - "processors": "", - "interactions": "", - "initialStateCheck": false - }, - { - "name": "PinchGripIsTracked", - "type": "Value", - "id": "2a28f08b-a612-4137-a10f-ba2afb4c180b", - "expectedControlType": "Analog", - "processors": "", - "interactions": "", - "initialStateCheck": true - }, - { - "name": "PinchGripTrackingState", - "type": "Value", - "id": "61206512-f25e-4ce5-98c1-ec8942769bc1", - "expectedControlType": "Integer", - "processors": "", - "interactions": "", - "initialStateCheck": true - }, - { - "name": "PinchGripPosition", - "type": "Value", - "id": "093bd854-f03e-4208-8e67-77de1ea258e6", - "expectedControlType": "Vector3", - "processors": "", - "interactions": "", - "initialStateCheck": true - }, - { - "name": "PinchGripRotation", - "type": "Value", - "id": "d7921a48-e5cb-41a2-9dfb-86ced095dfe8", - "expectedControlType": "Quaternion", - "processors": "", - "interactions": "", - "initialStateCheck": true - }, - { - "name": "PinchGripStrength", - "type": "Value", - "id": "22fb6efb-6d9f-4ff9-95dc-fc3c7f44bd62", - "expectedControlType": "Analog", - "processors": "", - "interactions": "", - "initialStateCheck": true - }, - { - "name": "TrackerPrimaryButton", - "type": "Button", - "id": "05fe7922-a759-4f42-9c2c-caff14d10aa9", - "expectedControlType": "Button", - "processors": "", - "interactions": "", - "initialStateCheck": false - }, - { - "name": "TrackerMenu", - "type": "Button", - "id": "a07d4b52-3b1b-4ef4-b6d3-8ae87eb03acd", - "expectedControlType": "Button", - "processors": "", - "interactions": "", - "initialStateCheck": false - }, - { - "name": "TrackerPose", - "type": "PassThrough", - "id": "f393e45c-19c4-41fa-af6f-8a2bbc947e79", - "expectedControlType": "Pose", - "processors": "", - "interactions": "", - "initialStateCheck": false - }, - { - "name": "TrackerTracked", - "type": "Value", - "id": "c7517ed7-5bd2-4e77-8f35-3df9a75a4ac7", - "expectedControlType": "Analog", - "processors": "", - "interactions": "", - "initialStateCheck": true - }, - { - "name": "TrackerTrackingState", - "type": "Value", - "id": "28320227-ce5d-4c22-8088-07c90ee2cba2", - "expectedControlType": "Integer", - "processors": "", - "interactions": "", - "initialStateCheck": true - }, - { - "name": "AimPosition", + "name": "PointerPosition", "type": "Value", "id": "cdabdfa9-be08-4d02-a187-8ca7fb8de227", "expectedControlType": "Vector3", @@ -1015,7 +1040,7 @@ "initialStateCheck": true }, { - "name": "AimRotation", + "name": "PointerRotation", "type": "Value", "id": "9f9a934e-d0b6-4c5c-b6bc-56337dc99526", "expectedControlType": "Quaternion", @@ -1042,14 +1067,185 @@ "initialStateCheck": true }, { - "name": "TriggerTouch", + "name": "Haptic", + "type": "PassThrough", + "id": "6be1ce8f-f79b-4c85-bb4f-c7658d3f8e43", + "expectedControlType": "Haptic", + "processors": "", + "interactions": "", + "initialStateCheck": false + }, + { + "name": "PokePosition", + "type": "Value", + "id": "9935c10d-ea5d-465e-aa25-b0210900fce8", + "expectedControlType": "Vector3", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "PokeRotation", + "type": "Value", + "id": "1cab912e-af1b-48ee-954e-56db354bf1da", + "expectedControlType": "Quaternion", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "PinchPosition", + "type": "Value", + "id": "40503375-261d-4313-9832-24a03360f834", + "expectedControlType": "Vector3", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "PinchRotation", + "type": "Value", + "id": "c416ae8b-9650-4891-8194-55a7cd10ac5b", + "expectedControlType": "Quaternion", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "PinchValue", + "type": "Value", + "id": "96cce805-fe3a-4fcd-b41f-ca6ea65ab3d0", + "expectedControlType": "Axis", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "PinchReady", "type": "Button", - "id": "9f8d7577-92b6-47e1-9843-4022bb3c83bb", + "id": "3c953148-081c-4e8e-99c9-d6d03deac654", "expectedControlType": "Button", "processors": "", "interactions": "", "initialStateCheck": false }, + { + "name": "PointerActivate", + "type": "Value", + "id": "fb1ed2f5-3dca-4c5d-a721-96686c638084", + "expectedControlType": "Axis", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "PointerActivateReady", + "type": "Button", + "id": "cb059c4a-a108-4475-bff2-f6f2c2f31031", + "expectedControlType": "Button", + "processors": "", + "interactions": "", + "initialStateCheck": false + }, + { + "name": "GraspValue", + "type": "Value", + "id": "8d55fa00-593f-417c-b576-671cf9bf4bdb", + "expectedControlType": "Axis", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "GraspReady", + "type": "Button", + "id": "6c56f1f2-9ba8-4f14-8cbe-75c054edc696", + "expectedControlType": "Button", + "processors": "", + "interactions": "", + "initialStateCheck": false + }, + { + "name": "PalmPosePosition", + "type": "Value", + "id": "7effa698-08b7-47e9-bc94-59f31133768c", + "expectedControlType": "Vector3", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "PalmPoseRotation", + "type": "Value", + "id": "2b13527a-a47c-45af-aca3-1c063f84deb3", + "expectedControlType": "Quaternion", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "PinchPose", + "type": "Value", + "id": "6764a0d9-4f97-4b87-a6e2-19d02a7014a5", + "expectedControlType": "Pose", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "PokePose", + "type": "Value", + "id": "e48d4b55-7505-44c6-8536-c0fe584f9fc3", + "expectedControlType": "Pose", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "PalmPose", + "type": "Value", + "id": "26c03d43-7d0c-440d-a014-8a2fbfd68032", + "expectedControlType": "Pose", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "GripPose", + "type": "Value", + "id": "21315abc-6df6-492e-b46e-7e9b7ee603b5", + "expectedControlType": "Pose", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "AimPose", + "type": "Value", + "id": "d5233984-a1e5-4197-9105-d4f6c14a877a", + "expectedControlType": "Pose", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "IsTracked", + "type": "Value", + "id": "d1478f77-9424-45e1-bbe0-949fcfaec599", + "expectedControlType": "Analog", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "TrackingState", + "type": "Value", + "id": "c13385e1-8194-4e1b-87a8-076ae733a2f4", + "expectedControlType": "Integer", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, { "name": "GripTouch", "type": "Button", @@ -1060,7 +1256,7 @@ "initialStateCheck": false }, { - "name": "ParkingTouch", + "name": "ThumbrestTouched", "type": "Button", "id": "a3de7c95-047b-4186-ba20-3006516afbd4", "expectedControlType": "Button", @@ -1106,7 +1302,7 @@ { "name": "", "id": "0657f0e8-4c3b-45d4-a00b-fda175a6684d", - "path": "{RightHand}/{primaryTouch}", + "path": "{RightHand}/{PrimaryTouch}", "interactions": "", "processors": "", "groups": "", @@ -1248,100 +1444,12 @@ }, { "name": "", - "id": "c4a8f0e5-31fc-40a3-9495-525e04a99fcc", - "path": "{RightHand}/isTracked", + "id": "f32db05c-c036-499e-9e7c-d7a3634024c8", + "path": "{RightHand}/{TriggerTouch}", "interactions": "", "processors": "", "groups": "", - "action": "IsTracked", - "isComposite": false, - "isPartOfComposite": false - }, - { - "name": "", - "id": "a50c774b-47a3-4c8f-bd81-3be97f7648b5", - "path": "{RightHand}/selectValue", - "interactions": "", - "processors": "", - "groups": "", - "action": "PinchStrength", - "isComposite": false, - "isPartOfComposite": false - }, - { - "name": "", - "id": "dfb2da3b-f6db-4113-b401-4dfec601a58f", - "path": "{RightHand}/primaryButton", - "interactions": "", - "processors": "", - "groups": "", - "action": "TrackerPrimaryButton", - "isComposite": false, - "isPartOfComposite": false - }, - { - "name": "", - "id": "8a056d88-44d0-4fff-acd7-74a3c5d73801", - "path": "{RightHand}/pointerPose", - "interactions": "", - "processors": "", - "groups": "", - "action": "PinchPose", - "isComposite": false, - "isPartOfComposite": false - }, - { - "name": "", - "id": "857a4b86-52d9-4b2d-a7bb-0b9564499a0b", - "path": "{RightHand}/devicePose", - "interactions": "", - "processors": "", - "groups": "", - "action": "TrackerPose", - "isComposite": false, - "isPartOfComposite": false - }, - { - "name": "", - "id": "bcb085ed-72dd-4355-8ead-e4b93824a209", - "path": "{RightHand}/menu", - "interactions": "", - "processors": "", - "groups": "", - "action": "TrackerMenu", - "isComposite": false, - "isPartOfComposite": false - }, - { - "name": "", - "id": "f8dd3cd7-a078-4e5d-9fcb-78b350bf1f86", - "path": "{RightHand}/devicePose/isTracked", - "interactions": "", - "processors": "", - "groups": "", - "action": "TrackerTracked", - "isComposite": false, - "isPartOfComposite": false - }, - { - "name": "", - "id": "4b7dac17-1c8c-4ccd-ac11-820507868aa4", - "path": "{RightHand}/trackingState", - "interactions": "", - "processors": "", - "groups": "", - "action": "TrackingState", - "isComposite": false, - "isPartOfComposite": false - }, - { - "name": "", - "id": "39e3714b-8946-4226-9713-cb1b4b342825", - "path": "{RightHand}/devicePose/trackingState", - "interactions": "", - "processors": "", - "groups": "", - "action": "TrackerTrackingState", + "action": "TriggerTouch", "isComposite": false, "isPartOfComposite": false }, @@ -1352,7 +1460,7 @@ "interactions": "", "processors": "", "groups": "", - "action": "AimPosition", + "action": "PointerPosition", "isComposite": false, "isPartOfComposite": false }, @@ -1363,7 +1471,7 @@ "interactions": "", "processors": "", "groups": "", - "action": "AimRotation", + "action": "PointerRotation", "isComposite": false, "isPartOfComposite": false }, @@ -1391,12 +1499,243 @@ }, { "name": "", - "id": "f32db05c-c036-499e-9e7c-d7a3634024c8", - "path": "{RightHand}/triggerTouched", + "id": "f36967e5-cf69-4b7c-93fa-edf76ee86153", + "path": "{RightHand}/haptic", + "interactions": "", + "processors": "", + "groups": "XR Usage", + "action": "Haptic", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "87ff5450-b517-401d-b90d-3e6f848e75b7", + "path": "{RightHand}/pokePosition", + "interactions": "", + "processors": "", + "groups": "XR Usage", + "action": "PokePosition", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "f14f13ca-8da2-4e63-83c4-b68a78eab424", + "path": "{RightHand}/pokeRotation", + "interactions": "", + "processors": "", + "groups": "XR Usage", + "action": "PokeRotation", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "a20bff89-90cd-4384-b62c-eb91108f84d3", + "path": "{RightHand}/pinchPosition", + "interactions": "", + "processors": "", + "groups": "XR Usage", + "action": "PinchPosition", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "89204b63-d938-4388-93b5-adb41de059dd", + "path": "{RightHand}/pointerRotation", + "interactions": "", + "processors": "", + "groups": "XR Usage", + "action": "PinchRotation", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "eda35a4e-4556-4211-b2bc-bdfed3d1a28e", + "path": "{RightHand}/pinchValue", "interactions": "", "processors": "", "groups": "", - "action": "TriggerTouch", + "action": "PinchValue", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "33cf5d7b-cbb7-4191-a16e-3f29022742ba", + "path": "{RightHand}/pinchReady", + "interactions": "", + "processors": "", + "groups": "XR Usage", + "action": "PinchReady", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "a2084ad4-bee5-41ca-9842-55262e4676f1", + "path": "{RightHand}/pointerActivateValue", + "interactions": "", + "processors": "", + "groups": "XR Usage", + "action": "PointerActivate", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "5a3f4ccc-404e-408b-9a53-9abb7a76c9f2", + "path": "{RightHand}/pointerActivateReady", + "interactions": "", + "processors": "", + "groups": "XR Usage", + "action": "PointerActivateReady", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "4a1dbf7a-29f0-438f-af44-6045ac4bafdc", + "path": "{RightHand}/graspValue", + "interactions": "", + "processors": "", + "groups": "XR Usage", + "action": "GraspValue", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "0793b073-0257-464d-998e-2af510ddcc52", + "path": "{RightHand}/graspReady", + "interactions": "", + "processors": "", + "groups": "XR Usage", + "action": "GraspReady", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "65578fec-4ca6-4c65-892a-53fad42cda51", + "path": "{RightHand}/palmPosition", + "interactions": "", + "processors": "", + "groups": "XR Usage", + "action": "PalmPosePosition", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "6b601122-6e1e-4075-936d-9c7ef3ca95da", + "path": "{RightHand}/palmRotation", + "interactions": "", + "processors": "", + "groups": "XR Usage", + "action": "PalmPoseRotation", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "8af3a192-50dd-4a21-ab2b-f81f27fffdf0", + "path": "{RightHand}/pinchPose", + "interactions": "", + "processors": "", + "groups": "XR Usage", + "action": "PinchPose", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "2853aa00-dbaa-445e-964d-f69fa2079019", + "path": "{RightHand}/pinchPose", + "interactions": "", + "processors": "", + "groups": "XR Usage", + "action": "PinchPose", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "2b72ebbd-268f-40fe-af08-e32d5a87689c", + "path": "{RightHand}/pokePose", + "interactions": "", + "processors": "", + "groups": "XR Usage", + "action": "PokePose", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "b0de6fb4-9427-4e5c-8af1-9bbc0bd7f97b", + "path": "{RightHand}/pokePose", + "interactions": "", + "processors": "", + "groups": "XR Usage", + "action": "PokePose", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "08536d41-f3d5-4ad0-8106-09de492060d7", + "path": "{RightHand}/palmPose", + "interactions": "", + "processors": "", + "groups": "XR Usage", + "action": "PalmPose", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "3dff52aa-076e-411f-b79e-cc8712caeab8", + "path": "{RightHand}/devicePose", + "interactions": "", + "processors": "", + "groups": "XR Usage", + "action": "GripPose", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "b6f0bc08-3300-48f4-b5ca-ef9307e1062d", + "path": "{RightHand}/pointer", + "interactions": "", + "processors": "", + "groups": "XR Usage", + "action": "AimPose", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "c4a8f0e5-31fc-40a3-9495-525e04a99fcc", + "path": "{RightHand}/isTracked", + "interactions": "", + "processors": "", + "groups": "", + "action": "IsTracked", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "4b7dac17-1c8c-4ccd-ac11-820507868aa4", + "path": "{RightHand}/trackingState", + "interactions": "", + "processors": "", + "groups": "", + "action": "TrackingState", "isComposite": false, "isPartOfComposite": false }, @@ -1414,66 +1753,11 @@ { "name": "", "id": "406f7078-592d-449c-88ed-231dbeb70f37", - "path": "{RightHand}/parkingTouched", + "path": "{RightHand}/thumbrestTouched", "interactions": "", "processors": "", "groups": "", - "action": "ParkingTouch", - "isComposite": false, - "isPartOfComposite": false - }, - { - "name": "", - "id": "7bf75154-0ff3-47fc-9d00-d53305db28cc", - "path": "{RightHand}/devicePosition", - "interactions": "", - "processors": "", - "groups": "", - "action": "PinchGripPosition", - "isComposite": false, - "isPartOfComposite": false - }, - { - "name": "", - "id": "9049c343-54da-4ef3-a7c9-36b97f4b6f61", - "path": "{RightHand}/gripValue", - "interactions": "", - "processors": "", - "groups": "", - "action": "PinchGripStrength", - "isComposite": false, - "isPartOfComposite": false - }, - { - "name": "", - "id": "5d9eb752-27f1-4118-8e1e-03a3203b3f94", - "path": "{RightHand}/deviceRotation", - "interactions": "", - "processors": "", - "groups": "", - "action": "PinchGripRotation", - "isComposite": false, - "isPartOfComposite": false - }, - { - "name": "", - "id": "12f62769-2c40-43b4-9a3c-cdd3f187af68", - "path": "{RightHand}/trackingState", - "interactions": "", - "processors": "", - "groups": "", - "action": "PinchGripTrackingState", - "isComposite": false, - "isPartOfComposite": false - }, - { - "name": "", - "id": "fab9f339-afa4-42ce-8fb6-e474b4255d92", - "path": "{RightHand}/isTracked", - "interactions": "", - "processors": "", - "groups": "", - "action": "PinchGripIsTracked", + "action": "ThumbrestTouched", "isComposite": false, "isPartOfComposite": false } @@ -1500,15 +1784,6 @@ "processors": "", "interactions": "", "initialStateCheck": true - }, - { - "name": "eyePose", - "type": "PassThrough", - "id": "548c3f06-0eab-482f-b591-af50014a563e", - "expectedControlType": "Pose", - "processors": "", - "interactions": "", - "initialStateCheck": false } ], "bindings": [ @@ -1533,17 +1808,6 @@ "action": "hmdRotation", "isComposite": false, "isPartOfComposite": false - }, - { - "name": "", - "id": "8b58750f-bfb3-41d4-8dc5-77baabfc7475", - "path": "/pose", - "interactions": "", - "processors": "", - "groups": "", - "action": "eyePose", - "isComposite": false, - "isPartOfComposite": false } ] }, @@ -1632,6 +1896,737 @@ "action": "Down", "isComposite": false, "isPartOfComposite": false + }, + { + "name": "", + "id": "d28de5ca-4e64-4750-b2f5-c080c9af8eb8", + "path": "/selectValue", + "interactions": "Press", + "processors": "", + "groups": "", + "action": "Down", + "isComposite": false, + "isPartOfComposite": false + } + ] + }, + { + "name": "EyeGaze", + "id": "6532b117-4f65-48ed-99d9-0fb75098c70e", + "actions": [ + { + "name": "Tracked", + "type": "Button", + "id": "b0d47f30-0bec-41bd-8ba8-10ece388b9f2", + "expectedControlType": "Button", + "processors": "", + "interactions": "", + "initialStateCheck": false + }, + { + "name": "EyePosition", + "type": "Value", + "id": "9a9b88ac-c411-4d88-afe6-6ba4d4d3032f", + "expectedControlType": "Vector3", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "EyeRotation", + "type": "Value", + "id": "5d71d1ff-f098-4cd5-b828-063840b54916", + "expectedControlType": "Quaternion", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "EyePose", + "type": "PassThrough", + "id": "b546e748-7403-49db-8503-6338a072f2e7", + "expectedControlType": "Pose", + "processors": "", + "interactions": "", + "initialStateCheck": false + } + ], + "bindings": [ + { + "name": "", + "id": "20d241ca-21dd-4ffc-87a9-c71b940c2880", + "path": "/pose/isTracked", + "interactions": "", + "processors": "", + "groups": "XR Usage", + "action": "Tracked", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "958f4b02-7bde-473c-aacb-9d71f68f26ee", + "path": "/pose/position", + "interactions": "", + "processors": "", + "groups": "XR Usage", + "action": "EyePosition", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "0e90f86c-7d3b-4c84-a92d-f3e377ba4b1e", + "path": "/pose/rotation", + "interactions": "", + "processors": "", + "groups": "XR Usage", + "action": "EyeRotation", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "53c4a446-815f-4a63-8c7a-47e62e58e2e2", + "path": "/pose", + "interactions": "", + "processors": "", + "groups": "", + "action": "EyePose", + "isComposite": false, + "isPartOfComposite": false + } + ] + }, + { + "name": "LeftHandInteraction", + "id": "d2d07005-2131-484b-84aa-b4249e883df6", + "actions": [ + { + "name": "GripValue", + "type": "Value", + "id": "a4544734-4795-4406-8cb1-ace9cd298648", + "expectedControlType": "Analog", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "SelectValue", + "type": "Value", + "id": "23316728-682c-4d8d-8710-b5e62a12d036", + "expectedControlType": "Analog", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "IsTracked", + "type": "Value", + "id": "aab2bef5-1a89-469c-be6c-926e32f82bd0", + "expectedControlType": "Analog", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "TrackingState", + "type": "Value", + "id": "d2d2119c-9a31-4aac-ac8e-5e6943c63abf", + "expectedControlType": "Integer", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "DevicePose", + "type": "PassThrough", + "id": "cce2dab3-f058-4b22-856f-ddd11265bd2f", + "expectedControlType": "Pose", + "processors": "", + "interactions": "", + "initialStateCheck": false + }, + { + "name": "DevicePosition", + "type": "Value", + "id": "bb8d1185-1e7e-413f-b31a-c381bcb30e99", + "expectedControlType": "Vector3", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "DeviceRotation", + "type": "Value", + "id": "b39cdd40-0fa0-4d80-87c6-66515c44cdd3", + "expectedControlType": "Quaternion", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "Pointer", + "type": "PassThrough", + "id": "368450bc-6252-40f7-ae7e-d33f1beb9265", + "expectedControlType": "Pose", + "processors": "", + "interactions": "", + "initialStateCheck": false + } + ], + "bindings": [ + { + "name": "", + "id": "4e2de040-50f1-493b-92ef-8e7fc50e636f", + "path": "{LeftHand}/gripValue", + "interactions": "", + "processors": "", + "groups": "", + "action": "GripValue", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "0478c468-23fd-4ec2-adb0-97636bf8953a", + "path": "{LeftHand}/deviceRotation", + "interactions": "", + "processors": "", + "groups": "", + "action": "DeviceRotation", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "641de56c-e938-435a-a53e-27953f0d1d26", + "path": "{LeftHand}/pointerPose", + "interactions": "", + "processors": "", + "groups": "", + "action": "Pointer", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "18ce18c6-fd05-4e8c-babe-0d210c8072a7", + "path": "{LeftHand}/devicePose", + "interactions": "", + "processors": "", + "groups": "", + "action": "DevicePose", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "68336b0c-b052-4f6b-9ef8-ce9cb2c0f29a", + "path": "{LeftHand}/selectValue", + "interactions": "", + "processors": "", + "groups": "", + "action": "SelectValue", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "75f0df75-85ba-49d7-8c19-1be4fdbb0f54", + "path": "{LeftHand}/devicePosition", + "interactions": "", + "processors": "", + "groups": "", + "action": "DevicePosition", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "d912f46a-cb75-4ee7-b0dc-d426df8f9eb5", + "path": "{LeftHand}/isTracked", + "interactions": "", + "processors": "", + "groups": "", + "action": "IsTracked", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "d2bc0ddf-c7c0-468b-b40e-3ac192707128", + "path": "{LeftHand}/trackingState", + "interactions": "", + "processors": "", + "groups": "", + "action": "TrackingState", + "isComposite": false, + "isPartOfComposite": false + } + ] + }, + { + "name": "RightHandInteraction", + "id": "83941ec2-f80b-4112-9d20-e80de1a7dd80", + "actions": [ + { + "name": "GripValue", + "type": "Value", + "id": "b518105d-2f80-4210-ae9f-7f76f2534d75", + "expectedControlType": "Analog", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "SelectValue", + "type": "Value", + "id": "667040dc-8b07-4ac3-8dad-5a3cb95d2776", + "expectedControlType": "Analog", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "IsTracked", + "type": "Value", + "id": "66183948-8c96-4210-9dbf-714b6902a0f9", + "expectedControlType": "Analog", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "TrackingState", + "type": "Value", + "id": "449b4bae-3fc1-482c-ad2a-245e7e61f56f", + "expectedControlType": "Integer", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "DevicePose", + "type": "PassThrough", + "id": "cea4014b-5d47-425e-9fbd-23d1928a2942", + "expectedControlType": "Pose", + "processors": "", + "interactions": "", + "initialStateCheck": false + }, + { + "name": "DevicePosition", + "type": "Value", + "id": "062e3e26-1292-41e5-a66e-2ac5d7f4ad87", + "expectedControlType": "Vector3", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "DeviceRotation", + "type": "Value", + "id": "79c41bc6-ef24-480e-86b5-ee6b788905e3", + "expectedControlType": "Quaternion", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "Pointer", + "type": "PassThrough", + "id": "2ec06185-1164-40a6-a1dc-447e85a6dbf4", + "expectedControlType": "Pose", + "processors": "", + "interactions": "", + "initialStateCheck": false + } + ], + "bindings": [ + { + "name": "", + "id": "61278f35-716c-43fd-be90-708f9fad7679", + "path": "{RightHand}/gripValue", + "interactions": "", + "processors": "", + "groups": "", + "action": "GripValue", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "b6310bc2-9357-474f-9697-08ce3e608657", + "path": "{RightHand}/deviceRotation", + "interactions": "", + "processors": "", + "groups": "", + "action": "DeviceRotation", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "365925ba-5c77-4b5b-9373-3c48318a2130", + "path": "{RightHand}/pointerPose", + "interactions": "", + "processors": "", + "groups": "", + "action": "Pointer", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "067cd021-0db5-43ba-9bfe-6702a28494b2", + "path": "{RightHand}/devicePose", + "interactions": "", + "processors": "", + "groups": "", + "action": "DevicePose", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "96e71260-7382-47a2-ad38-a9b9256c02e4", + "path": "{RightHand}/selectValue", + "interactions": "", + "processors": "", + "groups": "", + "action": "SelectValue", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "63f8a4db-e55f-4fae-a798-d5f58f0e6596", + "path": "{RightHand}/devicePosition", + "interactions": "", + "processors": "", + "groups": "", + "action": "DevicePosition", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "f8365142-5e67-4e8d-b65b-aa2d71d7ca80", + "path": "{RightHand}/isTracked", + "interactions": "", + "processors": "", + "groups": "", + "action": "IsTracked", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "e3d5adc4-72a7-4f82-9dc3-62b1d8670b74", + "path": "{RightHand}/trackingState", + "interactions": "", + "processors": "", + "groups": "", + "action": "TrackingState", + "isComposite": false, + "isPartOfComposite": false + } + ] + }, + { + "name": "LeftWristTracker", + "id": "5aeb405c-f18d-4e32-9f96-631f25da1f56", + "actions": [ + { + "name": "IsTracked", + "type": "Value", + "id": "c5913e73-42a4-4a6f-8c4a-5d1d593539f1", + "expectedControlType": "Analog", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "TrackingState", + "type": "Value", + "id": "ff3470e9-cd3d-4dd6-a0a5-ef4ac92cd845", + "expectedControlType": "Integer", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "DevicePose", + "type": "PassThrough", + "id": "aa7adefb-5459-4d70-ab70-85ab300129b5", + "expectedControlType": "Pose", + "processors": "", + "interactions": "", + "initialStateCheck": false + }, + { + "name": "DevicePosition", + "type": "Value", + "id": "61d0904c-1a28-4f39-9c7c-1443ff634e97", + "expectedControlType": "Vector3", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "DeviceRotation", + "type": "Value", + "id": "61ae0f08-54a2-467a-a66f-d78d94311fe6", + "expectedControlType": "Quaternion", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "PrimaryButton", + "type": "Button", + "id": "a10dd602-4ad3-40b7-bda5-5b8ec16968e7", + "expectedControlType": "Button", + "processors": "", + "interactions": "", + "initialStateCheck": false + }, + { + "name": "Menu", + "type": "Button", + "id": "aa3dc9a5-6c8b-4d2c-a42a-e85b05dea475", + "expectedControlType": "Button", + "processors": "", + "interactions": "", + "initialStateCheck": false + } + ], + "bindings": [ + { + "name": "", + "id": "b4e05bf6-73b2-4d30-a265-954e9224c8b7", + "path": "{LeftHand}/menu", + "interactions": "", + "processors": "", + "groups": "", + "action": "Menu", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "d43375d9-f7ea-4fea-bce8-61cda6345afc", + "path": "{LeftHand}/isTracked", + "interactions": "", + "processors": "", + "groups": "", + "action": "IsTracked", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "a118aad9-ec3f-4de9-a20d-bf571616ad9e", + "path": "{LeftHand}/primaryButton", + "interactions": "", + "processors": "", + "groups": "", + "action": "PrimaryButton", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "466c8106-27f3-4dd7-bbfc-357730160c31", + "path": "{LeftHand}/trackingState", + "interactions": "", + "processors": "", + "groups": "", + "action": "TrackingState", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "0d45feb5-d3fc-48c9-b0b8-e30f427721a5", + "path": "{LeftHand}/devicePose", + "interactions": "", + "processors": "", + "groups": "", + "action": "DevicePose", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "26bf9ad8-4faf-49c8-a63d-3c3bb44708b7", + "path": "{LeftHand}/devicePosition", + "interactions": "", + "processors": "", + "groups": "", + "action": "DevicePosition", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "8a8b7ce7-b6ab-4b19-81ee-354f9df3bf78", + "path": "{LeftHand}/deviceRotation", + "interactions": "", + "processors": "", + "groups": "", + "action": "DeviceRotation", + "isComposite": false, + "isPartOfComposite": false + } + ] + }, + { + "name": "RightWristTracker", + "id": "55dad619-d42a-4df9-b440-9e59d2984bfb", + "actions": [ + { + "name": "IsTracked", + "type": "Value", + "id": "10337bea-90e2-4c16-a009-8a76dd6427c1", + "expectedControlType": "Analog", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "TrackingState", + "type": "Value", + "id": "7148df9a-bfb5-4414-944c-0a70855ea38b", + "expectedControlType": "Integer", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "DevicePose", + "type": "PassThrough", + "id": "e8c00240-d3c7-40d8-87dd-35189faa78e6", + "expectedControlType": "Pose", + "processors": "", + "interactions": "", + "initialStateCheck": false + }, + { + "name": "DevicePosition", + "type": "Value", + "id": "eb5d3c3e-e851-42c2-b253-418870d1351d", + "expectedControlType": "Vector3", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "DeviceRotation", + "type": "Value", + "id": "c5908604-965b-43cc-a181-b60b175f723a", + "expectedControlType": "Quaternion", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "PrimaryButton", + "type": "Button", + "id": "6e81482b-ac29-4761-9c03-60154fc46fc8", + "expectedControlType": "Button", + "processors": "", + "interactions": "", + "initialStateCheck": false + }, + { + "name": "Menu", + "type": "Button", + "id": "c26c25be-ec63-44dc-ba53-8fcfe723f817", + "expectedControlType": "Button", + "processors": "", + "interactions": "", + "initialStateCheck": false + } + ], + "bindings": [ + { + "name": "", + "id": "37f8a451-7796-4bea-95c1-8c6a727e4f64", + "path": "{RightHand}/menu", + "interactions": "", + "processors": "", + "groups": "", + "action": "Menu", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "ab563289-9657-4ff3-b167-ccb46054154a", + "path": "{RightHand}/isTracked", + "interactions": "", + "processors": "", + "groups": "", + "action": "IsTracked", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "d060f6ac-c122-4c3e-8f50-962a66820558", + "path": "{RightHand}/primaryButton", + "interactions": "", + "processors": "", + "groups": "", + "action": "PrimaryButton", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "eab46027-1107-4e76-968e-030b27d5b134", + "path": "{RightHand}/trackingState", + "interactions": "", + "processors": "", + "groups": "", + "action": "TrackingState", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "d711c2d9-787d-43a0-8d04-41733fe116d2", + "path": "{RightHand}/devicePose", + "interactions": "", + "processors": "", + "groups": "", + "action": "DevicePose", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "c7f7fa3e-64c3-44e4-a794-c4eb4f4f6599", + "path": "{RightHand}/devicePosition", + "interactions": "", + "processors": "", + "groups": "", + "action": "DevicePosition", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "3a570970-c358-430e-8ce3-ce9d180377e8", + "path": "{RightHand}/deviceRotation", + "interactions": "", + "processors": "", + "groups": "", + "action": "DeviceRotation", + "isComposite": false, + "isPartOfComposite": false } ] }, @@ -2542,6 +3537,494 @@ "isPartOfComposite": false } ] + }, + { + "name": "ViveTracker", + "id": "2d526bb3-c870-48e3-a549-00c1fd2bf5f4", + "actions": [ + { + "name": "LeftFootPosition", + "type": "Value", + "id": "1e636c45-bd1f-4e14-95cc-fcd485943330", + "expectedControlType": "Vector3", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "LeftFootRotation", + "type": "Value", + "id": "55e4fad0-3580-4683-98de-0e207ccca408", + "expectedControlType": "Quaternion", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "RightFootPosition", + "type": "Value", + "id": "b7e552f0-5497-493d-9696-ad5829a2a6f2", + "expectedControlType": "Vector3", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "RightFootRotation", + "type": "Value", + "id": "98b18bad-1d18-43f9-9dc5-e4021994c482", + "expectedControlType": "Quaternion", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "LeftShoulderPosition", + "type": "Value", + "id": "4d3257d7-17eb-4aa2-9079-3b769661c78f", + "expectedControlType": "Vector3", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "LeftShoulderRotation", + "type": "Value", + "id": "f9598bb0-d291-41f3-8da4-5725159f6659", + "expectedControlType": "Quaternion", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "RightShoulderPosition", + "type": "Value", + "id": "85572d6a-5f05-4a9c-8a90-acb18ea38c8d", + "expectedControlType": "Vector3", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "RightShoulderRotation", + "type": "Value", + "id": "8080f6d2-ec00-4866-b8bb-19388ea1a39c", + "expectedControlType": "Quaternion", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "LeftElbowPosition", + "type": "Value", + "id": "8e9bf560-0f3d-482d-a81e-90b1436fa678", + "expectedControlType": "Vector3", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "LeftElbowRotation", + "type": "Value", + "id": "da9b04f8-c382-4ce8-b56c-4c344674e207", + "expectedControlType": "Quaternion", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "RightElbowPosition", + "type": "Value", + "id": "cf7499e7-66c1-4784-92e6-776a4a94d694", + "expectedControlType": "Vector3", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "RightElbowRotation", + "type": "Value", + "id": "cc8adc2f-6d24-424b-a70f-04fbb016be09", + "expectedControlType": "Quaternion", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "LeftKneePosition", + "type": "Value", + "id": "ecf9f330-95ed-4d2d-a766-5e37fa9a707d", + "expectedControlType": "Vector3", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "LeftKneeRotation", + "type": "Value", + "id": "a44c0e40-ca7c-43c7-b284-21f6c2a63480", + "expectedControlType": "Quaternion", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "RightKneePosition", + "type": "Value", + "id": "c51c13bc-e260-4126-b9ce-09fad7ee4eae", + "expectedControlType": "Vector3", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "RightKneeRotation", + "type": "Value", + "id": "6a9c8439-db66-4ecc-9f14-6a8f127da131", + "expectedControlType": "Quaternion", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "WaistPosition", + "type": "Value", + "id": "30f078cf-38fe-4476-80fa-37b4f0de1b6f", + "expectedControlType": "Vector3", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "WaistRotation", + "type": "Value", + "id": "31479e4e-0139-4825-ae25-3b3d5c9d503e", + "expectedControlType": "Quaternion", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "ChestPosition", + "type": "Value", + "id": "05ee5b09-2a9e-446f-949e-5c952b4c06c4", + "expectedControlType": "Vector3", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "ChestRotation", + "type": "Value", + "id": "d3c0702b-907b-45d6-9692-ec007626120c", + "expectedControlType": "Quaternion", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "CameraPosition", + "type": "Value", + "id": "18724771-01de-49a7-8e76-deadaf59847f", + "expectedControlType": "Vector3", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "CameraRotation", + "type": "Value", + "id": "94a74d55-2b74-409d-8530-7f3ff32ce214", + "expectedControlType": "Quaternion", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "KeyboardPosition", + "type": "Value", + "id": "fbb72cbf-6e51-4b47-aa74-77c8d1df178a", + "expectedControlType": "Vector3", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "KeyboardRotation", + "type": "Value", + "id": "e657b44d-6846-4cdc-a0c2-49b587bbc87a", + "expectedControlType": "Quaternion", + "processors": "", + "interactions": "", + "initialStateCheck": true + } + ], + "bindings": [ + { + "name": "", + "id": "9ce39e1c-27b7-48d0-a481-f1bee91f2dd8", + "path": "{Left Foot}/devicePosition", + "interactions": "", + "processors": "", + "groups": "", + "action": "LeftFootPosition", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "b1194177-f841-487e-ac2c-a67ee0af439d", + "path": "{Left Foot}/deviceRotation", + "interactions": "", + "processors": "", + "groups": "", + "action": "LeftFootRotation", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "1f57a0b1-95aa-4af4-aa08-370729cf1a73", + "path": "{Right Foot}/devicePosition", + "interactions": "", + "processors": "", + "groups": "", + "action": "RightFootPosition", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "57d4072c-7cd7-4836-bac7-7bf0effbdf43", + "path": "{Right Foot}/deviceRotation", + "interactions": "", + "processors": "", + "groups": "", + "action": "RightFootRotation", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "4a4bdd9a-0121-4cd5-ae0b-a19c8192b98f", + "path": "{Left Shoulder}/devicePosition", + "interactions": "", + "processors": "", + "groups": "", + "action": "LeftShoulderPosition", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "86aef392-6bce-4796-a64f-e0e7f0e108dd", + "path": "{Left Shoulder}/deviceRotation", + "interactions": "", + "processors": "", + "groups": "", + "action": "LeftShoulderRotation", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "001e0422-7376-4eb0-ae9f-3e20c39f919d", + "path": "{Right Shoulder}/devicePosition", + "interactions": "", + "processors": "", + "groups": "", + "action": "RightShoulderPosition", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "c82a9066-aa42-42b9-be5c-575713238f1a", + "path": "{Right Shoulder}/deviceRotation", + "interactions": "", + "processors": "", + "groups": "", + "action": "RightShoulderRotation", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "e1910b26-982c-43d7-b370-3d118ca42028", + "path": "{Left Elbow}/devicePosition", + "interactions": "", + "processors": "", + "groups": "", + "action": "LeftElbowPosition", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "842f3215-f98b-4ba1-81c2-3219d5017e70", + "path": "{Left Elbow}/deviceRotation", + "interactions": "", + "processors": "", + "groups": "", + "action": "LeftElbowRotation", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "95e5c25c-a508-4053-b9c1-116d41807383", + "path": "{Right Elbow}/devicePosition", + "interactions": "", + "processors": "", + "groups": "", + "action": "RightElbowPosition", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "2e95dc28-99cf-45cd-8bab-dadb1b63ffbe", + "path": "{Right Elbow}/deviceRotation", + "interactions": "", + "processors": "", + "groups": "", + "action": "RightElbowRotation", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "e57be07d-daca-402a-8239-f39fd80e826a", + "path": "{Left Knee}/devicePosition", + "interactions": "", + "processors": "", + "groups": "", + "action": "LeftKneePosition", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "ee6d8b85-ecf6-4e76-a801-0cf6f501d57b", + "path": "{Left Knee}/deviceRotation", + "interactions": "", + "processors": "", + "groups": "", + "action": "LeftKneeRotation", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "c9239af7-d02c-45f0-bcd7-9d0207789dcf", + "path": "{Right Knee}/devicePosition", + "interactions": "", + "processors": "", + "groups": "", + "action": "RightKneePosition", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "a80e6bb9-edf2-43e8-b107-f67547aef996", + "path": "{Right Knee}/deviceRotation", + "interactions": "", + "processors": "", + "groups": "", + "action": "RightKneeRotation", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "e0f6fa2a-04b6-46b3-81f8-7b227ceacb83", + "path": "{Waist}/devicePosition", + "interactions": "", + "processors": "", + "groups": "", + "action": "WaistPosition", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "fdfdae21-2dde-401f-9f89-79d7d9648196", + "path": "{Waist}/deviceRotation", + "interactions": "", + "processors": "", + "groups": "", + "action": "WaistRotation", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "6549a656-ee99-47a4-b2e8-b4ff1bc8832c", + "path": "{Chest}/devicePosition", + "interactions": "", + "processors": "", + "groups": "", + "action": "ChestPosition", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "7f44beb2-2d5a-4108-bda4-e24363e460e9", + "path": "{Chest}/deviceRotation", + "interactions": "", + "processors": "", + "groups": "", + "action": "ChestRotation", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "0713f4ca-4413-4460-b9c8-d7a2ce41a982", + "path": "{Camera}/devicePosition", + "interactions": "", + "processors": "", + "groups": "", + "action": "CameraPosition", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "c5abcde4-244a-45f8-9c40-95e04d80a1f7", + "path": "{Camera}/deviceRotation", + "interactions": "", + "processors": "", + "groups": "", + "action": "CameraRotation", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "a844fbd4-86ac-43d3-9112-40537e321b25", + "path": "{Keyboard}/devicePosition", + "interactions": "", + "processors": "", + "groups": "", + "action": "KeyboardPosition", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "6badc121-5e7f-4ac2-8827-ad63f1b0f07d", + "path": "{Keyboard}/deviceRotation", + "interactions": "", + "processors": "", + "groups": "", + "action": "KeyboardRotation", + "isComposite": false, + "isPartOfComposite": false + } + ] } ], "controlSchemes": [ diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/Fonts.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/Fonts.meta new file mode 100644 index 0000000..3a63de6 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/Fonts.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1f6dd7de299094e418729d217e74b3a7 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/Fonts/NotoSansTraditionalChinese.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/Fonts/NotoSansTraditionalChinese.meta new file mode 100644 index 0000000..85ca774 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/Fonts/NotoSansTraditionalChinese.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ed364427093dd6f4e8918a4c893d52c2 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/Fonts/NotoSansTraditionalChinese/NotoSansTC-VariableFont_wght.ttf b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/Fonts/NotoSansTraditionalChinese/NotoSansTC-VariableFont_wght.ttf new file mode 100644 index 0000000..00d1a3d --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/Fonts/NotoSansTraditionalChinese/NotoSansTC-VariableFont_wght.ttf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2e8fa01ed3024404cad6f84931e4526d21bb2011a353c70eae211a64a7a98e16 +size 11876984 diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/Fonts/NotoSansTraditionalChinese/NotoSansTC-VariableFont_wght.ttf.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/Fonts/NotoSansTraditionalChinese/NotoSansTC-VariableFont_wght.ttf.meta new file mode 100644 index 0000000..22a1ac2 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/Fonts/NotoSansTraditionalChinese/NotoSansTC-VariableFont_wght.ttf.meta @@ -0,0 +1,21 @@ +fileFormatVersion: 2 +guid: cc25d6ba2db45974fb94609b8773fd0d +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Noto Sans TC + fallbackFontReferences: [] + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/Fonts/NotoSansTraditionalChinese/NotoSansTC-VariableFont_wghtSDF.asset b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/Fonts/NotoSansTraditionalChinese/NotoSansTC-VariableFont_wghtSDF.asset new file mode 100644 index 0000000..7ed90ce --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/Fonts/NotoSansTraditionalChinese/NotoSansTC-VariableFont_wghtSDF.asset @@ -0,0 +1,2015 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &-3226401479495081048 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: NotoSansTC-VariableFont_wght Atlas Material + m_Shader: {fileID: 4800000, guid: 68e6db2ebdc24f95958faec2be5558d6, type: 3} + m_ValidKeywords: [] + m_InvalidKeywords: [] + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _Cube: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _FaceTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2625080642630264354} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OutlineTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _Ambient: 0.5 + - _Bevel: 0.5 + - _BevelClamp: 0 + - _BevelOffset: 0 + - _BevelRoundness: 0 + - _BevelWidth: 0 + - _BumpFace: 0 + - _BumpOutline: 0 + - _ColorMask: 15 + - _CullMode: 0 + - _Diffuse: 0.5 + - _FaceDilate: 0 + - _FaceUVSpeedX: 0 + - _FaceUVSpeedY: 0 + - _GlowInner: 0.05 + - _GlowOffset: 0 + - _GlowOuter: 0.05 + - _GlowPower: 0.75 + - _GradientScale: 10 + - _LightAngle: 3.1416 + - _MaskSoftnessX: 0 + - _MaskSoftnessY: 0 + - _OutlineSoftness: 0 + - _OutlineUVSpeedX: 0 + - _OutlineUVSpeedY: 0 + - _OutlineWidth: 0 + - _PerspectiveFilter: 0.875 + - _Reflectivity: 10 + - _ScaleRatioA: 0.9 + - _ScaleRatioB: 0.73125 + - _ScaleRatioC: 0.73125 + - _ScaleX: 1 + - _ScaleY: 1 + - _ShaderFlags: 0 + - _Sharpness: 0 + - _SpecularPower: 2 + - _Stencil: 0 + - _StencilComp: 8 + - _StencilOp: 0 + - _StencilReadMask: 255 + - _StencilWriteMask: 255 + - _TextureHeight: 1024 + - _TextureWidth: 1024 + - _UnderlayDilate: 0 + - _UnderlayOffsetX: 0 + - _UnderlayOffsetY: 0 + - _UnderlaySoftness: 0 + - _VertexOffsetX: 0 + - _VertexOffsetY: 0 + - _WeightBold: 0.75 + - _WeightNormal: 0 + m_Colors: + - _ClipRect: {r: -32767, g: -32767, b: 32767, a: 32767} + - _EnvMatrixRotation: {r: 0, g: 0, b: 0, a: 0} + - _FaceColor: {r: 1, g: 1, b: 1, a: 1} + - _GlowColor: {r: 0, g: 1, b: 0, a: 0.5} + - _MaskCoord: {r: 0, g: 0, b: 32767, a: 32767} + - _OutlineColor: {r: 0, g: 0, b: 0, a: 1} + - _ReflectFaceColor: {r: 0, g: 0, b: 0, a: 1} + - _ReflectOutlineColor: {r: 0, g: 0, b: 0, a: 1} + - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} + - _UnderlayColor: {r: 0, g: 0, b: 0, a: 0.5} + m_BuildTextureStacks: [] +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 71c1514a6bd24e1e882cebbe1904ce04, type: 3} + m_Name: NotoSansTC-VariableFont_wghtSDF + m_EditorClassIdentifier: + hashCode: 1163859896 + material: {fileID: -3226401479495081048} + materialHashCode: -2068598120 + m_Version: 1.1.0 + m_SourceFontFileGUID: cc25d6ba2db45974fb94609b8773fd0d + m_SourceFontFile_EditorRef: {fileID: 12800000, guid: cc25d6ba2db45974fb94609b8773fd0d, type: 3} + m_SourceFontFile: {fileID: 12800000, guid: cc25d6ba2db45974fb94609b8773fd0d, type: 3} + m_AtlasPopulationMode: 1 + m_FaceInfo: + m_FaceIndex: 0 + m_FamilyName: Noto Sans TC + m_StyleName: Thin + m_PointSize: 90 + m_Scale: 1 + m_UnitsPerEM: 1000 + m_LineHeight: 130.32 + m_AscentLine: 104.4 + m_CapLine: 66 + m_MeanLine: 48 + m_Baseline: 0 + m_DescentLine: -25.92 + m_SuperscriptOffset: 104.4 + m_SuperscriptSize: 0.5 + m_SubscriptOffset: -25.92 + m_SubscriptSize: 0.5 + m_UnderlineOffset: -13.500001 + m_UnderlineThickness: 4.5 + m_StrikethroughOffset: 19.2 + m_StrikethroughThickness: 4.5 + m_TabWidth: 20 + m_GlyphTable: + - m_Index: 1 + m_Metrics: + m_Width: 0 + m_Height: 0 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 0 + m_HorizontalAdvance: 19.796875 + 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: 34 + m_Metrics: + m_Width: 49.6875 + m_Height: 65.34375 + m_HorizontalBearingX: 0.984375 + m_HorizontalBearingY: 65.34375 + m_HorizontalAdvance: 51.65625 + m_GlyphRect: + m_X: 228 + m_Y: 10 + m_Width: 51 + m_Height: 66 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 52 + m_Metrics: + m_Width: 42.21875 + m_Height: 67.6875 + m_HorizontalBearingX: 4.765625 + m_HorizontalBearingY: 66.515625 + m_HorizontalAdvance: 51.203125 + m_GlyphRect: + m_X: 166 + m_Y: 10 + m_Width: 43 + m_Height: 69 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 64 + m_Metrics: + m_Width: 47.15625 + m_Height: 3.25 + m_HorizontalBearingX: 1.171875 + m_HorizontalBearingY: -8.09375 + m_HorizontalAdvance: 49.5 + m_GlyphRect: + m_X: 99 + m_Y: 10 + m_Width: 48 + m_Height: 4 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 66 + m_Metrics: + m_Width: 34.203125 + m_Height: 49.765625 + m_HorizontalBearingX: 5.9375 + m_HorizontalBearingY: 48.59375 + m_HorizontalAdvance: 48.234375 + m_GlyphRect: + m_X: 92 + m_Y: 124 + m_Width: 36 + m_Height: 51 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 68 + m_Metrics: + m_Width: 36.359375 + m_Height: 49.765625 + m_HorizontalBearingX: 5.3125 + m_HorizontalBearingY: 48.59375 + m_HorizontalAdvance: 44.28125 + m_GlyphRect: + m_X: 352 + m_Y: 10 + m_Width: 37 + m_Height: 51 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 70 + m_Metrics: + m_Width: 38.34375 + m_Height: 49.765625 + m_HorizontalBearingX: 5.3125 + m_HorizontalBearingY: 48.59375 + m_HorizontalAdvance: 47.4375 + m_GlyphRect: + m_X: 408 + m_Y: 10 + m_Width: 39 + m_Height: 51 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 73 + m_Metrics: + m_Width: 34.109375 + m_Height: 71.453125 + m_HorizontalBearingX: 9.453125 + m_HorizontalBearingY: 71.453125 + m_HorizontalAdvance: 51.75 + m_GlyphRect: + m_X: 99 + m_Y: 33 + m_Width: 35 + m_Height: 72 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 74 + m_Metrics: + m_Width: 6.484375 + m_Height: 66.515625 + m_HorizontalBearingX: 7.921875 + m_HorizontalBearingY: 66.515625 + m_HorizontalAdvance: 22.046875 + m_GlyphRect: + m_X: 64 + m_Y: 176 + m_Width: 8 + m_Height: 67 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 79 + m_Metrics: + m_Width: 34.109375 + m_Height: 48.59375 + m_HorizontalBearingX: 9.453125 + m_HorizontalBearingY: 48.59375 + m_HorizontalAdvance: 52.203125 + m_GlyphRect: + m_X: 298 + m_Y: 10 + m_Width: 35 + m_Height: 49 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 80 + m_Metrics: + m_Width: 42.125 + m_Height: 49.765625 + m_HorizontalBearingX: 5.3125 + m_HorizontalBearingY: 48.59375 + m_HorizontalAdvance: 52.734375 + m_GlyphRect: + m_X: 10 + m_Y: 39 + m_Width: 43 + m_Height: 51 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 81 + m_Metrics: + m_Width: 38.78125 + m_Height: 70.46875 + m_HorizontalBearingX: 9.453125 + m_HorizontalBearingY: 48.59375 + m_HorizontalAdvance: 53.546875 + m_GlyphRect: + m_X: 339 + m_Y: 80 + m_Width: 40 + m_Height: 71 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 83 + m_Metrics: + m_Width: 21.421875 + m_Height: 48.59375 + m_HorizontalBearingX: 9.453125 + m_HorizontalBearingY: 48.59375 + m_HorizontalAdvance: 30.515625 + m_GlyphRect: + m_X: 298 + m_Y: 78 + m_Width: 22 + m_Height: 49 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 84 + m_Metrics: + m_Width: 32.765625 + m_Height: 49.765625 + m_HorizontalBearingX: 3.328125 + m_HorizontalBearingY: 48.59375 + m_HorizontalAdvance: 39.6875 + m_GlyphRect: + m_X: 228 + m_Y: 95 + m_Width: 34 + m_Height: 51 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 85 + m_Metrics: + m_Width: 26.09375 + m_Height: 62.46875 + m_HorizontalBearingX: 2.96875 + m_HorizontalBearingY: 61.296875 + m_HorizontalAdvance: 30.0625 + m_GlyphRect: + m_X: 153 + m_Y: 98 + m_Width: 28 + m_Height: 64 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 86 + m_Metrics: + m_Width: 33.921875 + m_Height: 48.609375 + m_HorizontalBearingX: 8.640625 + m_HorizontalBearingY: 47.4375 + m_HorizontalAdvance: 51.9375 + m_GlyphRect: + m_X: 10 + m_Y: 176 + m_Width: 35 + m_Height: 50 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 88 + m_Metrics: + m_Width: 62.09375 + m_Height: 47.4375 + m_HorizontalBearingX: 2.34375 + m_HorizontalBearingY: 47.4375 + m_HorizontalAdvance: 66.78125 + m_GlyphRect: + m_X: 10 + m_Y: 109 + m_Width: 63 + m_Height: 48 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 474 + m_Metrics: + m_Width: 68.9375 + m_Height: 9 + m_HorizontalBearingX: 10.53125 + m_HorizontalBearingY: 38.703125 + m_HorizontalAdvance: 90 + m_GlyphRect: + m_X: 10 + m_Y: 10 + m_Width: 70 + m_Height: 10 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 11178 + m_Metrics: + m_Width: 82.171875 + m_Height: 80.546875 + m_HorizontalBearingX: 3.515625 + m_HorizontalBearingY: 74.25 + m_HorizontalAdvance: 90 + m_GlyphRect: + m_X: 466 + m_Y: 10 + m_Width: 83 + m_Height: 82 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 41 + m_Metrics: + m_Width: 43.109375 + m_Height: 65.34375 + m_HorizontalBearingX: 9.90625 + m_HorizontalBearingY: 65.34375 + m_HorizontalAdvance: 62.8125 + m_GlyphRect: + m_X: 398 + m_Y: 80 + m_Width: 45 + m_Height: 66 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 48 + m_Metrics: + m_Width: 53.109375 + m_Height: 67.6875 + m_HorizontalBearingX: 5.578125 + m_HorizontalBearingY: 66.515625 + m_HorizontalAdvance: 64.265625 + m_GlyphRect: + m_X: 200 + m_Y: 165 + m_Width: 54 + m_Height: 69 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 56 + m_Metrics: + m_Width: 69.65625 + m_Height: 65.34375 + m_HorizontalBearingX: 2.96875 + m_HorizontalBearingY: 65.34375 + m_HorizontalAdvance: 75.78125 + m_GlyphRect: + m_X: 91 + m_Y: 194 + m_Width: 71 + m_Height: 66 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 47 + m_Metrics: + m_Width: 42.921875 + m_Height: 65.34375 + m_HorizontalBearingX: 9.90625 + m_HorizontalBearingY: 65.34375 + m_HorizontalAdvance: 62.640625 + m_GlyphRect: + m_X: 273 + m_Y: 165 + m_Width: 44 + m_Height: 66 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 36 + m_Metrics: + m_Width: 46.171875 + m_Height: 67.6875 + m_HorizontalBearingX: 5.578125 + m_HorizontalBearingY: 66.515625 + m_HorizontalAdvance: 55.703125 + m_GlyphRect: + m_X: 10 + m_Y: 262 + m_Width: 47 + m_Height: 69 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 51 + m_Metrics: + m_Width: 40.140625 + m_Height: 65.34375 + m_HorizontalBearingX: 9.90625 + m_HorizontalBearingY: 65.34375 + m_HorizontalAdvance: 53.015625 + m_GlyphRect: + m_X: 568 + m_Y: 10 + m_Width: 42 + m_Height: 66 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 53 + m_Metrics: + m_Width: 45.625 + m_Height: 65.34375 + m_HorizontalBearingX: 2.96875 + m_HorizontalBearingY: 65.34375 + m_HorizontalAdvance: 51.5625 + m_GlyphRect: + m_X: 629 + m_Y: 10 + m_Width: 47 + m_Height: 66 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 54 + m_Metrics: + m_Width: 43.109375 + m_Height: 66.515625 + m_HorizontalBearingX: 9.71875 + m_HorizontalBearingY: 65.34375 + m_HorizontalAdvance: 62.453125 + m_GlyphRect: + m_X: 695 + m_Y: 10 + m_Width: 44 + m_Height: 68 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 38 + m_Metrics: + m_Width: 36.078125 + m_Height: 65.34375 + m_HorizontalBearingX: 9.90625 + m_HorizontalBearingY: 65.34375 + m_HorizontalAdvance: 50.578125 + m_GlyphRect: + m_X: 568 + m_Y: 95 + m_Width: 37 + m_Height: 66 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 40 + m_Metrics: + m_Width: 46.71875 + m_Height: 67.6875 + m_HorizontalBearingX: 5.578125 + m_HorizontalBearingY: 66.515625 + m_HorizontalAdvance: 59.484375 + m_GlyphRect: + m_X: 624 + m_Y: 95 + m_Width: 48 + m_Height: 69 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 57 + m_Metrics: + m_Width: 43.203125 + m_Height: 65.34375 + m_HorizontalBearingX: 1.796875 + m_HorizontalBearingY: 65.34375 + m_HorizontalAdvance: 46.703125 + m_GlyphRect: + m_X: 462 + m_Y: 111 + m_Width: 44 + m_Height: 66 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 42 + m_Metrics: + m_Width: 3.328125 + m_Height: 65.34375 + m_HorizontalBearingX: 9.90625 + m_HorizontalBearingY: 65.34375 + m_HorizontalAdvance: 23.125 + m_GlyphRect: + m_X: 525 + m_Y: 111 + m_Width: 5 + m_Height: 66 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 67 + m_Metrics: + m_Width: 38.78125 + m_Height: 72.625 + m_HorizontalBearingX: 9.453125 + m_HorizontalBearingY: 71.453125 + m_HorizontalAdvance: 53.375 + m_GlyphRect: + m_X: 398 + m_Y: 165 + m_Width: 40 + m_Height: 74 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 90 + m_Metrics: + m_Width: 39.78125 + m_Height: 69.390625 + m_HorizontalBearingX: 1.171875 + m_HorizontalBearingY: 47.4375 + m_HorizontalAdvance: 42.125 + m_GlyphRect: + m_X: 336 + m_Y: 170 + m_Width: 40 + m_Height: 70 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 78 + m_Metrics: + m_Width: 61.828125 + m_Height: 48.59375 + m_HorizontalBearingX: 9.453125 + m_HorizontalBearingY: 48.59375 + m_HorizontalAdvance: 80.015625 + m_GlyphRect: + m_X: 181 + m_Y: 253 + m_Width: 63 + m_Height: 49 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 30 + m_Metrics: + m_Width: 40.234375 + m_Height: 22.6875 + m_HorizontalBearingX: 3.328125 + m_HorizontalBearingY: 44.015625 + m_HorizontalAdvance: 46.890625 + m_GlyphRect: + m_X: 273 + m_Y: 250 + m_Width: 41 + m_Height: 24 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 18 + m_Metrics: + m_Width: 32.21875 + m_Height: 65.34375 + m_HorizontalBearingX: 8.546875 + m_HorizontalBearingY: 65.34375 + m_HorizontalAdvance: 46.890625 + m_GlyphRect: + m_X: 549 + m_Y: 180 + m_Width: 33 + m_Height: 66 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 9 + m_Metrics: + m_Width: 14.9375 + m_Height: 89.546875 + m_HorizontalBearingX: 8.90625 + m_HorizontalBearingY: 72.359375 + m_HorizontalAdvance: 26.90625 + m_GlyphRect: + m_X: 457 + m_Y: 196 + m_Width: 16 + m_Height: 91 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 20 + m_Metrics: + m_Width: 38.796875 + m_Height: 67.6875 + m_HorizontalBearingX: 2.96875 + m_HorizontalBearingY: 66.515625 + m_HorizontalAdvance: 46.890625 + m_GlyphRect: + m_X: 395 + m_Y: 258 + m_Width: 40 + m_Height: 69 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 26 + m_Metrics: + m_Width: 37.265625 + m_Height: 67.6875 + m_HorizontalBearingX: 4.3125 + m_HorizontalBearingY: 66.515625 + m_HorizontalAdvance: 46.890625 + m_GlyphRect: + m_X: 492 + m_Y: 196 + m_Width: 38 + m_Height: 69 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 25 + m_Metrics: + m_Width: 38.796875 + m_Height: 67.328125 + m_HorizontalBearingX: 3.953125 + m_HorizontalBearingY: 66.15625 + m_HorizontalAdvance: 46.890625 + m_GlyphRect: + m_X: 333 + m_Y: 259 + m_Width: 40 + m_Height: 69 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 24 + m_Metrics: + m_Width: 38.34375 + m_Height: 65.34375 + m_HorizontalBearingX: 4.3125 + m_HorizontalBearingY: 65.34375 + m_HorizontalAdvance: 46.890625 + m_GlyphRect: + m_X: 263 + m_Y: 293 + m_Width: 39 + m_Height: 66 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 10 + m_Metrics: + m_Width: 15.03125 + m_Height: 89.546875 + m_HorizontalBearingX: 2.96875 + m_HorizontalBearingY: 72.359375 + m_HorizontalAdvance: 26.90625 + m_GlyphRect: + m_X: 76 + m_Y: 279 + m_Width: 16 + m_Height: 91 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 17 + m_Metrics: + m_Width: 36.984375 + m_Height: 67.6875 + m_HorizontalBearingX: 4.953125 + m_HorizontalBearingY: 66.515625 + m_HorizontalAdvance: 46.890625 + m_GlyphRect: + m_X: 10 + m_Y: 350 + m_Width: 38 + m_Height: 69 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 15 + m_Metrics: + m_Width: 7.296875 + m_Height: 7.921875 + m_HorizontalBearingX: 6.75 + m_HorizontalBearingY: 6.75 + m_HorizontalAdvance: 20.796875 + m_GlyphRect: + m_X: 200 + m_Y: 98 + m_Width: 9 + m_Height: 9 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 22 + m_Metrics: + m_Width: 39.515625 + m_Height: 66.515625 + m_HorizontalBearingX: 2.609375 + m_HorizontalBearingY: 65.34375 + m_HorizontalAdvance: 46.890625 + m_GlyphRect: + m_X: 111 + m_Y: 279 + m_Width: 41 + m_Height: 68 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 13 + m_Metrics: + m_Width: 10.4375 + m_Height: 21.6875 + m_HorizontalBearingX: 4.765625 + m_HorizontalBearingY: 6.75 + m_HorizontalAdvance: 20.796875 + m_GlyphRect: + m_X: 171 + m_Y: 321 + m_Width: 12 + m_Height: 22 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 23 + m_Metrics: + m_Width: 37.171875 + m_Height: 67.6875 + m_HorizontalBearingX: 5.578125 + m_HorizontalBearingY: 66.515625 + m_HorizontalAdvance: 46.890625 + m_GlyphRect: + m_X: 202 + m_Y: 321 + m_Width: 38 + m_Height: 69 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 7 + m_Metrics: + m_Width: 50.84375 + m_Height: 67.6875 + m_HorizontalBearingX: 3.78125 + m_HorizontalBearingY: 66.515625 + m_HorizontalAdvance: 55.890625 + m_GlyphRect: + m_X: 111 + m_Y: 366 + m_Width: 52 + m_Height: 69 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 27 + m_Metrics: + m_Width: 7.296875 + m_Height: 46.4375 + m_HorizontalBearingX: 6.75 + m_HorizontalBearingY: 45.265625 + m_HorizontalAdvance: 20.796875 + m_GlyphRect: + m_X: 67 + m_Y: 389 + m_Width: 9 + m_Height: 48 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 55 + m_Metrics: + m_Width: 46.71875 + m_Height: 65.34375 + m_HorizontalBearingX: 0.625 + m_HorizontalBearingY: 65.34375 + m_HorizontalAdvance: 47.875 + m_GlyphRect: + m_X: 758 + m_Y: 10 + m_Width: 48 + m_Height: 66 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 19 + m_Metrics: + m_Width: 38.4375 + m_Height: 66.515625 + m_HorizontalBearingX: 3.953125 + m_HorizontalBearingY: 66.515625 + m_HorizontalAdvance: 46.890625 + m_GlyphRect: + m_X: 825 + m_Y: 10 + m_Width: 40 + m_Height: 67 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 14 + m_Metrics: + m_Width: 21.515625 + m_Height: 3.140625 + m_HorizontalBearingX: 3.953125 + m_HorizontalBearingY: 26.1875 + m_HorizontalAdvance: 29.15625 + m_GlyphRect: + m_X: 10 + m_Y: 438 + m_Width: 23 + m_Height: 4 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 49 + m_Metrics: + m_Width: 39.140625 + m_Height: 65.34375 + m_HorizontalBearingX: 9.90625 + m_HorizontalBearingY: 65.34375 + m_HorizontalAdvance: 53.8125 + m_GlyphRect: + m_X: 758 + m_Y: 95 + m_Width: 41 + m_Height: 66 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 6660 + m_Metrics: + m_Width: 82.609375 + m_Height: 81.265625 + m_HorizontalBearingX: 3.15625 + m_HorizontalBearingY: 74.703125 + m_HorizontalAdvance: 90 + m_GlyphRect: + m_X: 884 + m_Y: 10 + m_Width: 83 + m_Height: 82 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 76 + m_Metrics: + m_Width: 34.28125 + m_Height: 71.453125 + m_HorizontalBearingX: 9.453125 + m_HorizontalBearingY: 71.453125 + m_HorizontalAdvance: 44.90625 + m_GlyphRect: + m_X: 818 + m_Y: 96 + m_Width: 35 + m_Height: 72 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 72 + m_Metrics: + m_Width: 41.3125 + m_Height: 71.71875 + m_HorizontalBearingX: 5.3125 + m_HorizontalBearingY: 48.59375 + m_HorizontalAdvance: 47.703125 + m_GlyphRect: + m_X: 691 + m_Y: 97 + m_Width: 42 + m_Height: 73 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 77 + m_Metrics: + m_Width: 7.5625 + m_Height: 72.625 + m_HorizontalBearingX: 9.453125 + m_HorizontalBearingY: 71.453125 + m_HorizontalAdvance: 22.859375 + m_GlyphRect: + m_X: 986 + m_Y: 10 + m_Width: 9 + m_Height: 74 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 21 + m_Metrics: + m_Width: 42.109375 + m_Height: 65.34375 + m_HorizontalBearingX: 1.625 + m_HorizontalBearingY: 65.34375 + m_HorizontalAdvance: 46.890625 + m_GlyphRect: + m_X: 752 + m_Y: 180 + m_Width: 43 + m_Height: 66 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 37 + m_Metrics: + m_Width: 44 + m_Height: 65.34375 + m_HorizontalBearingX: 9.90625 + m_HorizontalBearingY: 65.34375 + m_HorizontalAdvance: 59.484375 + m_GlyphRect: + m_X: 601 + m_Y: 183 + m_Width: 45 + m_Height: 66 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 69 + m_Metrics: + m_Width: 38.78125 + m_Height: 72.625 + m_HorizontalBearingX: 5.3125 + m_HorizontalBearingY: 71.453125 + m_HorizontalAdvance: 53.546875 + m_GlyphRect: + m_X: 665 + m_Y: 189 + m_Width: 40 + m_Height: 74 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 89 + m_Metrics: + m_Width: 36.359375 + m_Height: 47.4375 + m_HorizontalBearingX: 1.34375 + m_HorizontalBearingY: 47.4375 + m_HorizontalAdvance: 39.0625 + m_GlyphRect: + m_X: 549 + m_Y: 268 + m_Width: 37 + m_Height: 48 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 71 + m_Metrics: + m_Width: 24.21875 + m_Height: 72.625 + m_HorizontalBearingX: 3.328125 + m_HorizontalBearingY: 72.625 + m_HorizontalAdvance: 25.109375 + m_GlyphRect: + m_X: 986 + m_Y: 103 + m_Width: 25 + m_Height: 73 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 46 + m_Metrics: + m_Width: 49.5 + m_Height: 65.34375 + m_HorizontalBearingX: 9.90625 + m_HorizontalBearingY: 65.34375 + m_HorizontalAdvance: 69.296875 + m_GlyphRect: + m_X: 454 + m_Y: 306 + m_Width: 51 + m_Height: 66 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 39 + m_Metrics: + m_Width: 34.90625 + m_Height: 65.34375 + m_HorizontalBearingX: 9.90625 + m_HorizontalBearingY: 65.34375 + m_HorizontalAdvance: 46.625 + m_GlyphRect: + m_X: 605 + m_Y: 268 + m_Width: 36 + m_Height: 66 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 45 + m_Metrics: + m_Width: 33.921875 + m_Height: 65.34375 + m_HorizontalBearingX: 9.90625 + m_HorizontalBearingY: 65.34375 + m_HorizontalAdvance: 45.71875 + m_GlyphRect: + m_X: 392 + m_Y: 346 + m_Width: 35 + m_Height: 66 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + m_CharacterTable: + - m_ElementType: 1 + m_Unicode: 32 + m_GlyphIndex: 1 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 65 + m_GlyphIndex: 34 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 83 + m_GlyphIndex: 52 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 95 + m_GlyphIndex: 64 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 97 + m_GlyphIndex: 66 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 99 + m_GlyphIndex: 68 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 101 + m_GlyphIndex: 70 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 104 + m_GlyphIndex: 73 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 105 + m_GlyphIndex: 74 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 110 + m_GlyphIndex: 79 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 111 + m_GlyphIndex: 80 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 112 + m_GlyphIndex: 81 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 114 + m_GlyphIndex: 83 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 115 + m_GlyphIndex: 84 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 116 + m_GlyphIndex: 85 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 117 + m_GlyphIndex: 86 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 119 + m_GlyphIndex: 88 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8230 + m_GlyphIndex: 474 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 31168 + m_GlyphIndex: 11178 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 72 + m_GlyphIndex: 41 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 79 + m_GlyphIndex: 48 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 87 + m_GlyphIndex: 56 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 78 + m_GlyphIndex: 47 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 67 + m_GlyphIndex: 36 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 82 + m_GlyphIndex: 51 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 84 + m_GlyphIndex: 53 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 85 + m_GlyphIndex: 54 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 69 + m_GlyphIndex: 38 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 71 + m_GlyphIndex: 40 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 88 + m_GlyphIndex: 57 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 73 + m_GlyphIndex: 42 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 98 + m_GlyphIndex: 67 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 121 + m_GlyphIndex: 90 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 109 + m_GlyphIndex: 78 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 61 + m_GlyphIndex: 30 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 49 + m_GlyphIndex: 18 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 40 + m_GlyphIndex: 9 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 51 + m_GlyphIndex: 20 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 57 + m_GlyphIndex: 26 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 56 + m_GlyphIndex: 25 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 55 + m_GlyphIndex: 24 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 41 + m_GlyphIndex: 10 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 48 + m_GlyphIndex: 17 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 46 + m_GlyphIndex: 15 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 53 + m_GlyphIndex: 22 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 44 + m_GlyphIndex: 13 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 54 + m_GlyphIndex: 23 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 38 + m_GlyphIndex: 7 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 58 + m_GlyphIndex: 27 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 86 + m_GlyphIndex: 55 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 50 + m_GlyphIndex: 19 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 45 + m_GlyphIndex: 14 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 80 + m_GlyphIndex: 49 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 25345 + m_GlyphIndex: 6660 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 107 + m_GlyphIndex: 76 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 103 + m_GlyphIndex: 72 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 108 + m_GlyphIndex: 77 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 52 + m_GlyphIndex: 21 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 68 + m_GlyphIndex: 37 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 100 + m_GlyphIndex: 69 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 120 + m_GlyphIndex: 89 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 102 + m_GlyphIndex: 71 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 77 + m_GlyphIndex: 46 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 70 + m_GlyphIndex: 39 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 76 + m_GlyphIndex: 45 + m_Scale: 1 + m_AtlasTextures: + - {fileID: 2625080642630264354} + m_AtlasTextureIndex: 0 + m_IsMultiAtlasTexturesEnabled: 0 + m_ClearDynamicDataOnBuild: 0 + m_UsedGlyphRects: + - m_X: 0 + m_Y: 0 + m_Width: 89 + m_Height: 29 + - m_X: 89 + m_Y: 0 + m_Width: 67 + m_Height: 23 + - m_X: 156 + m_Y: 0 + m_Width: 62 + m_Height: 88 + - m_X: 89 + m_Y: 23 + m_Width: 54 + m_Height: 91 + - m_X: 0 + m_Y: 29 + m_Width: 62 + m_Height: 70 + - m_X: 0 + m_Y: 99 + m_Width: 82 + m_Height: 67 + - m_X: 218 + m_Y: 0 + m_Width: 70 + m_Height: 85 + - m_X: 288 + m_Y: 0 + m_Width: 54 + m_Height: 68 + - m_X: 342 + m_Y: 0 + m_Width: 56 + m_Height: 70 + - m_X: 288 + m_Y: 68 + m_Width: 41 + m_Height: 68 + - m_X: 218 + m_Y: 85 + m_Width: 53 + m_Height: 70 + - m_X: 143 + m_Y: 88 + m_Width: 47 + m_Height: 83 + - m_X: 82 + m_Y: 114 + m_Width: 55 + m_Height: 70 + - m_X: 0 + m_Y: 166 + m_Width: 54 + m_Height: 69 + - m_X: 398 + m_Y: 0 + m_Width: 58 + m_Height: 70 + - m_X: 456 + m_Y: 0 + m_Width: 102 + m_Height: 101 + - m_X: 54 + m_Y: 166 + m_Width: 27 + m_Height: 86 + - m_X: 329 + m_Y: 70 + m_Width: 59 + m_Height: 90 + - m_X: 388 + m_Y: 70 + m_Width: 64 + m_Height: 85 + - m_X: 190 + m_Y: 155 + m_Width: 73 + m_Height: 88 + - m_X: 81 + m_Y: 184 + m_Width: 90 + m_Height: 85 + - m_X: 263 + m_Y: 155 + m_Width: 63 + m_Height: 85 + - m_X: 0 + m_Y: 252 + m_Width: 66 + m_Height: 88 + - m_X: 558 + m_Y: 0 + m_Width: 61 + m_Height: 85 + - m_X: 619 + m_Y: 0 + m_Width: 66 + m_Height: 85 + - m_X: 685 + m_Y: 0 + m_Width: 63 + m_Height: 87 + - m_X: 558 + m_Y: 85 + m_Width: 56 + m_Height: 85 + - m_X: 614 + m_Y: 85 + m_Width: 67 + m_Height: 88 + - m_X: 452 + m_Y: 101 + m_Width: 63 + m_Height: 85 + - m_X: 515 + m_Y: 101 + m_Width: 24 + m_Height: 85 + - m_X: 388 + m_Y: 155 + m_Width: 59 + m_Height: 93 + - m_X: 326 + m_Y: 160 + m_Width: 59 + m_Height: 89 + - m_X: 171 + m_Y: 243 + m_Width: 82 + m_Height: 68 + - m_X: 263 + m_Y: 240 + m_Width: 60 + m_Height: 43 + - m_X: 539 + m_Y: 170 + m_Width: 52 + m_Height: 85 + - m_X: 447 + m_Y: 186 + m_Width: 35 + m_Height: 110 + - m_X: 385 + m_Y: 248 + m_Width: 59 + m_Height: 88 + - m_X: 482 + m_Y: 186 + m_Width: 57 + m_Height: 88 + - m_X: 323 + m_Y: 249 + m_Width: 59 + m_Height: 88 + - m_X: 253 + m_Y: 283 + m_Width: 58 + m_Height: 85 + - m_X: 66 + m_Y: 269 + m_Width: 35 + m_Height: 110 + - m_X: 0 + m_Y: 340 + m_Width: 57 + m_Height: 88 + - m_X: 190 + m_Y: 88 + m_Width: 28 + m_Height: 28 + - m_X: 101 + m_Y: 269 + m_Width: 60 + m_Height: 87 + - m_X: 161 + m_Y: 311 + m_Width: 31 + m_Height: 41 + - m_X: 192 + m_Y: 311 + m_Width: 57 + m_Height: 88 + - m_X: 101 + m_Y: 356 + m_Width: 71 + m_Height: 88 + - m_X: 57 + m_Y: 379 + m_Width: 28 + m_Height: 67 + - m_X: 748 + m_Y: 0 + m_Width: 67 + m_Height: 85 + - m_X: 815 + m_Y: 0 + m_Width: 59 + m_Height: 86 + - m_X: 0 + m_Y: 428 + m_Width: 42 + m_Height: 23 + - m_X: 748 + m_Y: 85 + m_Width: 60 + m_Height: 85 + - m_X: 874 + m_Y: 0 + m_Width: 102 + m_Height: 101 + - m_X: 808 + m_Y: 86 + m_Width: 54 + m_Height: 91 + - m_X: 681 + m_Y: 87 + m_Width: 61 + m_Height: 92 + - m_X: 976 + m_Y: 0 + m_Width: 28 + m_Height: 93 + - m_X: 742 + m_Y: 170 + m_Width: 62 + m_Height: 85 + - m_X: 591 + m_Y: 173 + m_Width: 64 + m_Height: 85 + - m_X: 655 + m_Y: 179 + m_Width: 59 + m_Height: 93 + - m_X: 539 + m_Y: 258 + m_Width: 56 + m_Height: 67 + - m_X: 976 + m_Y: 93 + m_Width: 44 + m_Height: 92 + - m_X: 444 + m_Y: 296 + m_Width: 70 + m_Height: 85 + - m_X: 595 + m_Y: 258 + m_Width: 55 + m_Height: 85 + - m_X: 382 + m_Y: 336 + m_Width: 54 + m_Height: 85 + m_FreeGlyphRects: + - m_X: 62 + m_Y: 29 + m_Width: 27 + m_Height: 70 + - m_X: 143 + m_Y: 23 + m_Width: 13 + m_Height: 65 + - m_X: 82 + m_Y: 29 + m_Width: 7 + m_Height: 85 + - m_X: 329 + m_Y: 68 + m_Width: 13 + m_Height: 2 + - m_X: 137 + m_Y: 114 + m_Width: 6 + m_Height: 70 + - m_X: 81 + m_Y: 166 + m_Width: 1 + m_Height: 18 + - m_X: 137 + m_Y: 171 + m_Width: 53 + m_Height: 13 + - m_X: 271 + m_Y: 85 + m_Width: 17 + m_Height: 70 + - m_X: 271 + m_Y: 136 + m_Width: 58 + m_Height: 19 + - m_X: 0 + m_Y: 235 + m_Width: 54 + m_Height: 17 + - m_X: 452 + m_Y: 70 + m_Width: 4 + m_Height: 31 + - m_X: 326 + m_Y: 136 + m_Width: 3 + m_Height: 24 + - m_X: 171 + m_Y: 171 + m_Width: 19 + m_Height: 72 + - m_X: 539 + m_Y: 101 + m_Width: 19 + m_Height: 69 + - m_X: 447 + m_Y: 155 + m_Width: 5 + m_Height: 31 + - m_X: 385 + m_Y: 160 + m_Width: 3 + m_Height: 88 + - m_X: 323 + m_Y: 240 + m_Width: 3 + m_Height: 9 + - m_X: 253 + m_Y: 243 + m_Width: 10 + m_Height: 40 + - m_X: 311 + m_Y: 283 + m_Width: 12 + m_Height: 740 + - m_X: 66 + m_Y: 252 + m_Width: 15 + m_Height: 17 + - m_X: 190 + m_Y: 116 + m_Width: 28 + m_Height: 39 + - m_X: 161 + m_Y: 269 + m_Width: 10 + m_Height: 42 + - m_X: 249 + m_Y: 311 + m_Width: 4 + m_Height: 712 + - m_X: 161 + m_Y: 352 + m_Width: 31 + m_Height: 4 + - m_X: 172 + m_Y: 352 + m_Width: 20 + m_Height: 671 + - m_X: 57 + m_Y: 340 + m_Width: 9 + m_Height: 39 + - m_X: 85 + m_Y: 444 + m_Width: 938 + m_Height: 579 + - m_X: 85 + m_Y: 379 + m_Width: 16 + m_Height: 644 + - m_X: 0 + m_Y: 451 + m_Width: 1023 + m_Height: 572 + - m_X: 42 + m_Y: 446 + m_Width: 981 + m_Height: 577 + - m_X: 42 + m_Y: 428 + m_Width: 15 + m_Height: 595 + - m_X: 808 + m_Y: 85 + m_Width: 7 + m_Height: 1 + - m_X: 862 + m_Y: 86 + m_Width: 12 + m_Height: 937 + - m_X: 681 + m_Y: 85 + m_Width: 4 + m_Height: 2 + - m_X: 742 + m_Y: 87 + m_Width: 6 + m_Height: 83 + - m_X: 804 + m_Y: 170 + m_Width: 4 + m_Height: 853 + - m_X: 591 + m_Y: 170 + m_Width: 23 + m_Height: 3 + - m_X: 714 + m_Y: 255 + m_Width: 309 + m_Height: 768 + - m_X: 655 + m_Y: 173 + m_Width: 26 + m_Height: 6 + - m_X: 714 + m_Y: 179 + m_Width: 28 + m_Height: 844 + - m_X: 539 + m_Y: 255 + m_Width: 52 + m_Height: 3 + - m_X: 862 + m_Y: 101 + m_Width: 114 + m_Height: 922 + - m_X: 1004 + m_Y: 0 + m_Width: 19 + m_Height: 93 + - m_X: 1020 + m_Y: 0 + m_Width: 3 + m_Height: 1023 + - m_X: 804 + m_Y: 185 + m_Width: 219 + m_Height: 838 + - m_X: 804 + m_Y: 177 + m_Width: 172 + m_Height: 846 + - m_X: 444 + m_Y: 248 + m_Width: 3 + m_Height: 48 + - m_X: 482 + m_Y: 274 + m_Width: 57 + m_Height: 22 + - m_X: 514 + m_Y: 274 + m_Width: 25 + m_Height: 749 + - m_X: 650 + m_Y: 272 + m_Width: 373 + m_Height: 751 + - m_X: 650 + m_Y: 258 + m_Width: 5 + m_Height: 765 + - m_X: 514 + m_Y: 343 + m_Width: 509 + m_Height: 680 + - m_X: 514 + m_Y: 325 + m_Width: 81 + m_Height: 698 + - m_X: 382 + m_Y: 249 + m_Width: 3 + m_Height: 87 + - m_X: 172 + m_Y: 421 + m_Width: 851 + m_Height: 602 + - m_X: 172 + m_Y: 399 + m_Width: 210 + m_Height: 624 + - m_X: 436 + m_Y: 336 + m_Width: 8 + m_Height: 687 + - m_X: 311 + m_Y: 337 + m_Width: 71 + m_Height: 686 + - m_X: 436 + m_Y: 381 + m_Width: 587 + m_Height: 642 + - m_X: 249 + m_Y: 368 + m_Width: 133 + m_Height: 655 + 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: 9 + m_AtlasRenderMode: 4165 + m_glyphInfoList: [] + m_KerningTable: + kerningPairs: [] + m_FontFeatureTable: + m_GlyphPairAdjustmentRecords: [] + fallbackFontAssets: [] + m_FallbackFontAssetTable: [] + m_CreationSettings: + sourceFontFileName: + sourceFontFileGUID: cc25d6ba2db45974fb94609b8773fd0d + pointSizeSamplingMode: 0 + pointSize: 90 + padding: 9 + packingMode: 0 + atlasWidth: 1024 + atlasHeight: 1024 + characterSetSelectionMode: 7 + characterSequence: + referencedFontAssetGUID: + referencedTextAssetGUID: + fontStyle: 0 + fontStyleModifier: 0 + renderMode: 4165 + includeFontFeatures: 0 + m_FontWeightTable: + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + fontWeights: [] + normalStyle: 0 + normalSpacingOffset: 0 + boldStyle: 0.75 + boldSpacing: 7 + italicStyle: 35 + tabSize: 10 +--- !u!28 &2625080642630264354 +Texture2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: NotoSansTC-VariableFont_wght Atlas + m_ImageContentsHash: + serializedVersion: 2 + Hash: 00000000000000000000000000000000 + m_ForcedFallbackFormat: 4 + m_DownscaleFallback: 0 + m_IsAlphaChannelOptional: 0 + serializedVersion: 2 + m_Width: 1024 + m_Height: 1024 + m_CompleteImageSize: 1048576 + m_MipsStripped: 0 + m_TextureFormat: 1 + m_MipCount: 1 + m_IsReadable: 1 + m_IsPreProcessed: 0 + m_IgnoreMasterTextureLimit: 0 + m_StreamingMipmaps: 0 + m_StreamingMipmapsPriority: 0 + m_VTOnly: 0 + m_AlphaIsTransparency: 0 + m_ImageCount: 1 + m_TextureDimension: 2 + m_TextureSettings: + serializedVersion: 2 + m_FilterMode: 1 + m_Aniso: 1 + m_MipBias: 0 + m_WrapU: 0 + m_WrapV: 0 + m_WrapW: 0 + m_LightmapFormat: 0 + m_ColorSpace: 0 + m_PlatformBlob: + image data: 1048576 + _typelessdata: 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010406070a0a070704010000000000000000000000000000000000000000010407070a0a070604010000000000000000000000000000000000000000010407070a0a07060401000000000000000000000000000000000407090a0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b08070502000000000000000000000000000000000000000000000000000000000000000000040607070808080707060400000000000000000000000000000000000000000000000000000000000000060b0e101113130d0c0a060200000000000000000000000000000000000000000000000000000000000000000000020507081313130d0c0a0602000000000000000000000002070b0d0d13130f0e0c09040000000000000000000000000000000000000004090c0e0f13130e0d0b070300000000000000000000000000000000000000000000000000000000000000010406070808080707050100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030607070808080707050100000000000000000000000000000000000000000000000000000000000000000205070807060401000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002050708131313090907030000000000000000000000000000000000000000000000000002060808131313100f0d0a0500000000000000000000000000000000000000000000000000000000000000000003090d10121313130d0d0b0702000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004060708080808070604010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060b0e11111313120605030000000000000000000000000000000000000000000000000000000000000000000001060b0e1111131313131313131313131313131313131313131313131313131313131313131313131313130b0b09050100000000000000000000000000000000030709090a0b0b0b0b0a0a090706040100000000000000000000000000000000000000000000000000000000000000000002060a0c0c0e0e0d0d0d0d0d0d0c0b0a0807050200000000000000000000000000000000000000000000000000000000000000000001050707080807050100000000000000000000000000000000000000000000000000000000000000000000000001080d11131416161413110d08020000000000000000000000000000000001080d11131416161413110d08010000000000000000000000000000000002080d11131416161413110d0801000000000000000000000000050b10141617181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181514120e09020000000000000000000000000000000000000000000000000002050708070c10121314151515141313100c07070604010000000000000000000000000000000000000000000000040b11171b1d1e2020191916120d070000000000000000000000000000000000000000000000000000000000000003090e121415202020191916120d07000000000000000001080e1317191a20201c1b191510090200000000000000000000000000000002091015191b1c20201a1a17130e080100000000000000000000000000000000000000000000000000040607070d1113141515151413110d0807060400000000000000000000000000000000000000000000000000000000000000000000000000020608060c101213141515151413110d08080705020000000000000000000000000000000000000000000000000002090e1114141413110d08030000000000000000000000000000000000000000000000000000000000000000000000000000000000000001020203030303030302000000000000000000000000000000000000000000000000000000000000000002080e1114142020201615130f0a0400000000000000000000000000000000000000000003090e1214152020201d1c1916100a03000000000000000000000000000000000000000000000000000000000000070e14191d1f2020201a1917130e080100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001040607070c101313151515151413110d080807050200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040b12171b1d1e20201f13120f0b0600000000000000000000000000000000000000000000000000000000000000040c12171b1d1e20202020202020202020202020202020202020202020202020202020202020202020202020181715110c0600000000000000000000000000040a0f13151617171717171717151413110d0801000000000000000000000000000000000000000000000000000000000000070d121618191a1a1a1a1a1a1a191918171514120e0903000000000000000000000000000000000000000000000000000000000002080d111314151414110d0802000000000000000000000000000000000000000000000000000000000000000000060b13191d2021232321201d19130c070000000000000000000000000000060c13191d2021232321201d19130b060000000000000000000000000000070c13191d2021232321201d19130b06000000000000000000000810161c2023232424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242421201e1a140d050000000000000000000000000000000000000000000205090e12141518181c1f202121222221201f1c18171413110d07030000000000000000000000000000000000000000050e161d22272a2b2d2d2625231e19120a0100000000000000000000000000000000000000000000000000000000050d141a1e20212d2d2d2625231e19120a010000000000020a12191f2326272d2d292825211b140c0300000000000000000000000000030c141b212528292d2d2726231f19120b0200000000000000000000000000000000000000000001070c10131417181d202021222121201d19171312100c0700000000000000000000000000000000000000000000000000000000000000000004090e121415171c1f202122222121201d19191514120e090300000000000000000000000000000000000000000000050d14191e202121201d1913100b06000000000000000000000000000000000000000000000000000000000000000000020507080a0b0c0d0e0e0f0f10101010100f0d090806030000000000000000000000000000000000000000000000000000050d14191e20212d2d2d23221f1b160f0700000000000000000000000000000000000000060e151a1e21222c2d2d292826211b150d04000000000000000000000000000000000000000000000000000000000811191f25292b2c2d2d2726231f19120a0200000000000000000000000000000000000000000000000000000000000000000000000000000000000001080d11131417181c1f202122222121201d19181514120e090401000000000000000000000000000000000000000000000000000000000000000000000000000000000000050e161d23272a2b2d2d2b201f1b17110a0200000000000000000000000000000000000000000000000000000000060e161d23272a2b2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2524211d1811090000000000000000000000070f161b1f2223242424242424232221201d1913110c060000000000000000000000000000000000000000000000000000010a12181e222526272727272727262626252322211e1a14100b0500000000000000000000000000000000000000000000000000050b1013191d20212221201e19140d05000000000000000000000000000000000000000000000000000000000000020a11171e24292c2d30302d2c29241e18120b0300000000000000000000030a11171e24292c2d30302d2c29241e17110a0200000000000000000000030b12181e24292c2d30302d2c29241e17110a020000000000000008111a21272c2f30313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131312e2d2a251f170f0500000000000000000000000000000000000002090e11141a1e20212523282c2d2e2e2f2e2e2d2c28232420201d18130f0b060000000000000000000000000000000000040e1720272e333637393933322f2a231c130a000000000000000000000000000000000000000000000000000000050f171f252a2d2e39393933322f2a231c130a00000000010a141c242b2f333439393534312c261e150c020000000000000000000000020c151e262c31343539393433302b241d140b01000000000000000000000000000000000000040a0f12181d1f202424292c2d2e2f2e2e2d292423201f1c18120d080200000000000000000000000000000000000000000000000000000000070c10151a1e212223282c2d2e2e2f2e2e2d29252522211e1a140f0b0600000000000000000000000000000000000000050e171f252a2d2e2d2c29241f1c17110d07010000000000000000000000000000000000000000000000000000000003090e1214151718191a1b1b1c1c1c1d1d1d1d1b191515120f0a030000000000000000000000000000000000000000000000050e171e252a2d2e393939302f2c27211910070000000000000000000000000000000000060f1820262b2e2f3939393635322d261f160d03000000000000000000000000000000000000000000000000000007111a232a31353839393934332f2b241c140a01000000000000000000000000000000000000000000000000000000000000000000000000000000050b1013191d20212423282c2d2e2f2f2e2d2c29242521211e1a14110d0801000000000000000000000000000000000000000000000000000000000000000000000000000000000e1720282e3336383939382d2b27221b140b020000000000000000000000000000000000000000000000000000040e1820282e3337383939393939393939393939393939393939393939393939393939393939393939393939393932312e29221b120900000000000000000007101921272c2f30313131313131302f2d2c29241e1d171009000000000000000000000000000000000000000000000000000a131c232a2f323334343434333333333231302e2d2a261f1c160f0800000000000000000000000000000000000000000000000810171c1e252a2d2e2f2e2d2a251e170e0e05000000000000000000000000000000000000000000000000000000020c141c23282f35393a3d3d3a39353028231c150c030000000000000000030c151c23282f35393a3d3d3a39352f28231c140c020000000000000000030c151c23283035393a3d3d3a39352f28221c140b02000000000005101a232c33383c3d3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3b3a36302921170d02000000000000000000000000000000040a0f14191e20252a2d2e322e34383a3a3b3b3b3a3a38342e302d2c29241f1b17110a020000000000000000000000000000000b16202932393f43444646403e3b352e251c120700000000000000000000000000000000000000000000000000030d17212930363a3b464646403e3b352e251c120700000008121c262e363b3f40464642413d3730271e1409000000000000000000000009141e2730373d41424646413f3c362f261d12080000000000000000000000000000000003090e151b1d24292c2d312f35393a3b3b3b3a393530302d2c28231c19130c0600000000000000000000000000000000000000000000000000060b12181c1f262b2e2f2e34383a3a3b3b3b3a393530322e2d2a261f1c17110c0600000000000000000000000000000000040d17202930363a3b3a39352f2b28231c18130d080100000000000000000000000000000000000000000000000000050d141a1e2121242526272728282929292a2a29282622211f1b150c07000000000000000000000000000000000000000000020d1720293036393b4646463c3b38322b23190f04000000000000000000000000000000030e18212a31373a3b46464643423e3831281f150a00000000000000000000000000000000000000000000000000030e19232c353c4145464646403f3b362e261c120800000000000000000000000000000000000000000000000000000000000000000000000000040b10161c1e24292c2d312e34383a3b3b3b3b3a39352f322e2d2a25201d19130c0700000000000000000000000000000000000000000000000000000000000000000000000000000610202a32393f43444646453937332d261d140a00000000000000000000000000000000000000000000000000010c16202a32393f4344464646464646464646464646464646464646464646464646464646464646464646464646463e3d3a342d241b110600000000000000030d19222b32383b3c3d3e3e3e3e3d3d3c3a39352f2d28221a12090000000000000000000000000000000000000000000000040e1c252e353b3e3f41414040404040403f3e3d3b3a36312c272119110800000000000000000000000000000000000000000008111a21282d3036393a3b3b393630292020170e0400000000000000000000000000000000000000000000000000000a141e262e343a41454749494745413a342e271e150b00000000000000000a151e262e343a41454749494745413a342e261e140a00000000000000000b151e272e343a41454749494745413a332d261d140a00000000000b16212c353d44484a4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4846423b33291f14090000000000000000000000000002080d151b1f252a2d30363a3b3e414044464748484847464540413d3a39352f2b27221b140b080200000000000000000000000006111d27323b444a4f5153534c4b4640372e23190d0200000000000000000000000000000000000000000000000009141f29333b4246485353534c4b4640372e23190d0200020e19242e3840474c4d53534f4d49423930261b100400000000000000000004101b26303942494d4f53534d4c4740382f24190e030000000000000000000000000000060e141a20262b2f35383a3e41404547484848474641403d3a38342e29241e17110a03000000000000000000000000000000000000000000020a11171d23282c31373a3b3f3f444647484848474641423f3b3a36312b28221c17110a0300000000000000000000000000010c162029323b4246474745413a38342e29241d19130c070000000000000000000000000000000000000000000000050f171f252a2d2e3132333334353536363636363635332f2e2b262018120b030000000000000000000000000000000000000008141e29323b4146535353534948433d352b21160a0000000000000000000000000000000915202a333c424748535353504e49423a31261b100500000000000000000000000000000000000000000000000009141f2a353e474d515353534d4c4740382e24190e020000000000000000000000000000000000000000000000000000000000000000000001070c161b21282c2f35393a3d4040454648484848474541413e3b3a36312c29241e18120b030000000000000000000000000000000000000000000000000000000000000000000000040e1822323c444b4f5153535246443f382f261b110600000000000000000000000000000000000000000000000006121d28323c444b4f51535353535353535353535353535353535353535353535353535353535353535353535353534b4a453f362d22180c010000000000010b151f2b343d4348494a4a4a4a4a4a4a484745413a39342c241b1209000000000000000000000000000000000000000000020c16202e373f464b4c4d4d4d4d4d4d4d4c4c4b4a4846423b38332b231910060000000000000000000000000000000000000008111a232c33393a414647484746413b32322920160b0000000000000000000000000000000000000000000000000006111c2630383f444c5154565654524c44403930271c120700000000000006111c2630383f444c5254565654524c443f3830261c110600000000000007121c27303940444c5254565654514c443f382f261c110600000004101c27333d474f55565757575757575757575757575757575757575757575757575757575757575757575757575757575757575757575754524d453b30251a0e020000000000000000000000050c131920262b30363a3b4246484b4e4a5153545455555453514b4d4a4745403a37332d261d19130c0400000000000000000000000b17222e39444d555b5e60605957514940352a1e12040000000000000000000000000000000000000000000000020e1a25303b454d52546060605957514940352a1e12060007131f2b36404a52585a60605c59544b42372c2115090000000000000000000915212c37424b54595c60605a58524a40362b1f130700000000000000000000000000070f181f262b3237394045474a4e4b515354555454524c4d4a46444039353028231c150c0600000000000000000000000000000000000000060c141c23282e34383c4247484c4a50535455555454524c4f4c4846423b38332d28231c150c0800000000000000000000000008131e28323b444d525454514c46443f38352f29241e18120b030000000000000000000000000000000000000000030d17212931363a3b3d3e3f4041414242434343434342403c3a373128231d150c030000000000000000000000000000000000020e1925303b444c525f60606056544f473d32271b0f0300000000000000000000000000040d1a26313c454d53555f60605c5a544c42382d21160a0000000000000000000000000000000000000000000000010d1925313c4750585e5f60605a58524a40362b1f1307000000000000000000000000000000000000000000000000000000000000000000030b121821272c33383a4145474a4d4b51535455555454514c4e4b4846423b39352f28231d150c07000000000000000000000000000000000000000000000000000000000000000000000a15202a34444e565b5e60605e53504941382d22170b0000000000000000000000000000000000000000000000000b17232e39444e565c5e60606060606060606060606060606060606060606060606060606060606060606060606060585650483f34291d1105000000000007121d27313d464f5456575757575757565554514c49453e362d241b1106000000000000000000000000000000000000000008131e28323f495157595a5a5a5a5a5a595959585655534d48443d352b22180e040000000000000000000000000000000000020b1a232c353e44494c52545554524c44443b32281d12060000000000000000000000000000000000000000000000000b17232e38424a50555d606363605d56514a42392e23180c0400000000000c17232e38424a50565d606363605d56504a42382e23170b0300000000000c18232e39424a51565d606363605d55504a42382d22170b0300000714202c38444f59616364646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464615e574d42362a1e120500000000000000000001070e171e252a31373b4246474d5254585a545c606161626161605c555a5753514b46443f382f29241e160e07000000000000000000020e1b27333f4a555f676a6c6c66635b51463b2f20150a000000000000000000000000000000000000000000000005121e2a36424d575e6b6c6c6c66635b51463b2f23160a000b17232f3b47525c64676c6c68655d54493d3125190c0000000000000000000c1925313d49545d65686c6c67645c52473c3023170b0000000000000000000000030b1218212a31373c43474b5153575a555d60616261615d565a5653514a46413a342e261e17110a0200000000000000000000000000000000080f171e262e34394045464d535559545c6061616261615e565b5855534d46443f38342e261e1a120a01000000000000000000010d19242f3a444d565e61605d5553504a45413a352f28231c150c060000000000000000000000000000000000000009141f29333b4246484a4b4c4d4e4e4f4f4f505050504e4c4847433c342e271e150b000000000000000000000000000000000005111e2a36414c565e6c6c6c6c6360594f43382c1f1307000000000000000000000000010c161f2b37424d575f626c6c6c69665e54493e3226190d010000000000000000000000000000000000000000000004101d2935414d58626a6c6c6c67645c52473b2f23170b0000000000000000000000000000000000000000000000000000000000000000050d151d242932383e44484c5154575a555c6061626261605d555b5854534d4745413a342e271e1910080000000000000000000000000000000000000000000000000000000000000000030f1b26323c465660676b6c6c6b605b53493f33271b0f0300000000000000000000000000000000000000000000020e1b27333f4b5660676b6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c65625a50453a2e21150900000000000c18242f39434f5960636464646464646362605d555550483f362d22180c01000000000000000000000000000000000000010d1925303a44515b63666767676766666666656463615f57544f473d342a20150a00000000000000000000000000000000000a141d2c353e474f55565e6162615e56564e44392e23170b000000000000000000000000000000000000000000000003101c28343f4a545c60676d70706d68605c544a40342820150a0000000003101c28343f4a545c60686d70706d68605c544a3f34282015090000000004101c2834404a545c60686d70706d67605b544a3f33281f140900000916232f3c4855616b70717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171716e695e52463a2d2014070000000000000000040c1318202930363c43474d5254575e61656769666d6d6e6e6e6d6d67696763605d55535049413d35302820191007000000000000000004101d2a36434f5b6771777979736d63574b3c32261b0f00000000000000000000000000000000000000000000000714202d3a46525e6976797979736d63574b3e3225190c000d1926333f4c58646e737979756f65594d4134281b0e0200000000000000020e1b2834414d59656f757979746e64584c3f33261a0d00000000000000000000030c151d2328333c42464e53555d6064676a676d6e6e6e6d686a6763605c54524c443f383028231c140c05000000000000000000000000000009121a212930383f444b5153575f626668666d6d6e6e6e6d686a6865615f5753504a443f38302c241c130a00000000000000000004111d2935414c565e696e6d6763605c54514b45413a342e271e17110a0200000000000000000000000000000000020e1a25313b454d53545758595a5a5b5b5c5c5c5d5d5c5b5955534e45403930271d1207000000000000000000000000000000000714202d3946525e68767979796f6b6054483b2f22150900000000000000000000000007121d28313947535f696e7979797670665a4e4235281c0f030000000000000000000000000000000000000000000005121f2b3845515e6a74797979736e64584c3f3326190d00000000000000000000000000000000000000000000000000000000000000050e171f272f353d44484f55555d60646769676d6e6e6e6e6d676a6765615e5754514c454039302a221a12090000000000000000000000000000000000000000000000000000000000000006121f2b37434e586772777979786c655b5044372b1f12060000000000000000000000000000000000000000000004111d2a37434f5c67727779797979797979797979797979797979797979797979797979797979797979797979797979716c62564a3d3124170b0000000004101d2935404b55606b6f707171717170706f6d6764615a50483f34291d110500000000000000000000000000000000000005111d2935414c56636d7274747373737373737271706e696360594f463c32261b0f0300000000000000000000000000000006111c262f3e474f596164686d6e6e686760564b3f33271b0e020000000000000000000000000000000000000000000006121f2b3844505c666d737a7c7c7a736d665c51443c32261b0f0300000006121f2c3844505c666d737a7c7c7a736d665c50443c31261a0f0200000006121f2c3844515c666d747a7c7c7a736c665b50443b31261a0e02000a1723303d4a5663707d7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7b6e6154483b2e21150800000000000000050d161d2429323a41464e53565e6166696e71747678797a7b7b7b7a79787674706d6763605b534f46413a322b221910070000000000000004111e2b3744515e6a778386867f7366584e43372b1b1106000000000000000000000000000000000000000000000815212e3b4854616e7b8886867f7366594c403326190d000d1a2734404d5a67738086868175685c4f4235291c0f0200000000000000020f1c2935424f5c68758186868074675a4d4134271a0e000000000000000000030d151e272e343f454d53585f62676d717476797a7b7b7b7a787673706d66615d56504a423d342e261e170e0500000000000000000000000009121b242c333b424a50555c6065696e727578797a7b7b7b7a797775726e6964605b54504a423e362d251c110700000000000000000713202c3945525d686e7b7a75706d66605d55514c4440393028221c140b0400000000000000000000000000000005121e2a36424d575e61646566666768686969696969696866625f58514b43392e23180c050000000000000000000000000000000814212e3b4754616e7a8686867d6f6356493c302316090000000000000000000000010d18242f3943505a626e7b8686868276695c504336291d1003000000000000000000000000000000000000000000000613202c3946535f6c798686868073675a4d4034271a0d010000000000000000000000000000000000000000000000000000000000050e172029313940454f54596163676d70737678797b7b7b7b7a787774716e6965605d55514b423c342c241b13090000000000000000000000000000000000000000000000000000000000000815212e3b47535f6a7784868684786c605346392d22170b0000000000000000000000000000000000000000000005111e2b3844515e6b7784868686868686868686868686868686868686868686868686868686868686868686868686867e7165584b3e3225180b0000000006131f2c3845515d676f7c7d7d7d7d7d7d7d7b7a77716c625a50453a2e2115090000000000000000000000000000000000000713202d3946525e68727f808080808080807f7f7e7d7b77706b60584e43372b1f12060000000000000000000000000000000b17222d38424f59616c70777a7b7a7772675b4f43362a1d100400000000000000000000000000000000000000000005121e2b37424d57606d78808689898680786d60584e43372b1f1306000006121f2b37434e58606d78808689898680786d60584e43372b1f1206000006131f2b37434e58606d78808689898680786c60574d42362a1e120500111e2a3744515d6a77838a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a7e7164574a3e3124170b000000000000060f171f282f353e444c52585f62696e73777b7e818385868787888887868483807d7a75706c656059524c443d342b22191006000000000000000d192633404c5966737f8c9184776a5f5347382d22170b00000000000000000000000000000000000000000006121e2b37424d5765727f8c95887b6e6155483b2e221508000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000020f1c2935424f5c6875828f8d8074675a4d4134271a0e0000000000000000020b151f273039404550575f616a6f75797d81838586878887878583807d79736d68605c544f443f38302920170d020000000000000000000009121b242d363e454d545c60676d72777b7f82848687888887878584827f7b76716c66605c5450483f372d23180d01000000000000000714212d3a4754606d7a8485817d78726d67605d55514a423c332d261d160d0600000000000000000000000000000714212d3a46535e696e7071727374747575767676767675736f6a605c554b40342822170c0000000000000000000000000000000814212e3b4754616e7a8793897c6f6356493c30231609000000000000000000000004101d2935404b55616c76828f92877c6f6255483c2f22150900000000000000000000000000000000000000000000000613202c3946535f6c7986928d8073675a4d4034271a0d0100000000000000000000000000000000000000000000000000000000040d172029323b434b515960636b70757a7d8083858687888887878583817e7b77726d67605c544e463e362d251b120900000000000000000000000000000000000000000000000000000000000915222f3c4855626f7c889696897c6f6353493f33271b0f0300000000000000000000000000000000000000000005111e2b3844515e6b778491999397918d8e8f8f9091919192929292929292929292929292929292929292929292928b7e7165584b3e3225180b000000000714202d3a4753606d79858a8a8a8a8a8a898887837e716c62564a3d3124170b0000000000000000000000000000000000000714212e3a4754616d7a878d8d8d8d8d8d8c8c8c8b8988837d706a5f53473b2e2115080000000000000000000000000000030f1c28333f4a54616b707d8487888784776a5e5144372b1e11040000000000000000000000000000000000000000000714212d3a46535f6974808d929899928d81746a5f53473b2e21150800000815212e3a47535f6a74818d929999928d80746a5f53473a2e21140800000815222e3b47545f6a74818d929998928c8073695f53463a2d21140700111e2a3744515d6a77849091919191919191919191919191919191919191919191919191919191919191919191919191919191919191918a7d7164574a3e3124170b00000000000610182129313a414550565e616a6f757b8084878b8d8f9297949a939a9a93918f8d8a86827d78706b615d564e463d342b22180d040000000000000815212e3b4854616e7b8793887c6f6253493f33271b0f0300000000000000000000000000000000000000000814212e3a47535f69778390908376695f53463a2d211407000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000020f1c2935424f5c6875828f8d8074675a4d4134271a0e00000000000000000a141d273139424b515a62696e757c81858a8d9092929190919192908d8984807a726d666059504a423b32291f140800000000000000000007111b242d363f4850575f666d72797f83888c8e9192919190919192918e8b88837e78716d66615a51493f352a1e1206000000000000000d1a2633404d59667380878c8e8a847f7a736d67605c544e443f382f2820180f0600000000000000000000000003101c28343f4a54616e7b7d7e7f80818182828283838383817f7c746d675c51453e33281c110400000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000040d1a242c3945515d67717e8a948d80736a5f53473a2e21150800000000000000000000000000000000000000000000000613202c3946535f6c7986928d8073675a4d4034271a0d01000000000000000000000000000000000000000000000000000000010c161f29323b444c555d606b70777d82868a8d8f91939a9393939892908e8b87837f7a726d665f5850483f372d241a0f0600000000000000000000000000000000000000000000000000000006121f2b37434e586673808c999a8d8074655b5044372b1f1205000000000000000000000000000000000000000000000b1825313e4b5864717e879298918580818283838484858585858686868686868686868686868686868686868686867e7164584b3e3125180b000000000c1926323f4c5965727f8888888888878888898b908a7e7165584b3e3225180b0000000000000000000000000000000000000c1926333f4c5966727f89898989898989898989898a8f90867c6f6255483c2f221509000000000000000000000000000006121f2b3844505b66707d879193918f8275695c4f4236291c0f030000000000000000000000000000000000000000000815222e3b4855616e7b87939fa3a39f93887c6f6255493c2f22160900000915222f3c4855626f7b88939fa3a39f93877b6e6255483b2f22150800000916222f3c4955626f7c88939fa3a39f93877b6e6155483b2e22150800101d293643505c697682858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585857d7063574a3d3024170a00000000060f18222a333b434b515a61686d747c81868c9095928f8c8a88878686868788898c8f92928f89837d756d6860584f463d342a1f160c0100000000000714212d3a46535e697683908d8073655b5044372b1f120700000000000000000000000000000000000000000815222f3b4855626e7b88958b7e7265574d42362a1e1205000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000020f1c2935424f5c6875828f8d8074675a4d4134271a0e0000000000000006111c262f39434b545c606c717b81878e92918d8a87858483848587898c91918c857f78706b605c544d443b3025190e0200000000000000050e19232d363f48505a61696e787e848b90928e8b8886858483848586888b8f92908a847e78706c635b51463a2e221609000000000000000c1925323f4b57636d737b7f83898f8c85807a726d665f58504a423a322a21180f06000000000000000000000006121f2b3844505c6674818a8b8c8d8d8e8e8f8f8f908f8f8e8c8881796d605a5045392d20150a00000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c30231609000000000000000000010c161f2b37424d57606d7984919184796d60584e43372b1f120600000000000000000000000000000000000000000000000613202c3946535f6c7986928d8073675a4d4034271a0d0100000000000000000000000000000000000000000000000000000007121d28313b444c565e676d747d838a8f9295908d8a888786868787898c8f9295908b857f796f6a615a51493f362c21180b0200000000000000000000000000000000000000000000000000000815212e3a47535f6a778491908f9184786c605346392d20130a000000000000000000000000000000000000000000000a1724303d4956626c717d8691968d8079757677777778787879797979797979797979797979797979797979797979716c6256493d3024170a000000000815222f3b4855626e7b7c7b7b7b7b7b7b7b7c7f879083776a5d5044372a1d110400000000000000000000000000000000030b1623303c4956636f7d7d7d7c7c7c7c7c7c7c7c7c7e828f8d8073665a4d4033271a0d00000000000000000000000000000613202d394653606c788491938884847f7266594c3f3326190c000000000000000000000000000000000000000000000b1825323e4b5865717e8b99a4aeaea5988c7f7265594c3f3226190c00000c1925323f4c5865727f8b98a5aeaea49a8b7f7265584c3f3225190c00000c1926333f4c5966727f8c99a5aeaea4998b7e7165584b3e3225180b000f1c2935424e5a66707678787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878706b6155483c2f231609000000040d18212a343c454d555d606c717a81878e92928f8a86827f7d7b7a7a797a7a7b7d7f82858a8f949089817a6f6a60594f463c31281d1307000000000005121e2a36424d5765727e8b9184786c605346392e23180c0000000000000000000000000000000000000006131f2b37434e586673808c92867a6d6154473b31261a0e02000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000020f1c2935424f5c6875828f8d8074675a4d4134271a0e000000000000030d17222d38424b555c666d757e868e93908984807d7a78777777787a7c80848990928b847d736d665e564d41362a1e1105000000000000020d17202b353f48505a626c707b838b91928c86827e7b7978777777787a7c7e82868c91918b847e726d63574a3e3125180c000000000000000a16232f3b47525b63696e72777d82878f8c857f786f6a605b544c443b332a21180f06000000000000000000000713202d3a4653606d7984898887868685848484838383838488918e81756c6155493c31261b0f03000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000007121d28313947535f6973808d948a7e71675d51463c31261a0f0300000000000000000000000000000000000000000000000613202c3946535f6c7986928d8073675a4d4034271a0d010000000000000000000000000000000000000000000000000000030c18242f39434c565e686e7980889095928d8884807d7b7a79797a7b7d7f82858a9094928c837c716c625b51483e332a1d140a00000000000000000000000000000000000000000000000000000915222f3c4855626f7c889083828f897c6f6256493d32271b0f030000000000000000000000000000000000000000000815212d3945505a626b707c8491928d81786d666a6b6b6b6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c64625a5045392d211508000000000814212e3a47535f696e6f6e6e6e6e6e6e6e6f76839085786c5f5245392c1f1206000000000000000000000000000000030d151d242f3b4854606b6f7070706f6f6f6f6f6f6f70717a878f8275685c4f4235291c0f02000000000000000000000000000916222f3c4955626f7c88968a7e7778726d63574b3e3225180c000000000000000000000000000000000000000000000c1925323f4c5865727f8b98a7b1b2a8998c7f7366594c403326190d00000c1926333f4c5966727f8c99a8b2b1a7998c7f7266594c3f3326190c00000d1a2633404d596673808c99a8b2b1a7988b7f7265584c3f3225190c000d1926323e49545e66696b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6361594f44382c2014070000010c161f2a333c464e575e676d757e858e92928d87827d797673716f6e6d676d6e6f707375797d828890938f847c6f6b60584e433a2f24180d0300000000020e1a25313b4754616d7a8692897c7063544a4034281c10040000000000000000000000000000000000000815212e3b47535f6a7784918f8275685e5246392a1f140900000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000020f1c2935424f5c6875828f8d8074675a4d4134271a0e0000000000010b151f28333f4a545c676d78818b92928b837d7873706d686b6a6a676d6f73787d838b91918880786e685e5246392d20140700000000000009141f29323d47505a626c717e8690938e857f7a75716f6d666a6a6a676d6f72757a7f848b92918a7f7265594c3f3226190c0000000000000007131e2a35404952565e61656b70757c8289908b837c736c665d564d453c332a22180e050000000000000000000714212e3a4754616d7a7d7c7b7a79797878777776767676777c84918a7e7164584e43372b1f1206000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c302316090000000000000000010d18242f3943505a626e7b86929082766c61554b41342a20150a0000000000000000000000000000000000000000000000000613202c3946535f6c7986928d8073675a4d4034271a0d0100000000000000000000000000000000000000000000000000000a151e2935404b555e686e7a838d93928d85807b7773716f6d6d6c6d6e707275797d8389919590867e726d625a50453c2f261c110600000000000000000000000000000000000000000000000006121f2b37434e586673808c8b7f7e8b8d807367584e43372b1f130600000000000000000000000000000000000000000005111d29343e485059606a6f7b8390938e81786d675d555f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f585650483e34291d11050000000006121e2b37424d575f6262626161616161626976828f86796c5f5346392c2013060000000000000000000000000000010b151f272f3539434f59606363636363636262626263636879868f8276695c4f4336291c1003000000000000000000000000000c1825323f4b5865727e8b9184776c6b66635b51463a2f22160a000000000000000000000000000000000000000000000a1723303d4a5663707d8995a0a8a8a0968a7d7164574a3e3124170b00000a1724313d4a5764707d8a96a0a8a8a0958a7d7063574a3d3024170a00000b1724313e4a5764717d8a96a0a9a8a095897d7063564a3d3023170a000a16212d38424c545a5c5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e57554f473e33281c1004000008131e28313c454e585f696e79818a92938e86807b75706d6766646261605d6061626366666d71767c838c9291867d6f6a5f554b40352920150900000000000914202d3946525e6875828f8e8174665c5144382c1f13070000000000000000000000000000000000030f1b27333f4953626f7c88968a7e7164564c41362a180e0300000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000020f1c2935424f5c6875828f8d8074675a4d4134271a0e000000000007121d27313944505b666d79828e9391867e78706c6663615e565d555d6063656c70787e858e938d827a6e6154473b2e2114080000000000020b1925303b444f59626c717e8792928b817a726d686562605c545d555c606265686d72797e858e867b6e6154473b2e21140800000000000000020d19242e3740444d52545960636a6f757d838c90877f786d685f574e463c342a20170d0300000000000000000713202d3946525e686d706f6e6d6d676b6b6a6a6a69696a6a6f7c899083776a5f53473a2e211507000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c30231609000000000000000004101d2935404b55616c76828f92877c6f625a50433a2f22180e030000000000000000000000000000000000000000000000000613202c3946535f6c7986928d8073675a4d4034271a0d010000000000000000000000000000000000000000000000000006111c26303845515d676e7a84909591878079736e6966646261606060616365676d71767d838d92928a7f726c61574e42382d22170b0100000000000000000000000000000000000000000000000815212e3a47535f6a778491867a7a869184786a6054473b2e22150a000000000000000000000000000000000000000000000c17222d363e474f585f696e7a828f938e82796d675d554b525353535353535353535353535353535353535353534b49453e362d22170c0000000000020e1a26313c454d5355555555555554555c6976828f86796c5f5346392c201306000000000000000000000000000007121d273139404547454f545656565656565656565656566c79868f8276695c4f4336291c1003000000000000000000000000000d192633404c5966737f8c8f8276695a595751493f352a1e1206000000000000000000000000000000000000000000000713202d3a4653606d788390969b9b969184796d6053463a2d20130700000713202d3a4653606d788491969b9b969183786d6053463a2d20130700000713202d3a4653606d798491969b9b969083786c605346392d2013060005101c26313a42494e50525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252524a48443e352c21160b0000010d19242f3a434d575f6a6f7b838e93918a817b736e6963605d55575554535153545556545c60646a6f787f879292867c6f675d51453c31261a0e010000000005111d2935414c5664717e8a9285796d6053463a2f24180d010000000000000000000000000000000005121f2b3744505b6573808d9285796d6053473a302519070000000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000020f1c2935424f5c6875828f8d8074675a4d4134271a0e00000000000c18232f39434f59606c78828f9491847c716c66605b5454524c504c5154535b60656c717a818c928a7e7164574b3e3124180b00000000000a141d2a36424d56606b717e889292867e746d68615e565553504a504b515355565d60666d727a828073695e52463a2d201407000000000000000007121c252e323b4246474f54585f626b70788087918c827a6e695f584e463c32291f150b010000000000000005111d2a36414c565e6164636261605c555e5e5d5d5d5c58606b76828f887c6f6255483c2e23180c000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000040d1a242c3945515d67717e8a948d80746a5f53483e31281d1006000000000000000000000000000000000000000000000000000613202c3946535f6c7986928d8073675a4d4034271a0d01000000000000000000000000000000000000000000000000000c17232e38424f59606d7983909691857c736d67615f575755545353545456555c60646b6f78808c9393887e716a5f544a3f33281d120700000000000000000000000000000000000000000000000915222f3c4855626f7c888f827675828f897c6f6256493c32271b0f0300000000000000000000000000000000000000000006111b242d353d464e575e686d79828e938f82796d675d554b4346464646464646464646464646464646464646463e3d39342d241b11060000000000000915202a333c4247484948484848484f5c6976828f86796c5f5346392c20130600000000000000000000000000000c18242f39434b5153514b48494a4a49494949494949535f6c79868f8276695c4f4336291c1003000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4b463f372e23180d020000000000000000000000000000000000000000000006121f2b3844505c666e7b848b8e8e8c847c6f675c5145382c1f1306000006121f2c3844515c666e7c848b8e8e8b847b6e665c5044382c1f1206000006131f2c3845515c676f7c848c8e8e8b847b6e665b5044382b1f120600000a151f2831383e4243454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545453d3c38332c231a1005000004111d2935414c555f696f7c8590948f857d756e69615e5753514b4a484747454747484a4a5053585f666d737e86929184796d60574e42372b1d130700000000010d1925303a4753606d7985928a7d7063554b4035291d1104000000000000000000000000000000000613202d394653606c7884918e8174675d514538281e13080000000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000020f1c2935424f5c6875828f8d8074675a4d4134271a0e0000000004101c2934404b55616b73808c9491837a6f6a605b54504a474641444145474950535b60676d757f8680746c6155493d3023170a0000000006111b262f3846525e696f7d879292867d716c615e56524c4846443f44404547494c52545c60686e75786d60564d42362a1e11050000000000000000000a131c202930363a3d44484e535960666d737c84908f847b6e6a5f584e443b31271d120700000000000000010d1925303a444c52545756555453514b5151515050504f5964717e8b8c7f7366544a4034281c10040000000000000000000000000814212e3b4754616e7a8794897c6f6356493c30231609000000000000010c161f2b37424e57606d79849192857a6d60584e43362c1f160c00000000000000000000000000000000000000000000000000000613202c3946535f6c7986928d8073675a4d4034271a0d0100000000000000000000000000000000000000000000000003101c28343f4a54616b74818e9591847b6f6a605d55534d4a4847464647484a4b51535960666d747f889392867c6e665b5044392f23180c0000000000000000000000000000000000000000000006121f2b37434e586673808c8b7e71717e8a8d807367584e43372b1f13060000000000000000000000000000000000000000000009121b232b343c454d565d676d78818d928f82796d675d554b433930393939393939393939393939393939393931302d29221b120900000000000000030e18212a31373a3b3c3b3b3b3b434f5c6976828f86796c5f5346392c2013060000000000000000000000000004101d2935404b555d605d55514b433d3d3c3c3c3c3c46535f6c79868f8276695c4f4336291c1003000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f423a352e251c1207000000000000000000000000000000000000000000000003101c28343f4a545f696e797f81827f7a6f6a5f554b4034281c1004000004101c2834404a545f6a6e797f81827f796e695f544a3f34281c1003000004101c2834404b555f6a6f7a7f82817f796e695f544a3f33281c0f030000030d161f262d32353638383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838302f2c28211a11080000000613202c3945515d676e7b8591928d827a706b615e57524d4745403e3c3b3a393a3b3c3d3f44464e545c606c717e88938d81746a5f53473a2f24180d010000000008131f2c3845515d6774818e8e8175675d5145392c20130800000000000000000000000000000003101c28343f4a54636f7c8996897d7063554b4035291d10040000000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000020f1c2935424f5c6875828f8d8074675a4d4134271a0e0000000006131f2c3845515c67707d889391847b6e685f58504a443f3a39363035393a3f444950555d606d727c786d605a5045392d211508000000000b17222d38414f59616e7b859292867d706b625a524c46413c3a38342f34383a3c41454b51565e61666d665c50443b3025190e02000000000000000000010a0e171f252a2d33383c43474f545c606a6f7a828e91847c6e6a5f564d43392f24180d040000000000000008131e29323a4146474a4948474645404544444343434754606d7a86908376665c5144382c1f12060000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000007131d28313a47535f6a73808d958b7e71685d52463c31241b0d0400000000000000000000000000000000000000000000000000000613202c3946535f6c7986928d8073675a4d4034271a0d0100000000000000000000000000000000000000000000000006121f2c3844505c66707d8a9392857b6e696058514b46423e3c3a3a393a3b3d4045464f545c606d73808c949083786c60554b4034291c10040000000000000000000000000000000000000000000815212e3a47535f6a778491867a6d6d7a869184786a6054473b2e22150a000000000000000000000000000000000000000000000009111a222a333b444c555d666d77808d928f82796d675d554b42382f262c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2524211d171109000000000000000000060f1820262b2e2f2f2f2e2e36434f5c6976828f86796c5f5346392c201306000000000000000000000000040d1a242c3945515d676d67605d554b403530302f2f3946535f6c79868f8276695c4f4336291c1003000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f42352a231c130a000000000000000000000000000000000000000000000000000b17232e38424d575f676d727575726d675f584e43392e23180c000000000c18232e39424e575f676d727575726d675f574d42382e23170c000000000c18232e39434e585f686d727575726d675f574d42382d22170b00000000040d151c212629292b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2423201c161008000000000714212d3a4754606d7a8491928d80786d686159534d46423b38352f2f2e2d2c2d2e2f2e34383c424a5059616c73808d92877b6e62554b4135291d11040000000004101d2935404b5563707d8992867a6d6053473a3025190d01000000000000000000000000000006121f2b3844505c6674808d9184786c605346392f24180c000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000020f1c2935424f5c6875828f8d8074675a4d4134271a0e00000004111d2935414c56606d79849192877c6f695e564e443f38332d2d2a25292c2d33383f444c515b626a6f6d665c50483e34281d1105000000030f1b27333f4953616b75818e938b7e716b60595046413a35302d2b2823292c2d30353940454c52545c605c544a3f32291f1409000000000000000000000000050d14191e20272c31373d424a515860686d78818e91857c6e685e554b4035291f160c01000000000000020c1720293036393a3d3c3b3a3a38342e373737363945525d6876839086796d6053463a2d2013070000000000000000000000000814212e3b4754616e7a8794897c6f6356493c302316090000000000010d18242f3a43505a626e7b87929083786c60564c41342a2012090000000000000000000000000000000000000000000000000000000613202c3946535f6c7986928d8073675a4d4034271a0d010000000000000000000000000000000000000000000000000713202d3a4653606d78849193877d70695f574e45403a36312f2e2d2d2d2e2e34383d424a515b606c77828f958b7e71675c5145382c1f15090000000000000000000000000000000000000000000915222f3c4855626f7b888f8276686775828f887c6f6255493c32261b0f0300000000000000000000000000000000000000000000000810182129323a434b545c656c74808c928f82796d675c544a42382d221720202020202020202020202020181715110c060000000000000000000000060e151a1e21222222222936434f5c6976828f86796c5f5346392c2013060000000000000000000000010c161f2b37424d57606d79756d675d5145392c23232c3946535f6c79868f8276695c4f4336291c1003000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c120a010000000000000000000000000000000000000000000000000006111c26303c454d555d6065686865605d554e463c30271d12070000000007121c27303c454e555d6065686865605d554d453c30261c11060000000007121d27303c464e565d6065686865605d554d453b2f261c11060000000000030a1016191c1d1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f171614100b0500000000000613202c3945515d67737f8c8d80746d665e564f46423b36302c29242221202020212223282c30383f44505a606d7984918e8175675d5145392c20130600000000000c18242f3a4653606d7985918a7e7164564c41362a1d110500000000000000000000000000000713202d3a4653606d7985928d8073665b5044382b1d1207000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000020f1c2935424f5c6875828f8d8074675a4d4134271a0e0000000713202c3945525d68737f8c968c7f736a60574d443c332d2822201d191d2022272d333a414551586062605c544a3f362c22170c0000000005121f2b3744505b65707d89938e81756d62594f473e36302925201f1c181c1f2024292e343b41464a5053504a42382e20170d020000000000000000000000000002090e11161c20262b303940444e565e666d78818e91847a6e675d51453e31281d130700000000000000050e171e252a2d2e31302f2e2d2c28232b2a2a2935414c566773808d887c6f6255493c2f2216090000000000000000000000000814212e3b4754616e7a8794897c6f6356493c30231609000000000004111d2935404b55616c76828f93877c6f655b50433a2f22180e000000000000000000000000000000000000000000000000000000000613202c3946535f6c7986928d8073675a4d4034271a0d0100000000000000000000000000000000000000000000000713202c38444f5965717e8b968e81746b61574d453c352f2a2622212020212123282c30394044505b656e7a85929184796d6053473c31261a0e020000000000000000000000000000000000000006121f2b37434e586673808c8b7e726564717e8a8d807366584e43372b1f1306000000000000000000000000000000000000000000000000060f1720283139424a535b606e73808c928f82796d665c544a3f3328251b1213131313131313131313130b0a0805000000000000000000000000000003090e12141516151c2936434f5c6976828f86796c5f5346392c201306000000000000000000000007131d28313a47535f69748081796d6053473a2d20202c3946535f6c79868f8276695c4f4336291c1003000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000000000000000000000000000000000a141e2a333c434b5153585b5b5954514c433c342a1e150b0000000000000b151e2a333c434b5154585b5b5854514b433c332a1e150a0000000000000b151e2a343c434c5254595b5b5853514b433b33291d140a0000000000000000050a0d0f10121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212120a0907040000000000000004111d2935414c55636d738080736e605c544c443e36312a251f1d1815141413141415171c1f262e343e45515d67727f8b92867a6d6054473a2d211407000000000007121f2b3844505c6674808d8f8275685e5246392d2014090000000000000000000000000004101c2834404b5563707d8995887c6f62544a3f33281c0b01000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000020f1c2935424f5c6875828f8d8074675a4d4134271a0e0000030f1b27333f4953606d7a86929184796d60584e453b3228221c1713110d1113171b22272f353f464e545653504a42382e241a1006000000000613202d394653606c78849192867a6d615a50473d352a251e191312100c101314191d23283036383f4446443f3830261c0e050000000000000000000000000000000002050b10151b1e272e343d444c545c666d78818f9083796d605a50433a2f24180d0300000000000000050c13191d202124232221201f1c181e1e19242f3e4a5764717d8a8b7e7164584b3e312518060000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000040d1a242c3945515d67717e8a948d80746a5f53493f31281e1006000000000000000000000000000000000000000000000000000000000613202c3946535f6c7986928d8073675a4d4034271a0d0100000000000000000000000000000000000000000000000916222f3b4854606b77849192857a6d61594f453b3329241d1a151413131415181c1f272e343f49535e68727f8b968b7e7164574e42372b1e1206000000000000000000000000000000000000000815212e3a47535f6a778491867a6e61606d7a869184776a5f54473b2e22150a00000000000000000000000000000000000000000000000000050e161f2730394149505c646e73808c928f81786d665b504440372d241a100700060606060606060600000000000000000000000000000000000000000206080809101c2936434f5c6976828f86796c5f5346392c20130600000000000000000000030c18242f3a43505a626e7b878e8174675b4e413428202c3946535f6c79868f8276695c4f4336291c1003000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f02000000000000000000000000000000000000000000000000000000020c18212a31394045474c4e4f4c4745413a312a22180c03000000000000030c18212a313a4145474c4e4f4c4745413a312a21180c03000000000000030c18222a313a4145474c4f4e4c47454039312921180b0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010d19242f3a43525b636e73736e645c504a423a322a251f1a14100c070807060708060c10151c232935404b55606d7a86928a7e7164574b3e3124180b000000000003101c28343f4a54626f7c8892867a6d6154473b31251a0e0204040404040404040404040406131f2c3845515c6774818e9184776a5f5342382d22170b00000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000020f1c2935424f5c6875828f8d8074675a4d4134271a0e000005121f2b3744505b65727f8c968a7e71665c51463d33292017110b06050104060b11171e2429343d43474946443f3830261c12080000000005121e2a36424d5763707d8a958c7f73685e52483f352b2319130d080603000406080d12181e252a2e34383a38342e261e150a0000000000000000000000000000000000000000040a0c151c2328323a424a545c666d7983908d80746c61554b4135291f1509000000000000000002080d111314171615141313100c070815222e3b4855616e7b888d8073675a4d402d22170b0000000000000000000000000814212e3b4754616e7a8794897c6f6356493c30231609000000010c161f2b37434e58606d79849192857a6d60584e41382d1f160c00000000000000000000000000000000000000000000000000000000000613202c3946535f6c7986928d8073675a4d4034271a0d0100000000000000000000000000000000000000000000030f1c28333f4a5463707d89958c7f73685e52473d332a2118130e0907070607070c10151c232d38414c56606d7984919083776a5f53473a2e211406000000000000000000000000000000000000000915222f3c4855626f7b88908376685e5d6775828f887c6f6255493c32261b0f0300000000000000000000000000000000000000000000000000040d151e272f383f44525c636d737f8c928e81786c605c52493f362c23190f06000000000000000000000000000000000000000000000000000000000000000003101c2936434f5c6976828f86796c5f5346392c201306000000000000000000000b151e2935404b55616c75828f867c6e6255483b2f22202c3946535f6c79868f8276695c4f4336291c1003000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000000000000000000000000000000000000000000000060f181f282f35393a3f42423f3a39352f281f1810060000000000000000060f181f282f35393a3f42423f3a39352f281f180f0600000000000000000610181f282f35393a3f42423f3a39352f281f180f0600000000000000000002070b0d0d13130f0e0c09040000000000000000000000000000000000000004090c0e0f13130e0d0b0703000000000000000000000000000000000000000008131e28314049525c636667645c52443f383028201a140e0904000000000000000000030a1118242f3945525d6876838f8d8074675a4d4134271a0e0000000000000b17232e384754606a7784918b7e7265574d42362a1e12101010101010101010101010101013202d3a4653606d7985928c7f7266584e432f261c110600000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000020f1c2935424f5c6875828f8d8074675a4d4134271a0e00000613202d394653606c7884919184786c60544a40342b20170e0600000000000000060b1319222b32373b3c3a38342e261e140a00000000000714212d3a46535f6976828f9285796d60564c41362d23191008020000000000000000070c14191c23282c2d2c28231c150c0300000000000000000000000000000000000000000000030b121820293039424a545d676e7a85928a7d70675d51453c31261a0e03000000000000000000010507080b0e0d0b0b0b0b0b0b0b13202d394653606c79858f827569544a3f33281c0f0300000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000007131d28313a47535f6a73808d958b7e71685d52463c2f261b0d0400000000000000000000000000000000000000000000000000000000000613202c3946535f6c7986928d8073675a4d4034271a0d010000000000000000000000000000000000000000000006121f2b3844505b6674818e92867b6e61564c41352c21180f070100000000000000040b121b262f3b44505c66737f8c95887b6e6255483b2d22170b00000000000000000000000000000000000006121f2b37434e586673808c8c7f7265565565717e8b8d807366584e43372b1f13060000000000000000000000000000000000000000000000000000030c151d262d33404a525b636d73808d928e81746e635b51483e352b21170d040000000000000000000000000000000000000000000000000000000000000003101c2936434f5c6976828f86796c5f5346392c20130600000000000000000007121d27303945515d67707d8a8d80736a5f53473a2e21202c3946535f6c79868f8276695c4f4336291c1003000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000000000000000000000000000000000000060d161d24292c2d323535322d2c29241e160d0600000000000000000000060d161d24292c2d323535322d2c29241d160d0600000000000000000000060d161e24292c2d323535322d2c29241d160d06000000000000000001080e1317191a20201c1b191510090200000000000000000000000000000002091015191b1c20201a1a17130e0801000000000000000000000000000000000000010c161f2e37404a52575a5a58524a40342e261e160e09030000000000000000000000000007121d2935414c566773808d9083766a5d5043372a1d1000000000000006111c2b37434e5866737f8c908376695e53463a2d211d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d2935404b5564707d8a93877b6e6154483c3221140a0000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000020f1c2935424f5c6875828f8d8074675a4d4134271a0e00000916232f3c4956626f7c89968c7f72655b5042392e22190e050000000000000000000108101920272b2e2f2d2b28231c140c0200000000000815222e3b4855616e7b88948d8074675d51443a30241b1107000000000000000000000002080e11171c1f201f1c17110a0300000000000000000000000000000000000000000000000000070e171e273038424b555e68707d889184796d60574d42372b2015090000000000000002080d111414181b1a18181818181818181f2b3744505b657783908477665b5044382b1f120600000000000000000000000814212e3b4754616e7a8794897c6f6356493c302316090000010d18242f3a43505a626e7c87929083786c60564c41342a1d140a0000000000000000000000000000000000000000000000000000000000000613202c3946535f6c7986928d8073675a4d4034271a0d01000000000000000000000000000000000000000000000613202d394653606c7985918f8275695e52443a30231a0f0600000000000000000000000a141d28343f4a54616e7a86928c7f7265544a3f33281c0f0300000000000000000000000000000000000814212e3a47535f6a778491877b6e615454616d7a869184776a5f53473b2e21150a000000000000000000000000000000000000000000000000000000030b141b2227374049525b636e73808d938d80736d625a50473d33291f160b0200000000000000000000000000000000000000000000000000000000000003101c2936434f5c6976828f86796c5f5346392c2013060000000000000000020c18232e39424e58606d79849184796d60584e43372b1f202c3946535f6c79868f8276695c4f4336291c1003000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f02000000000000000000000000000000000000000000000000000000000000040c12181d20202528282621201d19130c04000000000000000000000000040c13181d20212528282521201d18130c04000000000000000000000000040c13191d20212628282520201d18120c040000000000000000020a12191f2326272d2d292825211b140c0300000000000000000000000000030c141b212528292d2d2726231f19120b02000000000000000000000000000000000000040d1c252e3840474b4d4d4c47403828231c150c05000000000000000000000000000000010d19242f3f4b5865727e8b9184786b5e5145382b1e12000000000000000f1b27323c4855616e7b8893877b6e6154483c31262a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2c3945515d6775818e908376695e53463a2d2114020000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000020f1c2935424f5c6875828f8d8074675a4d4134271a0e0004101c2834404b556673808c93877b6e6153493f30271c1007000000000000000000000000070f151b1f2223201f1c17110a020000000000030f1c28333f4a5465727f8b96887b6f62554b4032291e120d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d060c10121312100c0607040000000000000000000000000000000000000000000000000000050c151e262f39434c56616b74818e8d8073695f53473c31261a0e010000000000050d14191e202124272624242424242424242427333f49536875828e86796c605346392d20130600000000000000000000000814212e3b4754616e7a8794897c6f6356493c30231609000004111d2935404b55616c76828f93877c6f655b50443a3022180b020000000000000000000000000000000000000000000000000000000000000613202c3946535f6c7986928d8073675a4d4034271a0d01000000000000000000000000000000000000000000000916232f3c4956626f7c89978a7e7164564d4232291e1108000000000000000000000000020b17232e3846525e6876838f8f8376665b5044382b1f120600000000000000000000000000000000000815222f3b4855626e7b88908377695e53525e6876838f887c6f6255493c31261b0f03000000000000000000000000000000000000000000000000000000020a1117252e374049525c646e74818e928b7f726c61594f453b31281d140a00000000000000000000000000000000000000000000000000000000000003101c2936434f5c6976828f86796c5f5346392c20130600000000000000000a141e2834404b54606a74808d897d70675d51463c31261a202c3946535f6c79868f8276695c4f4336291c1003000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000000000000000000000000000000000000000001070d101314191b1c191413110d0801000000000000000000000000000001070d111314191b1c191413110d0701000000000000000000000000000001080d111314191c1b191413100d07010000000000000000010a141c242b2f333439393534312c261e150c020000000000000000000000020c151e262c31343539393433302b241d140b010000000000000000000000000000000000000a131c262e353b3f40403f3c362e2617110a030000000000000000000000000000000000081824313e4b5764717e8a9285786c5f5245392c1f12000000000000000a15212d3a46535f697683908c7f7266584e43373737373737373737373737373737373737373a4753606d7a86928b7e7265574d42362a1e12050000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000020f1c2935424f5c6875828f8d8074675a4d4134271a0e0006131f2c3845515c67768390908377695e5241382d1e150b0000000000000000000000000000040a0f1315161312100b060000000000000006121f2b3844505b6675828f9184776a5f5343392f20171a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a161613100b0500000000000000000000000000000000000000000000000000030c141d27313b444f59616d7a8592877b6e61574d42372b1e130800000000050e171e252a2d2e313433313131313131313131312d404d596673808c877b6e6154483b2e21150800000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900040d1a242c3945515d67717e8a948e81746a6053493f32281e1007000000000000000000000000000000000000000000000000000000000000000613202c3946535f6c7986928d8073675a4d4034271a0d01000000000000000000000000000000000000000000000c1925323f4c5865727f8b96877b6e6154483b3021170c000000000000000000000000000006111c2a36414c566673808c9285796c605346392d2013060000000000000000000000000000000006121f2b37434e5866737f8c8c7f7366574d4c5665727f8b8d807366584e43372b1f1206000000000000000000000000000000000000000000000000000000000006131c252e37404a525c606d78818e93877e706b60574d43392f261b1106000000000000000000000000000000000000000000000000000000000003101c2936434f5c6976828f86796c5f5346392c2013060000000000000006111c26303845515c666f7c878e81746b60554b40342a2015202c3946535f6c79868f8276695c4f4336291c1003000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f02000000000000000000000000000000000000000000000000000000000000000000010406070c0f0f0c07060401000000000000000000000000000000000000010406070c0f0f0c07060401000000000000000000000000000000000000010406070c0f0f0c070604010000000000000000000008121c262e363b3f40464642413d3730271e1409000000000000000000000009141e2730373d41424646413f3c362f261d1208000000000000000000000000000000000000010a141c242a2f32333433302b241c1406000000000000000000000000000000000000000b1825313e4b5864717e8b9285796c5f5246392c1f130000000000000005121e2a36424d5765727f8b9083776a5f534743434343434343434343434343434343434343414c5664717e8a92867a6d6054473b31251a0e020000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000020f1c2935424f5c6875828f8d8074675a4d4134271a0e000713202d3a4653606d7986928d807367564d422f261b0c0300000000000000000000000000000000030608090706030000000000000000000613202d394653606c7985928d817467584e43312826262626262626262626262626262626262626262626262626262322201c160f0700000000000000000000000000000000000000000000000000020b151f29323e46525d68727e8b8e8175695f53473a2f24190d010000020d1720293036393b3e41403e3e3e3e3e3e3e3e3e3e3e3e4b5865717e8b897c706356493d3023160a00000000000000000000000814212e3b4754616e7a8794897c6f6356493c30231609010c161f2b37434e58606d79849192857a6d61584e41382d20160c00000000000000000000000000000000000000000000000000000000000000000613202c3946535f6c7986928d8073675a4d4034271a0d01000000000000000000000000000000000000000000020e1b2835414e5b6874818e918477695e52463a2d2014050000000000000000000000000000000e1925303d495663707c8998887b6e6255483b2f221508000000000000000000000000000000000814212e3a47535f6a778490887c6f6255484854616e7b879184776a5f53473a2e21150a0000000000000000000000000000000000000000000000000000000000000a131c252e384044505c666d79829092867d6f695f554b41382d22170e040000000000000000000000000000000000000000000000000000000003101c2936434f5c6976828f86796c5f5346392c201306000000000000030c17232e38424e58606d798391847a6d60594f43392f22180e202c3946535f6c79868f8276695c4f4336291c1003000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020e19242e3840474c4d53534f4d49423930261b100400000000000000000004101b26303942494d4f53534d4c4740382f24190e03000000000000000000000000000000000000020a12191f2326272726231f19120b00000000000000000000000000000000000000000c1925323f4c5865727f8b9285786b5f5245382c1f1200000000000000020e1a26313b4754616d7a8692887c6f6253495050505050505050505050505050505050505050525d6875828f8f8275685d524539291f1409000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000020f1c2935424f5c6875828f8d8074675a4d4134271a0e000915222f3c4855626f7b88998a7d7064574a3d3024140a0000000000000000000000000000000000000000000000000000000000000000000815222e3b4855616e7b88988a7d7164574a3e31333333333333333333333333333333333333333333333333333333302f2c272119110700000000000000000000000000000000000000000000000000030d17202935414c56606d788491877b6e62554c4135291d1104000008141e29323b4146474b4e4d4b4b4b4b4b4b4b4b4b4b4b4b4b5663707c898b7e7164584b3e3125180b00000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160907131d28313a47535f6a73808d958b7e72685e52463c2f261b0e0400000000000000000000000000000000000000000000000000000000000000000613202c3946535f6c7986928d8073675a4d4034271a0d0100000000000000000000000000000000000000000004101c2834404b556a7783908e827568574d42362a1e12050000000000000000000000000000000814202d3a4753606d7a86938a7e7164574b3e3124180b000000000000000000000000000000000815222f3b4855626e7b889184776a5f534746525e69768390887c6f6255483c31261b0f030000000000000000000000000000000000000000000000000000000000010a131c2628343f4a545c676d7a839192857b6e675d53493f332720160c0200000000000000000000000000000000000000000000000005010003101c2936434f5c6976828f86796c5f5346392c2013060000000000000b151e28343f4a545f6a73808c8a7d70685d52473d31271d0f13202c3946535f6c79868f8276695c4f4336291c1003000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000104060708080807060400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007131f2b36404a52585a60605c59544b42372c2115090000000000000000000915212c37424b54595c60605a58524a40362b1f13070000000000000000000000000000000000000000070e1317191a1a1917130e08010000000000000000000000000000000000000006101c2934404b556773808d9184776a5e5144372b1e1100000000000000000914202d3946525e6875828f8d8073655b5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d616d7a86928a7d7164564c413529170d03000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000020f1c2935424f5c6875828f8d8074675a4d4134271a0e000a1724313d4a5764707d8a99887b6e6255483b2f2215080000000000000000000000000000000000000000000000000000000000000000000a1724303d4a5763707d8a99887b6f62554840404040404040404040404040404040404040404040404040404040403d3b38322b23190f0500000000000000000000000000000000000000000000000000050e1924303a44505c66717e8b8d8174675d5145392c20140900010d1925303b444c5254575a595757575757575757575757575757616e7b888c7f7366594c403326190d00000000000000000000000814212e3b4754616e7a8794897c6f6356493c302316090d18242f3a43505a626e7c87929083786c60564c41342b1d140a0000000000000000000000000000000000000000000000000000000000000000000613202c3946535f6c7986928d8073675a4d4034271a0d0100000000000000000000000000000000000000000006131f2c3845515c677885928d8073665a4d4030251a0e0200000000000000000000000000000006131f2c3845515d677885918c7f7266594c3f3326190c00000000000000000000000000000006121e2b37424e5766737f8c8d807367584e43424d5766727f8c8c807366584e43372b1f1206000000000000000000000000000000000000000000000000000000000000010a1417232e38424b555d686e7b85929083796d655b50443d32281e1308000000000000000000000000000000000000000000040607110e0908101c2936434f5c6976828f86796c5f5346392c201306000000000007121c27303944505c666f7c868e81746b61564c41352b1f150b13202c3946535f6c79868f8276695c4f4336291c1003000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040607070d1113141515141413100c07080603000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b17232f3b47525c64676c6c68655d54493d3125190c0000000000000000000c1925313d49545d65686c6c67645c52473c3023170b00000000000000000000000000000000000000000002070a0c0d0d0d0b070300000000000000000000000000000000000000030a1117232c3845515c6776828f8f8275695c4f4236291c0f000000000000000005111d2a36414c5664717e8a9184786c6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a717e8b9285796d6053463a3024190d01000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000020f1c2935424f5c6875828f8d8074675a4d4134271a0e000c1926333f4c5966727f8c9286796d6053463a2d2013070000000000000000000000000000000000000000000000000000000000000000000c1926323f4c5965727f8c9386796d60534d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4948443d352b21160b000000000000000000000000000000000000000000000000000008131e28343f4a54606d798491857a6d6054473b30251a0e0205111e2a36414c565e616467666464646464646464646464646464646d79868e8174675b4e4134281b0700000000000000000000000814212e3b4754616e7a8794897c6f6356493c30231609111d2935404b55616c76828f93877c6f665b50443a3022190b020000000000000000000000000000000000000000000000000000000000000000000613202c3946535f6c7986928d8073675a4d4034271a0d010000000000000000000000000000000000000000000713202d3a4653606d7986978b7e7165584b3e322518090000000000000000000000000000000004101d2935404b55697683908d8074675a4d4134271a0e0000000000000000000000000000000814212e3a47535f6a778490897c6f6356493c3b4855616e7b889184776a5f53473a2e21150a000000000000000000000000000000000000000000000000000000000000000006111c263039434c565e69707d87928f81776c60594f443a3025190e05000000000000000000000000000000000001070c1013141e1b1615131c2936434f5c6976828f86796c5f5346392c20130600000000000c18232e39424e58606d788390847a6d60594f443a2f231a0d0313202c3946535f6c79868f8276695c4f4336291c1003000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070c10121317181d2021212221201f1d181615130f0a0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1926333f4c58646e737979756f65594d4134281b0e0200000000000000020e1b2834414d59656f757979746e64584c3f33261a0d00000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000003090c151c2328333f4a54606d7985928d8073665a4d4033271a0d0000000000000000010d1925303a4753606d798592897d7676767676767676767676767676767676767676767676767678828f8e8174675c514538281e130800000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000020f1c2935424f5c6875828f8d8074675a4d4134271a0e000d1a2734404d5a6773808d918478665c5144382c1f12060000000000000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d918478675c5959595959595959595959595959595959595959595959595959595959595956544f473d32271c100400000000000000000000000000000000000000000000000000020c17232e3844505c66737f8c8b7e7265574d42362a1e12050714202d3946525e686e7174737171717171717171717171717171717178858f8276695c4f432f24180d01000000000000000000000814212e3b4754616e7a8794897c6f6356493c302316161a242c3945515d67717e8a948e81746a60544a3f32281e1007000000000000000000000000000000000000000000000000000000000000000000000613202c3946535f6c7986928d8073675a4d4034271a0d010000000000000000000000000000000000000000000815222e3b4855616e7b8894897d7063564a3d3023170a00000000000000000000000000000000000c18242f414e5b6874818e8e8275685b4f4235281c0f0000000000000000000000000000000815222f3b4855626e7b889285796c605346393a47535f69778490887b6f6255483c31261a0f0200000000000000000000000000000000000000000000000000000000000000000a141e27303a444d57606b727f8b938c7f736b60564c41352920170d02000000000000000000000000000000030b12181d1f202b2723221f1b2936434f5c6976828f86796c5f5346392c2013060000000004101c2834404a545f6a727f8c8a7d70685d52473e32281e11080013202c3946535f6c79868f8276695c4f4336291c1003000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f02000000000000000000000000000000000000000000000000000000000000000000000000000000000003090e12181c1f202424292c2d2e2f2e2d2c292422221f1b15100c070100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1a2734404d5a67738086868175685c4f4235291c0f0200000000000000020f1c2935424f5c68758186868074675a4d4134271a0e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040a0f151a1e262e343e44505b66717d8a97897c706356493d3023160a00000000000000000008131f2c3845515d6774818e8f8983838383838383838383838383838383838383838383838383848f94897c7063554b403428160c0200000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000020f1c2935424f5c6875828f8d8074675a4d4134271a0e000e1b2734414e5a6774818d9084776a544a4034281c10040000000000000000000000000000000000000000000000000000000000000000000e1b2734414e5a6774818d9084776a66666666666666666666666666666666666666666666666666666666666666666360594f44382c201307000000000000000000000000000000000000000000000000000006111c28343f4a54616e7b87908376695e52463a2d2014060814212e3b4754616e7a7e81807e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e8a9084776a554b4135291d1104000000000000000000000814212e3b4754616e7a8794897c6f6356493c30232323232b37434e58606d79849192857a6d61584e42382d20160c00000000000000000000000000000000000000000000000000000000000000000000000613202c3946535f6c7986928d8073675a4d4034271a0d010000000000000000000000000000000000000000000916222f3c4955626f7c8895887b6f6255483c2f2215090000000000000000000000000000000000071a2734404d5a6773808d8f8276695c4f4336291c10000000000000000000000000000006121e2b37424d5766737f8c8e8174665b50443837424d576673808c8c807366584e43372b1f12060000000000000000000000000000000000000000000000000000000000000000020c151e28323b454f59626d74818e93877d70685e52463f32291f14090000000000000000000000000000030d151d24292c2d38342f2e2b272936434f5c6976828f86796c5f5346392c2013000003060609121f2c3844515c666f7c868e81746c61564c41352c20160c090913202c3946535f6c79868f8276695c4f4336291c1009090906060300000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000000000000000000000000000000000000000000000000000000000000000000002080d141a1c23282c2d302f35393a3b3b3b3a38352f2f2e2b271f1d18120b06000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000020f1c2935424f5c6875828f8d8074675a4d4134271a0e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040b10151b1f262b30383f444f59606c7883909185796d6053463a2d20130700000000000000000004101d2935404b5563707d8997959090909090909090909090909090909090909090909090909091969184786c605346392e2318060000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000020f1c2935424f5c6875828f8d8074675a4d4134271a0e000f1b2835424e5b6875818e9083766a5d50432e23180c000000000000000000000000000000000000000000000000000000000000000000000f1b2835424e5b6875818e908376737373737373737373737373737373737373737373737373737373737373737373706b6054483b2f2216090000000000000000000000000000000000000000000000000000000c17232e3846525e6976838f877b6e6154483b2e23170b0714202d3a4753606d7a858d8c8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a90928578675d5145392c201306000000000000000000000814212e3b4754616e7a8794897c6f6356493c302f2f2f2f313a47535f6a73808d958b7f72685e52463d2f261c0e0400000000000000000000000000000000000000000000000000000000000000000000000613202c3946535f6c7986928d8073675a4d4034271a0d010000000000000000000000000000000000000000000916232f3c4956626f7c8995887b6e6255483b2f22150800000000000000000000000000000000000d1a2633404d596673808c908376695d5043362a1d1000000000000000000000000000000814212e3a47535f697783908a7d7063544a3f33313c4855626f7c889184776a5f53473a2e211509000000000000000000000000000000000000000000000000000000000000000000030c162029333d47515b606d79839091847a6d615b51443b3025190c03000000000000000000000000010b151f272f35383a44413c3b37322d36434f5c6976828f86796c5f5346392c2013060b0f121315202c38444f59606d78839084796d60594f443a30231a1515151515202c3946535f6c79868f8276695c4f4336291c1515151513120f0b060000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000000000000000000000000000000000000000000000000000000050c13191f252a2e34383a3d41414547484847474540403c3b37322c29241d17110a0200000000000000000000000000000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000020f1c2935424f5c6875828f8d8074675a4d4134271a0e000000000000000000000000000000000000000000000000000000000000000000000000000000000000070c10161c20262b31373d424a5059616b737f8c958c7f72665c5044382b1f1206000000000000000000000c18242f3a4653606d798591948f8787878787878787878787878787878787878787878787898f998d8073655b5044372b1f12070000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000020f1c2935424f5c6875828f8d8074675a4d4134271a0e000f1c2935424f5c6875828f8f8376695c504336291d07000000000000000000000000000000000000000000000000000000000000000000000f1c2935424f5c6875828f9184808080808080808080808080808080808080808080808080808080808080808080807c706356493d3023160a0000000000000000000407090a070604010000000000000000050006111c2a36424d5665727e8b8b7e7265544a3f34281c100613202c3945515d6774808d96918a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8d8b877a6d6054473a2d211407000000000000000000000814212e3b4754616e7a8794897c6f6356493c3c3c3c3c3c3c43505a626e7c87929083786d60564c41342b1d140a0200000000000000000000000000000000000000000000000000000000000000000000000613202c3946535f6c7986928d8073675a4d4034271a0d010000000000000000000000000000000000000000000a1623303d495663707c8994877b6e6154483b2e21150800000000000000000000000000000000000c1926333f4c5966727f8c9083776a5d5044372a1d1100000000000000000000000000000815222f3b4855626e7b889285796d6053463a2d2e3a47535f6a778491887b6e6255483c31261a0e02000000000000000000000000000000000000000000000000000000000000000000040e17212b353f45515c676e7c86928f82756d62564d42362a1e150b00000000000000000000000007121d273139404547514e4947433d3a36434f5c6976828f86796c5f5346392c200a11171c1f2022222f3c4854606b73808d877c6f675d51473e322822222222222222222c3946535f6c79868f8276695c4f4336292222222222201f1c17110a02000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000000000000000000000000000000000000000000000000000000000000000080e161e252a3136394044464a4d4b515454555453514b4d4947433c38352f28221c140b05000000000000000000000000000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000020f1c2935424f5c6875828f8d8074675a4d4134271a0e00000000000000000000000000000000000000000000000000000000000000000000000000000002080d12181c1f272c32373c42474f545c606b707d87929184796d60544a3f34281c10030000000000000000000007121f2b3844505c6674808d8f827a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7c8995887c6f6253493f33271b0f030000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000020f1c2935424f5c6875828f8d8074675a4d4134271a0e000f1b2835424e5b6875818e9083766a5d50432e23170b000000000000000000000000000000000000000000000000000000000000000000000f1c2835424f5b6875828e96918c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8074675a4d4134271a0e00000000000000050b101316171413110d0701000106090b0c1212120e1925303b4854616e7b878f8275665c5044382b1f1212101d2935404b55616e7b8891847e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e807f7e796d6053473a2d201407060200000000000000000814212e3b4754616e7a8794897c6f635649494949494949494b55616c76828f93877c6f665c50443a30251e19130c04000000000000000000000000000000000000000000000000000000000000000000000613202c3946535f6c7986928d8073675a4d4034271a0d010000000000000000000000000000000000000000000a1723303d4a5663707d8994877a6d6154473a2e21140700000000000000000000000000000000000c1925323f4c5865727f8b9084776a5d5144372a1e110000000000000000000000000006121e2b37424d5766737f8c8e8275675c5145382c2b37434e586673808d8c7f7366574e42372b1e120600000000000000000000000000000000000000000000000000000000000000000000050f19232834404b555f6a727f8b938b7e72695e52463e30271d120700000000000000000000000c18242f39434b51535e5a56544e484642434f5c6976828f86796c5f5346392c20141c22282b2d2f2f303d4a5663707d868c7f736b60554b40352f2f2f2f2f2f2f2f2f2f2f3946535f6c79868f8276695c4f43362f2f2f2f2f2f2d2b28221c140b020000000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000000000000000000000000000000000000000000000000000000000000006111a202830363b42464a5153575a555d60616261605d555955544e47454039332d261d170f070000000000000000000000000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000020f1c2935424f5c6875828f8d8074675a4d4134271a0e0000000000000000000000000000000000000000000000000000000000000000000000000003090e13191d23282c33383c43474d535960666d737d869293887d70675d5142382e23170b000000000000000000000003101c28343f4a54626f7c8992857a6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e727f8c9083776a5f5341382d22170b000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000020f1c2935424f5c6875828f8d8074675a4d4134271a0e000e1b2834414e5b6774818e9084776a544a3f34281c10030000000000000000000000000000000000000000000000000000000000000000000e1b2835414e5b6874818e96918c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8f948e8175685b4e4235281b0f000000000000080f161c20222321201d18130f0a0c121518181f1f1f1f1f202d3a46525e6977849185796d6053463a2d201f1f1f18242f3947535f6976839085797171717171717171717171717171717372716d675d5145392c1f1514120e09030000000000000814212e3b4754616e7a8794897c6f63565656565656565656565d67717e8a948e81746b60544a3f39363029251e160e060000000000000000000000000000000000000000000000000000000000000000000613202c3946535f6c7986928d8073675a4d4034271a0d010000000000000000000000000000000000000000000a1723303d4a5663707d8993867a6d6053473a2d20140700000000000000000000000000000000000c1825323f4b5865727e8b9084776a5d5144372a1e11000000000000000000000000000814212e3a47535f697783908a7e7164554b40342826313c4956626f7c899084776a5f53473a2e2115090000000000000000000000000000000000000000000000000000000000000000000000071118232e39434e58626d75828f92857b6e61594f43392e23180c0100000000000000000004101d2935404b555d606b6762605854524d474f5c6976828f86796c5f5346392c141d262d3338393c3c3c3c4754616e7b8182786c60594f433c3c3c3c3c3c3c3c3c3c3c3c3c3c46535f6c79868f8276695c4f433c3c3c3c3c3c3c3938332d261d140a0000000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000000000000000000000000000000000000000000000000000000000020a1117232b323a41464d53545c60636769676d6e6e6e6d67696662605853514b443f382f292119110800000000000000000000000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000020f1c2935424f5c6875828f8d8074675a4d4134271a0e0000000000000000000000000000000000000000000000000000000000000000000000040a0f141a1e24292e34383d44484e54575f626b70787f8792928c7f726b60554b4030261c11060000000000000000000000000b17232e384754606a7784918a7e71646161616161616161616161616161616161616a7783908c7f7266584e432f261b1106000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000020f1c2935424f5c6875828f8d8074675a4d4134271a0e000d1a2734404d5a6773808d918478665c5044382b1f12060000000000000000000000000000000000000000000000000000000000000000000e1a2734414d5a6774808d91847f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f828f8e8175685b4e4235281b0f000000000008111921272c2f302d2c29241d1b15181d2224252c2c2c2c2c2c2a36424d576774818d897c6f6256493c2f2c2c2c2c2c2c2b37424d5764717e8b897d706464646464646464646464646464666564605d554b4035292122211e1a150e0600000000000814212e3b4754616e7a8794897c6f6362626262626262626262626d79849192857a6e6159534d4746413a3530282017110a02000000000000000000000000000000000000000000000000000000000000000613202c3946535f6c7986928d8073675a4d4034271a0d010000000000000000000000000000000000000000000a1723303d4a5663707d8993867a6d6053473a2d20140700000000000000000000000000000000000c1825323f4b5865727e8b9084776a5d5144372a1e11000000000000000000000000000815222f3b4855626e7b8892867a6d6053473a2e23222e3b4754606a788491887b6e6255483c31261a0e02000000000000000000000000000000000000000000000000000000000000000000000007121d27303c46515b616e7a85928f82756c61554b4034281d130700000000000000000006131f2c3845515d676d77746f6a66615e5753515c6976828f86796c5f5346392c1c262f383f44464848484848525e696e75796d665b504848484848484848484848484848484848535f6c79868f8276695c4f484848484848484846443f382f261c110600000d1a2734404d5a6773808d8f8275685c4f4235291c0f02000000000000000000000000000000000000000000000000000000000000000000020b141b2227353d444c52575e61666d707476797a7b7b7a7a7876736f6a65605d55504a423b332b231a1108000000000000000000000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000020f1c2935424f5c6875828f8d8074675a4d4134271a0e000000000000000000000000000000000000000000000000000000000000000000040a0f161b1f262a3035394045464f54585f62696e757d838c93938c80736d63594f43392f1e140a0000000000000000000000000006111c2b37434e5866737f8c8f8275685d54545454545454545454545454545455626f7b8893877b6e6154483c3121140a00000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000020f1c2935424f5c6875828f8d8074675a4d4134271a0e000d192633404c5966737f8c9286796d6053463a2d2013070000000000000000000000000000000000000000000000000000000000000000000c1926333f4c5966727f8c918478727272727272727272727272727272727272727272727272727272727273808d8e8174685b4e4135281b0e0000000008111a232b33383c3d3a39352f2b261f23292e313238383838383838303e4a5764717d8a8c7f7266594c3f3138383838383838313c4753606d7a858e8175685d5757575757575757575757575a585753514b43392f2c2d2f2e2b2620180f06000000000814212e3b4754616e7a8794897c6f6f6f6f6f6f6f6f6f6f6f6f6f73808d968b7f726864615f5754524c46413a3227221b140b020000000000000000000000000000000000000000000000000000000000000613202c3946535f6c7986928d8073675a4d4034271a0d010000000000000000000000000000000000000000000a1723303d4a5663707d8993867a6d6053473a2d20140700000000000000000000000000000000000c1825323f4b5865727e8b9084776a5d5144372a1e1100000000000000000000000005121e2b37424d5766737f8c8f8275675d5145392c1d1f2b37434e586774808d8c7f7366574d42372b1e12060000000000000000000000000000000000000000000000000000000000000000000000000b151e2a333f46525e68727f8b938a7d70675c51453a2f24180d0100000000000000000714202d3a4753606d7984807c77726e6964605d556976828f86796c5f53463924222d38424a5053555555555555565e61676d675c54555555555555555555555555555555555555555f6c79868f8276695c55555555555555555553504a42382d22170b00000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000000000000000000000000000000000000000000000a141d262d3340474f565e61696e74797d80838587878887868582807c77726d67605b544d453d352c231a11070000000000000000000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000020f1c2935424f5c6875828f8d8074675a4d4134271a0e0000000000000000000000000000000000000000000000000000000000000003090e161b20272b31363a41454b51535960636a6f757b8289909591877f736e645b51473d31281d0c0200000000000000000000000000000f1b27323d4855616e7b8892867a6d6154474747474747474747474747474e586673808c8f8376695e52463a2d20140200000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000030f1c2936424f5c6975828f8d8074675a4d4134271a0e000b1724313e4a5764717d8a99887b6e6155483b2e2215080000000000000000000000000000000000000000000000000000000000000000000b1824313e4b5764717e8a9286796d6565656565656565656565656565656565656565656565656565656774808d8d8174675a4e4134271b0e000000060f1a232b353d44484a4745413a37322b28343a3d3f4545454545454545454754616d7a868f837669574d424545454545454545454545515d6775818e867a6d60544b4b4b4b4b4b4b4b4b4b4b4d4c4b474540393135393a3b3a37312a21180b020000000814212e3b4754616e7a87948b7f7c7c7c7c7c7c7c7c7c7c7c7c7c7e8b929184787674716e6965615e56524c443e332d261d140b0200000000000000000000000000000000000000000000000000000000000613202c3946535f6c7986928d8073675a4d4034271a0d010000000000000000000000000000000000000000000a1723303d4a5663707d8993867a6d6053473a2d20140700000000000000000000000000000000000c1825323f4b5865727e8b9084776a5d5144372a1e110000000000000000000000000714212d3a46535f697783908b7e7164554b4035291d1b27323d4956636f7c89908377695f53473a2e211509000000000000000000000000000000000000000000000000000000000000000000000000030c18212a36414c56606c7883909184796d60554b4135291d120700000000000000000b1825313e4b5864717e8b8d89847f7b76716d67636976828f86796c5f5346352f2c333f4a545b60626262626262626262626262626262626262626262626262626262626262626262626c79868f82766962626262626262626262605b544a3f33281c0f03000d1a2734404d5a6773808d8f8275685c4f4235291c0f02000000000000000000000000000000000000000000000000000000000000000006111b262f383f44525960686d747b80858a8d90929291909192928f8c88847f79726c665e574f473d352c23190f0500000000000000000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000020f1c2935424f5c6875828f8d8074675a4d4134271a0e000000000000000000000000000000000000000000000000000000000002080d151a21272c32373b42464c52545c60646b70767c82878f93928d847d726d645c52493f352b1f160c0000000000000000000000000000000a15212d3a46535f697683908b7e7165574d423b3b3b3b3b3b3b3b3b3b4754606a7784918b7e7165574d42362a1e120500000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f000000000000000003101d2a3643505d697683908d8073665a4d4033271a0d000915222f3c4855626f7b88998a7d7063574a3d3025190d0000000000000000000000000000000000000000000000000000000000000000000916222f3c4955626f7c8898887b6e62595959595959595959595959595959595959595959595959595b6874818e8d8073675a4d4034271a0d0000030e18212b353d474f545654514b47433c38343f464a4b52525252525252525252525e687784918578695e535252525252525252525252524b5563707d8a8b7e7265574d423e3e3e3e3e3e3e3e3e403f3e3a3935313a4145474847423c332a1d140a0000000814212e3b4754616e7a8794918b898989898989898989898989898b909c96918583817e7b77726d68615e5650443f382f261d140a00000000000000000000000000000000000000000000000000000000000613202c3946535f6c7986928d8073675a4d4034271a0d010000000000000000000000000000000000000000000a1723303d4a5663707d8993867a6d6053473a2d20140700000000000000000000000000000000000c1825323f4b5865727e8b9084776a5d5144372a1e110000000000000000000000000815222e3b4855616e7b8892867a6d6054473a2f241813202d394653606c798592887b6e6255483c31261a0e02000000000000000000000000000000000000000000000000000000000000000000000000060f1925303b44505b666f7c87938b7f72675d5145392f24180c00000000000000000f1b2835424e5b687581888d91918c87827e7a75706c76828f86796c5f5345413a383844505b666c6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f79868f82766f6f6f6f6f6f6f6f6f6f6f6c665b5044382b1f1206000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000000000000000000000000000000000000000000000000000061017222d384149505c636b707a80868d92918d89868584848485878a8e92918c847e786e6960594f473d352b21170c03000000000000000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000020f1c2935424f5c6875828f8d8074675a4d4134271a0e00000000000000000000000000000000000000000000000000000000040c131920262b32383d43474d53565d60666d71777d82888e93948f878079706b635b524a40372d23190d0400000000000000000000000000000005121e2a36424d5765727f8b8f8376695e52463a2e2e2e2e2e2e2e333f4a54626f7c8992867a6d6054473b30251a0e0200000000000000000000000d1a2734404d5a6773808d8f8275685c4f423529170e0600000000000000030f1c28333f4a546a7783908c807366594d4033261a0d000714202d3a4753606d7986938d807366564c41362a1b110600000000000000000000000000000000000000000000000000000000000000000713202d3a4653606d7986928b7e716453494c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4a546975828f8c7f7266594c3f3326190c000009141f2a333d474f596063605d55534e46443f495156585f5f5f5f5f5f5f5f5f5f5f566875818e877b6e615f5f5f5f5f5f5f5f5f5f5f5f5f5f5f606d7985908376695f53463a31313131313131313332312d2d333c434c515455534d453c2f261b110600000814212e3b4754616e7a8794948f8e8e8e8e8e8e8e8e8e8e8e8e8e8e8f8f919292908e8b88837f7a736d68615a504941382f261c1106000000000000000000000000000000000000000000000000000000000613202c3946535f6c7986928d8073675a4d4034271a0d010000000000000000000000000000000000000000000a1723303d4a5663707d8993867a6d6053473a2d20140700000000000000000000000000000000000c1825323f4b5865727e8b9084776a5d5144372a1e11000000000000000000000005121e2a36424d5766727f8c8f8276685d5245392c1d13121f2b3844505b6674818e8c7f7366574d42372b1e12060000000000000000000000000000000000000000000000000000000000000000000000000008141e28333f4a545f6a75818e92857a6d60554b4035291d1004000000000000000e1b2734404d59656f757c8084898d918f8b85817d7876828f86796c5754524c4644404653606c787c7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7c8891847c7b7b7b7b7b7b7b7b7b7b7c796c605346392d201306000d1a2734404d5a6773808d8f8275685c4f4235291c0f02000000000000000000000000000000000000000000000000000000000000020b182227333f49535b606e737d858d92918a84807d7a78777778787b7d81868c92918b827b706b61594f473d33291e150b000000000000000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000020f1c2935424f5c6875828f8d8074675a4d4134271a0e000000000000000000000000000000000000000000000000000000080e161e242931373d43484e54575f61686d72797e83898f94948f89827c736d676059514940382e251c110700000000000000000000000000000000020e1a26313b4754616d7a8692877b6e6154483c3126212121212b3844505b6673808d8e8275685d524539291f14090000000000000000000000000d1a2734404d5a6773808d8f8275685c4f42322920180f0700000000000006121f2b3844505b667784918c7f7265594c3f3226190c0006131f2c3845515c67778390908377685e5246382d22170b0000000000000000000000000000010407070c0b09060100000000000000000006121f2c3844515c667683908e8174655b50443f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f44505c667784918a7d7164574a3e3124170b00020e1a26313c454f59606b706d67625f5853504a515b62656b6b6b6b6b6b6b6b6b6b6b6b6b727f8c8a7d706b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6674818e887b6e6155483c31262424242424242725292f383f444e555d60625f574d41382d22170b00000814212e3b4754616e7a87948f8282828282828282828282828282828283848587898c9093908c86807a706c605b534a42382d22170c030000000000000000000000000000000000000000000000000000000613202c3946535f6c7986928d8073675a4d4034271a0d010000000000000000000000000000000000000000000a1723303d4a5663707d8993867a6d6053473a2d20140700000000000000000000000000000000000c1825323f4b5865727e8b9084776a5d5144372a1e1100000000000000000000000714212d3a46535f697783908b7e7265564c4135291d0c0f1c28333f4a5463707d89908377695f53473a2d21140900000000000000000000000000000000000000000000000000000000000000000000000000020b17222d38424e58626e7c87938c8073675d5145382c1f150a000000000000000c1824313d48535d656a6f73787c8085898e928e898480859186796965605d5653514a4754606d7a8788888888888888888888888888888888888888888888888888888888888888888888888e96918888888888888888888888867a6d6053473a2d201407000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000000000000000000000000000000000000000a141d2a343c44505b656c74808891928c837d7973706d686b6a6b696e71747a7f858e938f857d706b61594f453b30271c12070000000000000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000020f1c2935424f5c6875828f8d8074675a4d4134271a0e00000000000000000000000000000000000000000000000000010a111a202830353c42474f54586062696e747a7f848b9095928e89827c766e6a605d554f473f372e261c130a0000000000000000000000000000000000000914202d3946525e6875828f8c7f7265574e42372b1e1414202d394653606c7884918a7d7064564c413529170d020000000000000000000000000d1a2734404d5a6773808d8f827568564c443b322a2119100801000000000613202d394653606c7985928a7e7164574b3e3124180b0004101c2934404b556673808c93877a6d6153493f33271d1207000000000000000000000001080d111314191815120d06000000000000000004101c2834404a5466737f8c9184786c6053463b3032323232323232323232323232323232323a4653606d798692887c6f6255493c2f2216090005121e2b37424d57606b707d7a746f6a64605c5456626d7278787878787878787878787878787d8a8c7f78787878787878787878787878787878787878787d898c7f7366584e43372b1f181818171f252a333b414950585f676d6e695f53493f33271b0f03000814212e3b4754616e7a8794897c7575757575757575757575757575757677787a7d8083878c92928d857d736c655b544a3f33281e150a0000000000000000000000000000000000000000000000000000000613202c3946535f6c7986928d8073675a4d4034271a0d010000000000000000000000000000000000000000000a1723303d4a5663707d8993867a6d6053473a2d20140700000000000000000000000000000000000c1825323f4b5865727e8b9084776a5d5144372a1e1100000000000000000000000815222e3b4855616e7b8893867a6e6154473b3024190d0b17222d3a4653606d798592887b6e6155483b31261a0e020000000000000000000000000000000000000000000000000000000000000000000000000006111c262f3c47535f6a75818e9285796d6053473d32271b0f030000000000000814202c37414b53586062656c6f74797d81858a8e918d9197877b76716d6864605c545454606d7a878d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d929c928d8d8d8d8d8d8d8d8d8d8d867a6d6053473a2d201407000d1a2734404d5a6773808d8f8275685c4f4235291c0f02000000000000000000000000000000000000000000000000000000000006111b262f3c46505a606c77808c9391877f78706d6663605d565d575e6164676d727a818b9292867d706b60574d42392e23180c0200000000000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000020f1c2935424f5c6875828f8d8074675a4d4134271a0e000000000000000000000000000000000000000000000000020b131c232c323a41454e535960636a6f757b80868c9197928d87827c756f6a625f58514b433d352e251c140a0100000000000000000000000000000000000005111d2a36414c5664717e8a9083776a5f53473a2e21151c28343f4a5463707c899285796d6053463a2f24190d010000000000000000000000000d1a2734404d5a6773808d8f8275685e564d443c332b2219130b060000000815222e3b4855616e7b8898897c6f6356493c3023160900000c18232f3c4956636f7c89968c7f72655b5044392e23180e04000000000000000000040c13191d20212524221e18110901000000000000000c18232e3c4955626f7c8895897c6f63564d42362a2626262626262626262626262626262f3c4955626f7c8892867a6d6053473a2d201407000714212d3a46535f69707d8785817c76716d66605c65727f85858585858585858585858585858a8f918c858585858585858585858585858585858585858585929084776a5f53473a2e2114141c232831363f454d535b606a6f7a7b6e655b5044372b1f1205000814212e3b4754616e7a8794897c6f6868686868686868686868686869696a686e7073767b80858d93928a80776c665b50443d30261c110600000000000000000000000000000000000000000000000000000613202c3946535f6c7986928d8073675a4d4034271a0d010000000000000000000000000000000000000000000a1723303d4a5663707d8993867a6d6053473a2d20140700000000000000000000000000000000000c1825323f4b5865727e8b9084776a5d5144372a1e110000000000000000000005121e2a36424d5766727f8c908376685e5246392d1e130806121f2c3844515c6675818e8c7f7266574d42362a1e120500000000000000000000000000000000000000000000000000000000000000000000000000000a141d2b37434e58626f7c88958b7e7165584e43372b1f1306000000000000040f1a252f3941464e54535b6063666d7074797d81858a909f9387837e7a75706d66636059606d798080808080808080808080808080808080808080808080808080808080808080808080808d948d808080808080808080808080796d6053463a2d201307000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000000000000000000000000000000000000000000000000b17222d38414e58626c74808d9291847c726d66605c5454524c514d5254555d60686d757f879292877d70695e544a4034281f140900000000000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000020f1c2935424f5c6875828f8d8074675a4d4134271a0e0000000000000000000000000000000000000000000000010b141d252e353e444c52575f626b6f767c82878d9296918c85807b756f6a626058534e454039312b231c130a0200000000000000000000000000000000000000010d1925303a4753606d798592887b6e6255483d32271b1f2c3844505c6674818d8d8174665c514538281e1308000000000000000000000000000d1a2734404d5a6773808d91847a6d685e564d453d3429241e17110d08090f1724303d4a5763707d8a96877a6e6154473b2e21140800000713202d3a4653606d7984919184786c60544b40342820160d0500000000000000060d161e24292c2d32312e29231b130a010000000000000715212e3b47535f6a7784908e8174695e52463c30261c19191919191919191919191d2a36414c5665727f8b908376675d5145392c201306000815222e3b4855616e7b858c918d88837e78716d6665727f8c8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f9290887b6e6255483b2f22181e262e343b424650575e656c727c8483776c605346392d201306000814212e3b4754616e7a8794897c6f635b5b5b5b5b5b5b5b5b5b5b5b5c5c565e616366696e737a808792928d81786c60594f42382e23170c00000000000000000000000000000000000000000000000000000613202c3946535f6c7986928d8073675a4d4034271a0d010000000000000000000000000000000000000000000a1723303d4a5663707d8993867a6d6053473a2d20140700000000000000000000000000000000000c1825323f4b5865727e8b9084776a5d5144372a1e11000000000000000000000714212d3a46535f697783908b7f7265564c41362a1e0c0204101c2834404a5464707d8a908377695f53463a2d2114090000000000000000000000000000000000000000000000000000000000000000000000000000020b1a26313c47535f6a7783909083776a6054473b2e2215090000000000000009131d272f343c4347495053545c6063666d7075797e8a9495908f8b86827d79746f6b6660676d737373737373737373737373737373737373737373737373737373737373737373737379868f827673737373737373737373736d665c5145382c1f1306000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000000000000000000000000000000000000000000000030f1b27333f49535f6a717e8b9291847b6f6a605c54504a474541444246484c51565e616d727d879292857b6e665c51443b30251a0e02000000000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000020f1c2935424f5c6875828f8d8074675a4d4134271a0e00000000000000000000000000000000000000000000000a131d262f3740474f565d606a6e757c82898f9395908b847f7a746e69626058544e47433c352f281f19110a0100000000000000000000000000000000000000000008131f2c3945515d6775818e8c807366584e43372b1c202d3a4653606d798592897c6f63544b403428160c01000000000000000000000000000d1a2734404d5a6773808d9691837a6e695f574f473f352f27221b1918191a212b37434e586773808d918578685e5246392d201407000006121f2b3844505c66727f8c968a7e71665c51453c32281f170e080200000003090f1820282f35393a3f3e3a342d251c130a00000000000006131f2b37434e5865727f8b92867b6e61584e42382e2318120c0c0c0c0c0c07101a232d3946525e6876828f8d807367554b4035291d1004000714212d3a46535f696e7b7f84898e908a847e78726d707e8282828282828282828282828282828282828282828282828282828282828282828282828282828583827d7064574a3d3124242930383f444d535a62696e777f86918b7e7164584b3e3125180b000814212e3b4754616e7a8794897c6f63564f4f4f4f4f4f4f4f4f4f4f4f504d525456575e61686d737d8591938c80736b60544a3f34281c1003000000000000000000000000000000000000000000000000000613202c3946535f6c7986928d8073675a4d4034271a0d010000000000000000000000000000000000000000000a1723303d4a5663707d8993867a6d6053473a2d20140700000000000000000000000000000000000c1825323f4b5865727e8b9084776a5d5144372a1e11000000000000000000000815222e3b4855616e7b8895877b6e6154483b3025190d00000c18232e3a4753606d798692887b6e6155483b31261a0e0200000000000000000000000000000000000000000000000000000000000000000000000000000a15202b37434e5865717e8b95897c6f6256493c31261a0e02000000000000010b151d222b3237383f44464a5053545c6063676d76828f9083888c918e8a85817c77736c6560666666666666666666666666666666666666666666666666666666666666666666666c79868f82766966666666666666666666605c544b4034281c1004000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000000000000000000000000000000000005121f2b3744505b656f7c869291857b6e696058504a443f3a393530363a3b41454c525b626b717e87939083786d60574d42362a1e1408000000000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000020f1c2935424f5c6875828f8d8074675a4d4134271a0e0000000000000000000000000000000000000000000008111c252f384049515961686d747b82898f94948f89837e79726d68615f57544e47433d373129241d160d07000000000000000000000000000000000000000000000004101d2935404b5563707d899184776a605447382d222934404b5563707d8a9184786c605346392e23180600000000000000000000000000000d1a2734404d5a6773808d989291837b6e6960595045413a332d29242525262b333b47535f6a7784918e827568564c41362a1e1105000003101c28343f4a54606d7a85929184796d60584e443a31292019130f0a0b0a0f141a212a323a4145474c4a463f372e251c11070000000000030f1b26323c4754606d7a85928d80746a5f544a3f3429241d16110d07090e1218222935414c55616d7a8692897c6f6356493c2f24180d010005121e2b37424d575f686e72787c81868d918b847e797170757575757575757575757575757575757575757575757575757575757575757575757575757575787675706c6155493c30282f353d424a50575e616c717b828c928e847c6f6255493c2f221609000814212e3b4754616e7a8794897c6f6356494242424242424242424242434146474a4d53565d606b6f7b859193877d70665c5044382c1f150a000000000000000000000000000000000000000000000000000613202c3946535f6c7986928d8073675a4d4034271a0d010000000000000000000000000000000000000000000a1723303d4a5663707d8993867a6d6053473a2d20140700000000000000000000000000000000000c1825323f4b5865727e8b9084776a5d5144372a1e1100000000000000000005121e2a36424d5766727f8c908377695e53463a2d1e1408000007131f2c3945515d6775828f8c7f7266574d42362a1e12050000000000000000000000000000000000000000000000000000000000000000000000000000030f1b26323c4754606d7a86928d807366574d42362a1e120500000000000000030b101920272b2d3337393f44464a5153555d6976828f86797b7f84888d918d898480786c605a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5f6c79868f8276695c5a5a5a5a5a5a5a5a5a53514b42392e23180c00000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000000000000000000000000000000000000000000004101c2834404b54606c78839093887d70695f574e443f38342e2c29252a2d2f353a41465159616c73808c958c7f72695e52463b3025190d010000000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000020f1c2935424f5c6875828f8d8074675a4d4134271a0e000000000000000000000000000000000000000000030d1a232e37404a525b636b707a80878f94948f88827d77716d66605d56534d47433d38322b262018120c04000000000000000000000000000000000000000000000000000c18242f3a4653606d798591897c6f62544a3f33282c3845515c6774818e8d8073655b5044372b1f120700000000000000000000000000000d1a2734404d5a6773808d92868c91847b6f6b625a524c443f38352f323231373c454e58626f7c88968b7e7164584b3e3025190e020000000b17232e3845525d6873808c968c7f726a60564c433b322a251e1b1918191b1f262a333c444c52545856514940372e23190f0400000000000a15202c3945515d67727f8c92877c6f665c50443f352f28201d1818181a1d2429343d45515d67737f8c9184786c605346392d2013070000020e1a26313c454d565e61656c70757b80868c918b847e786f6b686868686868686868686868686868686868686868686e7379796e6a6868686868686868686b6a686461594f44392d313a41454e545c60696e767e858f928a81796f6a6054473b2e221508000814212e3b4754616e7a8794897c6f6356493c353535353535353535363036393b3d42464c525960696f7c87929184786d6053463c31261a0f020000000000000000000000000000000000000000000000000613202c3946535f6c7986928d8073675a4d4034271a0d010000000000000000000000000000000000000000000a1723303d4a5663707d8993867a6d6053473a2d20140700000000000000000000000000000000000c1825323f4b5865727e8b9084776a5d5144372a1e110000000000000000000714212d3a46535f697783908c7f7266574d42362a1e0d02000004101d2935404b5564717e8a908377695f53463a2d2114090000000000000000000000000000000000000000000000000000000000000000000000000000000a15202c3945515d6775828f908477695f53463a2d211407000000000000000000070f151b1b22272b2e34383a4044464b5c6976828f86796e73777c8085898e918578655b504d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d535f6c79868f8276695c4f4d4d4d4d4d4d4d4d4645403930271d120700000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000000000000000000000000000000000000000000006131f2c3845515c66717e8b958d80736b60574d453d342e2823201d1a1e20242930363f47505a606d78839092867b6e61564c41362a1e11050000000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000020f1c2935424f5c6875828f8d8074675a4d4134271a0e0000000000000000000000000000000000000000010b151f2c354049525c646d737d848d92948f89827c76706b64605c54524c46423b37322b27201a150d0701000000000000000000000000000000000000000000000000000007121f2b3844505c6674808d8d8073665b5044382b2d3a4753606d798592887b6e6253493f33271b0f0300000000000000000000000000000d1a2734404d5a6773808d8e817f8b91857d716d605d56504945413f3f3f4042474e57606a75828f92867a6d6154473a2e2114080000000006111c2935414c56606d79849192877c6f685e564d443d36302b27262525262b31363e454d565d6065625b514940352b21160b000000000004111d2935414b55606d7984919083786d605b51454039312c29242525252a2f353d464f59606d7a85928c7f73655b5044372b1f120500000009141f2a333c444d52535b6063696e747a7f858c918a837c756e69605c545c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c66738086867c6e625c5c5c5c5c5c5c5c5f5d5c57554f473e33373e434b515860666d727b828b928f857e746d6760584e43372b1f1306000814212e3b4754616e7a8794897c6f6356493c30282828282828282829252a2d2e31363a41454f57606a73808c968b7e7265584e43372b1f12060000000000000000000000000000000000000000000000000613202c3946535f6c7986928d8073675a4d4034271a0d010000000000000000000000000000000000000000000a1723303d4a5663707d8993867a6d6053473a2d20140700000000000000000000000000000000000c1825323f4b5865727e8b9084776a5d5144372a1e110000000000000000000815222e3b4855616e7b8895887b6e6255483b31251a0e000000000c18242f3a4754606d7a8692887b6e6155483b31251a0e02000000000000000000000000000000000000000000000000000000000000000000000000000004111d2935414b5565727f8b95887b6e6155483b2e22150800000000000000000000040a0f11171b1f23282b2e3438434f5c6976828f86796c666a6f73797d818582766953493f404040404040404040404040404040404040404040404040404040404046535f6c79868f8276695c4f43404040404040403a38342e271e150b0000000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000000000000000000000000000000000713202d3a4653606d7985919184796d60594f453c3328231c1713110e1214191e252a353e44505c666f7c87938e8174685e5246392d20150a0000000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000020f1c2935424f5c6875828f8d8074675a4d4134271a0e000000000000000000000000000000000000000007121d27313d47515b646e747f8891969189827c756f6a63605953514a45413a36312b27201b160f09030000000000000000000000000000000000000000000000000000000003101c28343f4a54626f7c899184786c605346392e35414c5564717d8a9083776a5f5341382d22170b0000000000000000000000000000000d1a2734404d5a6773808d8d80747f8792877e756d68605b53524c4c4b4c4d4d53585f696f7c89938e8174685d5246392d20130700000000000d19242f3a45515d67707d8a9291847a6d685e564f46413a373232323231373b424650575f686d726d635b51473d32271b0f0300000000010d18242f3a45515d67707d89928d80746d625b514b433e39352f323230363940454f58616b74808d92857a6d6053493f33271b0f03000000030e18212a323b4146495053575e61686d73797f858d9089817b726d666058514b4f4f4f4f4f4f4f4f4f4f4f4f5a6673808d887b6f62554f4f4f4f4f4f4f52504f4a49443e353c434750555d606a6f787f868f928b827a716c605d554e463c32271b0f03000814212e3b4754616e7a8794897c6f6356493c30231c1c1c1c1c1c1c1c191e2021252a2f353d454e58606d7a85929083776a5f53473a2e2114080000000000000000000000000000000000000000000000000613202c3946535f6c7986928d8073675a4d4034271a0d010000000000000000000000000000000000000000000a1723303d4a5663707d8993867a6d6053473a2d20140700000000000000000000000000000000000c1825323f4b5865727e8b9084776a5d5144372a1e11000000000000000005121e2a36424d5766727f8c908477695f53473a2e1f1409000000000713202c3945525d6876828f8c7f7265574d42362a1e12050000000000000000000000000000000000000000000000000000000000000000000000000000010d18242f3b4855616e7b88978b7e7164584b3e3125180600000000000000000000000000060b0f12171c1f232836434f5c6976828f86796c586062666d70747a7c6f6255483c2d3333333333333333333333333333333333333333333333333333333946535f6c79868f8276695c4f43363333333333332d2c28231d150c030000000d1a2734404d5a6773808d8f8275685c4f4235291c0f02000000000000000000000000000000000000000000000000000006121f2b37434e5864717e8b968b7e71675d51473d332a2117110b06040205080d13192328343f4a545f6a74818e92867a6e6154473c31261b0f0300000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000020f1c2935424f5c6875828f8d8074675a4d4134271a0e00000000000000000000000000000000000000000c18242f39434f59636d74808c93928d847d766f6a626058544f4644403935302a261f1b150f0a04000000000000000000000000000000000000000000000000000000000000000b17232e384754606a778491897c7063544a40343945515d6775828f8c7f7265584e432f261b11060000000000000000000000000000000d1a2734404d5a6773808d8c8073727e86918b817a716c65605d5659585859575f626a6f7b859192867b6e61564c4135291d1105000000000008131e2935404b55616b73808d9490837a6e686059524c4743403f3e3f4043474d535a61696e7a7f736d63594f44382c201307000000000007131d2935404b55606b73808d928b7f726d605d554f4745403f3e3f3f42464b5159606a707d88938c7f72685d5241382d22170b0000000000060f1820293036383f44464d53565d61676d727a80868e8e867f786f6a605d554f443f42424242424242424d5a6673808d887b6f6255484242424242424543423d3c393a41454e535a61676d747c838c928e857e756e68615a514b433c342b20150a00000814212e3b4754616e7a8794897c6f6356493c3023160f0f0f0f0f0f080e1114141a1e2429333d45515d6773808d95887b6e6255483b2f2215080000000000000000000000000000000000000000000000000613202c3946535f6c7986928d8073675a4d4034271a0d010000000000000000000000000000000000000000000a1723303d4a5663707d8993867a6d6053473a2d20140700000000000000000000000000000000000c1825323f4b5865727e8b9084776a5d5144372a1e1100000000000000000714212d3a46535e697783908c807366574d42372b1e12060000000004111d2935414c5665717e8b908376695e53463a2d2114090000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a46535f697885928d8073675a4d402d22170b00000000000000000000000000000003060b1012182936434f5c6976828f86796c5f54545c6063676d6f6a5f53473a2f3032323232323232323232323232323232323232323232323232323946535f6c79868f8276695c4f433632322e2d2a25201f1c18120b03000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000000000000000000000000000000000000000000815212e3a47535f6a7783909184786d60554b40352b21180f0600000000000002081117232e38424e58616e7b87938c807366584e43372b1f120600000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000020f1c2935424f5c6875828f8d8074675a4d4134271a0e0000000000000000000000000000000000000004101d2935404b55606b737f8c92938b8079706b626058544e48443d38342e29241e1a140f0a0400000000000000000000000000000000000000000000000000000000000000000006111c2b37434e5866737f8c8e8174665c5144383a4754606d7a8692877b6e6154473c3121140a000000000000000000000000000000000d1a2734404d5a6773808d8b7f726c707c848f8e847e78716d68676665656667696e747c8491948c7f73695f53443a3024190d010000000000010c18242f39434f59606d78828f9490837a6f6b615e56544e4d4c4b4c4c4e53575f616c717b848b7f736b6054483b2f2215090000000000010c18242f39434f59606d78828f918b7f746d67615953514b4c4b4b4c4d52555d606b707c86929083796d60564c412f261b1106000000000000060e171f252a2d33373b42464c52555d60686d737b8187908c837c746d676059504a423b3335353535404d5a6673808d887b6f6255483c353535353538373530383f444c51585f626c7179808790918a817a716c615e565045413a312b22190f0400000814212e3b4754616e7a8794897c6f6356493c30231609020202020200020507090e1319212935404b55626f7c89988c7f7265594c3f3226190c0000000000000000000000000000000000000000000000000613202c3946535f6c7986928d8073675a4d4034271a0d010000000000000000000000000000000000000000000a1723303d4a5663707d8993867a6d6053473a2d20140700000000000000000000000000000000000c1825323f4b5865727e8b9084776a5d5144372a1e1100000000000000000815212e3b4854616e7b8795887c6f6255483c31261a0e0200000000010d19242f3a4754616d7a8693877b6e6154483b30251a0e02000000000000000000000000000000000000000000000000000000000000000000000000000005121e2a36424d576976828f8f82766953493f33271b0f03000000000000000000000000000000000003071c2936434f5c6976828f86796c5f534a5053555d60625f584e43383c3d3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f46535f6c79868f8276695c4f433f3f3f3a3936302820160c070000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000000000000000000000000000000000000000000915222f3c4855626f7b88958c8073665c5043392f23190f0600000000000000000006111c26303c46535f6976828f9184786a5f53473a2e21150800000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000020f1c2935424f5c6875828f8d8074675a4d4134271a0e0000000000000000000000000000000000000006131f2c3845515d67707d879393887e746d666059544e47433c38332c28231c19130e09030000000000000000000000000000000000000000000000000000000000000000000000000f1b27323d4855616e7b889285796d6053463a414c5664717e8b8f8276685e5246392d201402000000000000000000000000000000000d1a2734404d5a6773808d8a7e71646a6f7a828b918a837e7a76747272727374777b808791938f82786d60574d4232281e13080000000000000007121d27313e44505c666d7a828f9490857d746d686260585a59585859585f62696e757e859193897c6f6356493c3023160900000000000007121d27313d44505c666d798390918c8179706c64605d5559585859575e61676d737d869292867c6e665c51433a2f1d140a0000000000000000050d14191b22272b31363a41464b51565d61696e747c838c908780796f6b605c544d453e342e2633404d5a6673808d887b6f6255483c2f292929252a31373d424a50555d606a6f767e848d928d847d756e68615a524c443e352f281f1910070000000814212e3b4754616e7a8794897c6f6356493c302316090000000000000000000001080f18242f3a4653606d7985928e8175685b4e4235281b070000000000000000000000000000000000000000000000000613202c3946535f6c7986928d8073675a4d4034271a0d010000000000000000000000000000000000000000000a1723303d4a5663707d8993867a6d6053473a2d20140700000000000000000000000000000000000c1825323f4b5865727e8b9084776a5d5144372a1e110000000000000005121e2a36424d5765727f8c9184776a5f53473a2e1f15090000000000000813202d3946525e687683908c7f7265574d42362a1e12050000000000000000000000000000000000000000000000000000000000000000000000000000020e1a2631404d5a6773808d918578655b5044372b1f1205000000000000000000000000000000000003101c2936434f5c6976828f86796c5f533f44464b515355534e463d44484a4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c535f6c79878c8276695c4f4c4c4c4c4746413a32281e13080000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000000000000000000000000000003101c28343f4a5465727f8c93877b6e61544a3f31271d110700000000000000000000000a151e2a36424d5764717d8a96887b6f6255483c2f22150700000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000020f1c2935424f5c6875828f8d8074675a4d4134271a0e000000000000000000000000000000000000000714202d3a4753606d798491938b7f726c605c544f47433d37322c271f1c18120d080200000000000000000000000000000000000000000000000000000000000000000000000000000a15212d3a46535f697683908a7d7063554b4046525d6875828f8b7e7164564d41362a1e1105000000000000000000000000000000000d1a2734404d5a6773808d8a7d706360686d777f868e908b8683817f7e7f808184888d92928c81796d665c50453b3120160c0200000000000000010b151f28343f4a545d686d79828d939188817a746f6a696665656566686a6f747b828a9292887f736b6054483b2f221509000000000000010b151f28343f4a545d676d7a828e938e847d76716d67676665656668696e727980879292877d706a5f544b4031281e0b0200000000000000000002080e11171b1f252a30353940454c52575e616a6f787f868f8d847d736d665f5750443f383033404d5a6673808d887b6f6255483c2f22242930363c43474f545c60676d747c828a9190878079706b615e565046413b3229241d160d07000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000007131f2b3844505c667683909184776a5e51442f23180c0000000000000000000000000000000000000000000000000613202c3946535f6c7986928d8073675a4d4034271a0d010000000000000000000000000000000000000000000a1723303d4a5663707d8993867a6d6053473a2d20140700000000000000000000000000000000000c1825323f4b5865727e8b9084776a5d5144372a1e11000000000000000714212d3a46535e697683908d807366584e43372b1f0e0300000000000005111e2a36414c5665727f8b908376695e52463a2d201409000000000000000000000000000000000000000000000000000000000000000000000000000000091925323f4c5865727f8b9286796c605346392d201306000000000000000000000000000000000003101c2936434f5c6976828f86796c5f5346383a4045474847433d474f5456585858585858585858585858585858585858585858585858585858585859667380807e716458585858585854524c443a3025190d0100000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000000000000000000000000000006121f2c3844505c6676838f908377695e5342382e1f150b000000000000000000000000030c1a26313b4753606d7a86928c7f7266594c3f2f24180d01000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000020f1c2935424f5c6875828f8d8074675a4d4134271a0e00000000000000000000000000000000000006121f2b37434e5866727f8c968e81746d625a514b423d37322b27201c16100c07000000000000000000000000000000000000000000000000000000000000000000000000000000000005121e2b37424d5765727f8b8e8175675d51454754616d7a8692867a6d6054473b3025190e02000000000000000000000000000000000d1a2734404d5a6773808b897c6f62565e656c727b81888d92908d8c8b8b8c8e9196918c867f786d675d544a3f33291f0e04000000000000000000030d17232e38424c565d676d78808791938e86817c7875737271727375787c81868f938f867e736d63594f44382c20130700000000000000030d17232e38424c555d686d79818a92918a837e7a76747271727274777b7f858d9391867d706b61574e42392e1f160c00000000000000000000000000060b0f141a1e24292f353a41464d525860666d727b828a918780786e69615a504a423a32404d5a6673808d887b6f6255483c2f282f353b41464e535961666d717a80878f918a837c736d676159524c443e3630292018130c0400000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000003101c28343f4a546875818e9285786b554b4034291c100400000000000000000000000000000000000000000000000613202c3946535f6c7986928d8073675a4d4034271a0d010000000000000000000000000000000000000000000a1723303d4a5663707d8993867a6d6053473a2d20140700000000000000000000000000000000000c1825323f4b5865727e8b9084776a5d5144372a1e11000000000000000815212e3b4854616e7b8795897c6f6256493c31261b0f00000000000000010d1925303b4854616e7b8793877b6e6154483b30251a0e020000000000000000000000000000030709090c0b0906010000000000000000000000000000000b1825313e4b5864717e8b99877a6d6054473a2d211407000000000000000000000000000000000003101c2936434f5c6976828f86796c5f5346392f35383a3c3a38444f596063656565656565656565656565656565656565656565656565656565656565656e7373716c65656565656565615e564c41362a1d110500000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f02000000000000000000000000000000000000000000000000000713202d3a4653606d7986928d807467574d4230261c0d03000000000000000000000000000914202c3945515d677683908f827669554b4035291d1104000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000020f1c2935424f5c6875828f8d8074675a4d4134271a0e0000000000000000000000000000000000000815212e3b47535f6a77849192857a6d605b51454039302b27201b15100b0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000020e1a26313c4754616d7a869285796d6053474c5665717e8b8e8175675d514539291f14080000000000000000000000000000000000091623303c4956636f7d7f7f7a6d6154535b60696e757c8085888a8c8d8d8d8c8a8784807a726c665d554b42382e21170d000000000000000000000006111c26303a444c555d666d737d848b91928e898582807f7e7f7f8184888d92918a827b706c635b51473d32271b0f03000000000000000006111c26303a434c565d676d757e858d92908b8683807f7e7e7f8184878c92928c837c706b61594f453c30271d0d0400000000000000000000000000000003090e13191d242930353b42464e545c60696e757e85908d837b716c605c544c443c404d5a6673808d887b6f6255483c2d333940454d52585f626b70787e858d928d847e766f6a605d554f46413b322a251e170e07010000000000000814212e3b4754616e7a8794897c6f6356493c30231609000000000000000000000000000b17232e414e5a6774818d928679675c5145382c1f130600000000000000000000000000000000000000000000000613202c3946535f6c7986928d8073675a4d4034271a0d010000000000000000000000000000000000000000000a1723303d4a5663707d8993867a6d6053473a2d20140700000000000000000000000000000000000c1825323f4b5865727e8b9084776a5d5144372a1e1100000000000005121e2a36424d5765727f8c9184786c605346392d20130a00000000000000000814212d3a46535e697783908c7f7265574d42362a1e1105000000000000000000000000040a0f131516191816120d0700000000000000000000000000000a1724313d4a5764707d8a94877b6e6154483b2e211508000000000000000000000000000000000003101c2936434f5c6976828f86796c5f53463924292c2d2f2f3c4854606b70727272727272727272727272727272727272727272727272727272727272727272727272727272727272726d685e5246392d20130700000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f02000000000000000000000000000000000000000000000000000815222f3b4855626e7b88988a7d7064574a3d3124140a000000000000000000000000000004111d2935404b556673808c918478675d5145392c201306000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000020f1c2935424f5c6875828f8d8074675a4d4134271a0e0000000000000000000000000000000000000915222f3c4855626f7c88968d8073685d52493f342e271e1b150f0a04000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000914202d3946525e6876828f8a7d7164554b525e6876828f8a7d7063554b413529170d0200000000000000000000000000000000000915222f3b4854606b6f72726d685e524950575f616a6f74787b7e7f8081807f7d7b77736d68605b544b433930261c0f060000000000000000000000000a141e28323a434b545c606b70787e84898e92928f8d8c8b8b8c8e91928f8a847e756e69615a514940352b21160b000000000000000000000a141e28313a444c555c606c717a80868c9092908d8c8b8b8c8e90928f8b857f796f6a61594f473e332a1e150b00000000000000000000000000000000000002080d12181e242930363d424a50575e616c717b828c90867e746d665e564e46404d5a6673808d887b6f6255483c383f444b51565e616a6f767d838b918f868079716c625f58514b433e3630292019140d0500000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000061a2734414d5a6774808d99867a6d6053473a2d20140700000000000000000000000000000000000000000000000613202c3946535f6c7986928d8073675a4d4034271a0d010000000000000000000000000000000000000000000a1723303d4a5663707d8993867a6d6053473a2d20140700000000000000000000000000000000000c1825323f4b5865727e8b9084776a5d5144372a1e110000000000000714212d3a46535e697683908d8074655b5044372b1f1205000000000000000005121e2a36424d5766727f8c908376695e52463a2d2014090000000000000000000000070f161b1f22232625221e181109010000000000000000000000000a1723303d4a5663707d8994887b6e6155483b2e221508000000000000000000000000000000000003101c2936434f5c6976828f86796c5f5346392c1d1f2023303d4a5663707d7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7a6d6154473a2e21140700000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f02000000000000000000000000000000000000000000000000000a1724313d4a5764707d8a99887b6e6255483b2f2215080000000000000000000000000000010d18242f3e4b5764717e8a96867a6d6053473a2d201407000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000020f1c2935424f5c6875828f8d8074675a4d4134271a0e0000000000000000000000000000000000000b1825323e4b5865717e8b98887b6f62564c413728231d150c0a0400000000000000000000000000030709090907030000000000000000000000000000000000000000000000000000000005111e2a36414c5664717e8a8e8275675d5154616d7a869285796d6053463a2f24180d01000000000000000000000000000000000007131f2c38444f5960636565615e564c41444d53585f62656c6e717273747372716e6966615e56504a423931271e140a00000000000000000000000000020c1620283139424b515960666d71787d8185888a8c8c8d8d8c8b8986827e78716c615e57504840372e23190f0400000000000000000000020c161f28323a434b515a61686d737a7f8386898b8d8d8d8c8b8986827e7a726d675f584f473e352c21180c03000000000000000000000000000000000000000001070c13191f252a30383f444d525a61696e787f87918b80786d685f5850484d5a6673808d887b6f6255483e424a50555d60686e747c8289909089827b736d67615a534e454039312a251e170e08020000000000000000000814212e3b4754616e7a8794897c6f6356493c30231609000000000000000000000000010e1b2734414e5a6774818d928679675c5145382c1f130600000000000000000000000000000000000000000000000613202c3946535f6c7986928d8073675a4d4034271a0d010000000000000000000000000000000000000000000a1723303d4a5663707d8993867a6d6053473a2d20140700000000000000000000000000000000000c1825323f4b5865727e8b9084776a5d5144372a1e110000000000000815212e3b4854616e7b8795897c706353493f33271b0f030000000000000000020e1a25313b4855626e7b8893877b6e6154473b3025190e0200000000000000000008101921272c2f3032312e29231b13090000000000000000000000000b1724313e4a5764717d8a94877a6d6154473a2e211407000000000000000000000000000000000003101c2936434f5c6976828f86796c5f5346392c20131c2835424f5b6875818b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b887c6f6255493c2f22160900000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f02000000000000000000000000000000000000000000000000000c1926323f4c5965727f8c9286796d6053463a2d2013070000000000000000000000000000000716222f3c4955626f7c8895887c6f6255493c2f221609000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000020f1c2935424f5c6875828f8d8074675a4d4134271a0e0000000000000000000000000000000000010e1a2734414d5a6774808d9285796c6053463a302018120b0300000000000000000000000000040a0f13151615130f0a040000000000000000000000000000000000000000000000000000010d1925303a4753606d7a8592867a6d60545665727e8b8d8174665c504438281d1307000000000000000000000000000000000000030f1b27323d474f5456585854524c443a3c42464e53535b606264666767676564615e5754524c443f382f271f150c020000000000000000000000000000040d161f28303940454f545c60666d7074787b7d7f8080807f7e7c7a76716d66615a524d453e362e251c1107000000000000000000000000040d1620283039404550565e61686d72767a7d7f8080807f7e7c7a76716d67605d554e463e352c231a0f060000000000000000000000000000000005080a0b0c0c0c0c080d141a1e262e343b424650575e666c727c848f8d827a6f6a615a514d5a6673808d887b6f625548484f545b60676d737b81878f918a837c756e69605d555047433c352f271f19140d0907040000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000003101c28343f4a546875818e9285786c554b4034291c100400000000000000000000000000000000000000000000000613202c3946535f6c7986928d8073675a4d4034271a0d010000000000000000000000000000000000000000000a1723303d4a5663707d8993867a6d6053473a2d20140700000000000000000000000000000000000c1825323f4b5865727e8b9084776a5d5144372a1e11000000000005121e2a36424d5765727f8c9285796c605346392d22170b000000000000000000000914212e3a47535f697784918b7f7265564d42362a1e1105000000000000000008111a222b32383b3c3f3e3a352d251b120900000000000000000000000c1825323f4b5865727e8b97867a6d6053473a2d201407000000000000000000000002050708090909101c2936434f5c6976828f86796c5f5346392c20131c2835424f5b68758188888888888888888888888888888888888888898f948f88888888888888888888888888888888888888887c6f6255493c2f22160900000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f02000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d918478665c5145382c1f13060000000000000000000000000000000714212d3a4754606d7a87938a7d7063574a3d3024170a000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000020f1c2935424f5c6875828f8d8074675a4d4134271a0e0000000000000000000000000000000000020f1b2835424e5b6875818e908377665b5044382b1f12070000000000000000000000000000070f161b1f2223221f1b160f0700000000000000000000000000000000000000000000000000000813202c3945515d6775818e8a7e7164555e6876828f897c6f62544a3f3428160c01000000000000000000000000000000000000000a16212b353d4448494c4c4746413a3231373c43474950535557595a5a5a595754534d4746413a332d261d150d0300000000000000000000000000000000040d161e272e343d424a50545c606368696e717273747373716f6d6764605c545046423b332c241c130a0000000000000000000000000000040d161e272e343e444c52565d6165686d707273747373726f6d6765605d55514b433c342c231a1108000000000000000000000000000000060c111417181919191919191919141c232830363e454d545b606a6f7a828d8f847c706c625b515a6673808d887b6f62554f545961666c71797f868e918b837d766f6a615f57514b433e373229241d151919171613100b05000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000309121f2b3844505c667683909184776b5e51442f23180c0000000000000000000000000000000000000000000000000613202c3946535f6c7986928d8073675a4d4034271a0d010000000000000000000000000000000000000000000a1723303d4a5663707d8993867a6d6053473a2d20140700000000000000000000000000000000000c1825323f4b5865727e8b9084776a5d5144372a1e1100000000000714212d3a46535e697683908e8174665b5044382b1b11060000000000000000000006121e2b37424d576673808c908376695e52463a2d2014080000000000000005101a232c343d4348494c4a463f372d241b120700000000000000000003101c28343f4a546773808d928578675d5145382c1f130600000000000000000003090e121415151515151c2936434f5c6976828f86796c5f5346392c201515212e3b4854616e7b7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7d898f827c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c796d6053473a2d20140700000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f02000000000000000000000000000000000000000000000000000e1b2734414e5a6774818d9084776a544b4034281c10040000000000000000000000000000000613202d394653606c7986988a7d7164574a3e3124170b000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000020f1c2935424f5c6875828f8d8074675a4d4134271a0e0000000000000000000000000000000000030f1c2936424f5c6975828f8f837669544a3f33281c0f030000000000000000000000000006101921272c2f302f2c272119100a0100000000000000000000000000000000000000000000000004101d2935404b5563707d8a8f8275675d616d7a869184776a605442382e2317040000000000000000000000000000000000000000040f19232b32383b3c3f3f3a39353028262b3237383f4446484b4c4d4e4d4c4a4846423b39363028221c140b03000000000000000000000000000000000000040c151d232830383f444a505356575f616465666767666563605d5553504a423e363029211a110a01000000000000000000000000000000040c151d2328323a41464c5254565e616365666767666562605d5554514c454039312a221a11080000000000000000000000000000000810171d212324252525252525252525252525252a333b424a505860686d78808b91867e726d635b5a6673808d887b6f62555960636b70787e848c928c847e78706c626058534d454039312b262525252525252322201c160f080000000000000814212e3b4754616e7a8794897c6f6356493c30231609020202020200000306070a0f141a202d3a4653606d7985928f8275685c4f4235291c070000000000000000000000000002020202020202020202020613202c3946535f6c7986928d8073675a4d4034271a0d020202020202020202020200000000000000000000000a1723303d4a5663707d8993867a6d6053473a2d20140700000000000000000000000000000000000c1825323f4b5865727e8b9084776a5d5144372a1e1100000000000815212e3b4854616e7b8793897d7063544a3f33281c0a0000000000000000000000020e1a26313c4955626f7c8893877b6e6154473b3025190e020000000000000b16212c353e464f5456595751493f362d2418120b030000000000000006121f2b3844505c6675828f90837669554b4035291d10040000000000000000060d141a1e212222222222222936434f5c6976828f86796c5f5346392c222222222d3a46535e696e6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f7a868d80746f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6d675d5145382c1f130600000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f02000000000000000000000000000000000000000000000000000f1b2835424e5b6875818e9083766a5d50432e23180c0000000000000000000000000000000006121f2b3844505b667985928b7e7165584b3e3225180b000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000030f1c2936424f5c6975828f8d8074675a4d4134271a0e0000000000000000000000000000000000020f1c2835424f5b6875828e8f8276695c4f4331261a0e010000000000000000000000020a1117222b32383b3c3b38322b221c130a000000000000000000000000000000000000000000000000010d18242f3a4653606d798592867a6d6065717e8b8c807366584e4330261c110600000000000000000000000000000000000000000007111921272c2f3032322e2d29251e1a20262b2d3337393b3e3f4041403f3e3b3a36312d2a251e17110a020000000000000000000000000000000000000000030b12181e262e34383f44464a4d53555759595a5a59585653514b46443f38302a251f170f08000000000000000000000000000000000000030b1218202830353a4146474c525456585a5a5a59585653514b4745413a352f271f18100800000000000000000000000000000008121a22282d30313232323232323232323232323232322f383f444e565e666d747e8792877f736d635b6673808d887b6f6260636b70767d838b918d857f79716d666159544e46423b352f323232323232323232302f2c272119110800000000000814212e3b4754616e7a8794897c6f6356493c3023160e0e0e0e0e0f060c101213151b1f252a35414c56626f7c89988c7f7366594c403326190d000000000000000000000406070e0e0e0e0e0e0e0e0e0e0e0e13202c3946535f6c7986928d8073675a4d4034271a0e0e0e0e0e0e0e0e0e0e0e0e0b0a0805000000000000000a1723303d4a5663707d8993867a6d6053473a2d20140700000000000000000000000000000000000c1825323f4b5865727e8b9084776a5d5144372a1e110000000005121e2a36424d5765727f8c9285796d6053463a2d22170b0000000000000000000000000915222e3b47545f6a7884918b7f7265564c41362a1e1105000000000004101c28333e474f59606365625b51483e3628231d150c090300000001071018202d3a4653606d7985928d8174675a4e412f24180c0000000000000000060f171f262a2d2e2f2f2f2f2f2f36434f5c6976828f86796c5f5346392f2f2f2f2f2d36424d575e616262626262626262626262626262626262626d7a868d807467626262626262626262626262626262626262605d554b4035291d100400000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f02000000000000000000000000000000000000000000000000000f1c2835424f5b6875828e8f8376695c504336291d0700000000000000000000000000000000030f1c28333f4a5f6b7885928b7f7265584c3f3225190c000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f000000000000000003101d2a3643505d697683908d8073665a4d4033271a0d0000000000000000000000000000000000010e1b2834414e5b6774818e9083766a574d42372b1d120701000000000000000000070b141c2228343d43484948433d342e251c120800000000000000000000000000000000000000000000000007121f2c3844505c6674808d8a7e71646775828f887b6e6255483d3222150a0000000000000000000000000000000000000000000000070f161b1f2223252521201d19130e151b1b22272b2d2f313334343432312e2d2a25201d19130b06000000000000000000000000000000000000000000000000070c151c23282e34383a3d4246484a4c4d4d4d4c4b494745403a38342e261e1a140d05000000000000000000000000000000000000000000070e161e25293035393a4146474a4c4d4d4d4c4b494745403a39352f29241d150d0600000000000000000000000000000006101a242c34393d3e3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f444c545c606c717d85918b7f736e636673808d887b6f636b70767d838a908e86807a726d67605c544f48433f3f3f3f3f3f3f3f3f3f3f3f3f3f3d3c38332b23190f05000000000814212e3b4754616e7a8794897c6f6356493c30231b1b1b1b1b1b1b1c171c1f2022272b31363f46525d6874808d96897c6f6256493c2f2316090000000000000000070c1012131b1b1b1b1b1b1b1b1b1b1b1b1b202c3946535f6c7986928d8073675a4d4034271b1b1b1b1b1b1b1b1b1b1b1b1b181715110c0600000000000a1723303d4a5663707d8993867a6d6053473a2d20140700000000000000000000000000000000000c1825323f4b5865727e8b9084776a5d5144372a1e11000000000714202d3a46525e697683908e8174665c5144382c1c110600000000000000000000000006131f2b37434e586773808d908376685e5246392d20140800000000000714202c38444f59616b6f726d625a50483f342e271e1a14100b06090e1218222a36414d5663707c89988a7d7064574a3d3124170700000000000000030d17212931363a3b3c3c3c3c3c3c3c434f5c6976828f86796c5f53463c3c3c3c3c3c3a393b454d53545555555555555555555555555555555555606d7a868d8074675a555555555555555555555555555555555553514b43392f24180c0000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f02000000000000000000000000000000000000000000000000000f1b2835424e5b6875818e9083766a5d50432d22170b0000000000000000000000000000000005121f2b3744505b657985928b7e7265584b3f3225180c000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f423529170e0600000000000000030f1c28333f4a546a7783908c807366594d4033261a0d0000000000000000000000000000000000000c1926333f4c5966727f8c928578695f5347392f2418120c07050100000205070d12181d262d333f464f5456544f463f372e241a1006000000000000000000000000000000000000000000000003101c28343f4a54626f7c898e8275676d7a86908376695f53473a2e211403000000000000000000000000000000000000000000000000040a0f13151619191413110d08040a0f11171b1f20222426272727262421211e1a14110d08020000000000000000000000000000000000000000000000000000030a11171c23282b2d31363a3b3e3f404140403e3c3a39352f2c28231c150c09020000000000000000000000000000000000000000000000040c13191e24292d3035393a3d3f404140403f3c3a39352f2c29241e18120b03000000000000000000000000000000000c17222c363e45494b4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4a505a626b6f7c84918c80736d6673808d887b6f70767d8389908e87817b746d68605d55504a4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4a48443d352b21160b000000000814212e3b4754616e7a8794897c6f6356493c3028282828282828282823282c2d2f32373b4246515a616d7a85929184776a6054473b2e221508000000000000030b12181c1f2028282828282828282828282828282c3946535f6c7986928d8073675a4d403428282828282828282828282828282524211d171009000000000a1723303d4a5663707d8993867a6d6053473a2d20140700000000000000000000000000000000000c1825323f4b5865727e8b9084776a5d5144372a1e11000000000815212e3b4854616e7b87938a7d7064544a4034281c1004000000000000000000000000030f1b26323c4956636f7c8993877a6e6154473b3025190d01000000000916232f3c4855616b707c7f726c625a51454039302a251f1c17191a1a1d2429343c46525e6874818e92867a6d6054473a2d2114070000000000000009141f29333b42464848484848484848484f5c6976828f86796c5f53484848484848484745413b4246484949494949494949494949494949494953606d7a868d8074675a4d494949494949494949494949494949494745403931271d12070000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f02000000000000000000000000000000000000000000000000000e1b2834414e5b6774818e9084776a544a3f33281c0f030000000000000000000000000000000613202d394653606c7986938b7e7164584b3e3125180b000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f42322920180f0700000000000006121f2b3844505b667784918c7f7265594c3f3226190c0000000000000000000000000000000000000a1723303d4a5663707d8997887b6e62554b403529241d1813110d08090e1214181d23282f383f4451596063605951493f362c22170c0000000000000000000000000000000000000000000000000c17232e384754606a77849185796d717e8a8b7f7265574d42372b1e12060000000000000000000000000000000000000000000000000000030709090c0c0707050100000000060b0f12131518191a1b1a19171514120e090501000000000000000000000000000000000000000000000000000000000000060c11171c1f20262a2d2e31323334343332302d2c29241f1c17110a03000000000000000000000000000000000000000000000000000002080d13191d2025292d2e303233343433322f2d2c2924201d19130c07010000000000000000000000000000000005111d28343e4850555758585858585858585858585858585858585858585858585859606a6f7b84918c7f736d73808d887c777d8289908e87817b746e69615e5658585858585858585858585858585858585858585856544f473d33271c10040000000814212e3b4754616e7a8794897c6f6356493c353535353535353535352e34383a3b3e43474d535b626c74818d968c7f7265584e43372b1f13060000000000030c151c23282c2d3535353535353535353535353535353946535f6c7986928d8073675a4d4035353535353535353535353535353531302d29221b12090000000a1723303d4a5663707d8993867a6d6053473a2d20140700000000000000000000000000000000000c1825323f4b5865727e8b9084776a5d5144372a1e1100000005121e2a36424d5765727f8c9285796d6053473a2e23180c00000000000000000000000000000a13202d394653606c7985918b7e7265564c41362a1e1105000000000a1724303d4a5763707d868b7e716c625b514b433c36302b28232626262b2f353d464f59616e7b86928e8175675d5145392c201306000000000000020e1a26313b454d53555555555555555555555c6976828f86796c5f555555555555555554514b433a3a3b3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c4753606d7a868d8074675a4d413c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3a38352f271f150b010000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f02000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d918477665b5044382b1f12060000000000000000000000000000000714202d3a4753606d7a86998a7d7064574a3d3124170a000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f827568564c443b322a2119100801000000000613202d394653606c7985928a7e7164574b3e3124180b0000000000000000000000000000000000000714202d3a4753606d7a85928c7f73675d51453e352f2823201d191c1c1a1e2024292e343b424a505b626b6f6b635b51483e33281d1105000000000000000000000000000000000000000000000006111c2b37434e586673808c8a7d7075818e867a6d6154473c31261a0e02000000000000000000000000000000000000000000000000000000000000000000000000000000000000030506080b0c0d0e0d0c0b080705020000000000000000000000000000000000000000000000000000000000000000000000060b1012131a1e2122242626272726252320201d1812100c0600000000000000000000000000000000000000000000000000000000000002080d1113191d20212325272727262523201f1d1813110d08010000000000000000000000000000000000000814212d3945505a6164656565656565656565656565656565656565656565656565656565696e7b84918b7f7273808d8c7f83898f8e87817b756e6965656565656565656565656565656565656565656565656565656360594f44382c2013070000000814212e3b4754616e7a8794897c6f6356494141414141414141414242433f4446484b4e54575e616d727e8b929184796d6053463d32271b0f0300000000000b151e272e34383a4141414141414141414141414141414146535f6c7986928d8073675a4d414141414141414141414141414141413e3d39342d241b100600000a1723303d4a5663707d8993867a6d6053473a2d20140700000000000000000000000000000000000c1825323f4b5865727e8b9084776a5d5144372a1e110000000714202d3a46525e697683908e8275675d5145382c1c1207000000000000000000000000000006121f2b3844505b6674818d8f8376685e5246392d20140800000003101d293643505c6976828f92877e726d605c554e46423b38342e333331373940454f58606b74818d93897c6f62554c4135291d110400000000000005121e2a36424d575f61626262626262626262626976828f86796c626262626262626262605d554b41352e2f2f2f2f2f2f2f2f2f2f2f2f2f2f3a4753606d7a868d8074675a4d41342f2f2f2f2f2f2f2f2f2f2f2f2f2f2d2c29241d150d03050000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f02000000000000000000000000000000000000000000000000000d192633404c5966737f8c9286796c605346392d2013060000000000000000000000000000000815222f3b4855626e7b8895897c6f6256493c2f231609000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685e564d443c332b2219130b060000000815222e3b4855616e7b8898897c6f6356493c302316090000000000000000000000000000000000000613202c3945515d6774818e9184796d60594f454039342e2d2a252829252a2d2f353940454d545b606d727c726d635a5045392d2114080000000000000000000000000000000000000000000000000f1b27323d4855616e7b888e817479858f8276685e5246392a1f150900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000306090e12141517191a1a1a1918161413100d0703000000000000000000000000000000000000000000000000000000000000000000000105080d11131417191a1a1a1918161413100c07040100000000000000000000000000000000000000000a1723303d4955616c717272727272727272727272727272727272727272727272727272727272727b8591877e74808d918c909287817c75727272727272727272727272727272727272727272727272727272727272706b6054483c2f2216090000000814212e3b4754616e7a8794897c6f63564e4e4e4e4e4e4e4e4e4e4e4f4f4a50535557586062696e757f879292877d70675c5145382b20160a000000000007121c2730394044464e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e535f6c7986928d8073675a4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4b49453e362d22170c00000a1723303d4a5663707d8993867a6d6053473a2d20140700000000000000000000000000000000000c1825323f4b5865727e8b9084776a5d5144372a1e110000000815212e3b4854616e7b87938a7e7164554b4035291d0b000000000000000000000000000000030f1c28333f4a5463707d8993877a6e6154473b3025190d010000000714212d3a4754606d79839092877f746d676058524d46443f403f404142474b5159606a707d88938f82756a6054433a2f24190d010000000000000714212d3a46535f696e6f6f6f6f6f6f6f6f6f6f6f76828f86796f6f6f6f6f6f6f6f6f6f6d675d5145392c222222222222222222222222222d3a4753606d7a868d8074675a4d41342722222222222222222222222222201f1d181c1c1915100a02000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f02000000000000000000000000000000000000000000000000000b1824313e4b5764717e8a98877b6e6154483b2e2115070000000000000000000000000000000a1724313d4a5764707d8a98877b6e6154473b2e211408000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d91847a6d685e564d453d3429241e17110d08090f1724303d4a5763707d8a96877a6e6154473b2e21140800000000000000000000000000000000000004101d2935404b55626f7c87938d80736b6159514b45403a393630353530363a3b41454b51575e666c737f897f726c6155493d3023170a0000000000000000000000000000000000000000000000000a16212d3a47535f6976839085777d898a7e7164564c41362a180e03000000000000000000000000000000000000000000000000000002070b0d0d13130f0e0c0904000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020507080b0c0d0e0d0d0b0907060401000000000000000000000000000000000000000000000000000000000000000000000000000000010507070a0c0d0e0d0d0c090706040000000000000000000000000000000000000000000000000b1824313e4b5764717e7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f818e938a8186929f999a8d807f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7d7063564a3d3023170a0000000814212e3b4754616e7a8794897c6f635b5b5b5b5b5b5b5b5b5b5b5b5b5c545c606264676a6f747b818b92938b7f726b60554b403428190f0400000000000c18232e39424a51535b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5f6c7986928d8073675b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b585650483e34291d1105000a1723303d4a5663707d8993867a6d6053473a2d20140700000000000000000000000000000000000c1825323f4b5865727e8b9084776a5d5144372a1e11000005111e2a36424d5765727f8b92867a6d6054473a2f24180c000000000000000000000000000000000b17222d3a4653606d7985928b7e7265564c41362a1d11050000000613202c3945515d676d7a828f938b81796f6a615e5753504a4d4c4d4d4d53555d606b6f7c859292867b6e61584e4331281e1308000000000000000815222e3b4855616e7b7b7b7b7b7b7b7b7b7b7b7b7c8491887c7b7b7b7b7b7b7b7b7b7c796d6054473a2d2c2c2c2c2c2c2c2c2c2c2c2c2c2d3a4753606d7a868d8074675a4d41342c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c292825211b140c040000000d1a2734404d5a6773808d8f8275685c4f4235291c0f02000000000000000000000000000000000000000000000000000916222f3c4955626f7c8895897d7063564a3d2f24180d010000000000000000000000000003101c28343f4a5466727f8c9285786c605346392d201306000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d9691837a6e695f574f473f352f27221b1918191a212b37434e586773808d918578685e5246392d201407000000000000000000000000000000000000010d18242f3947535f6a74818e93877d706b605d55514b474641434242434246484b51545c60696e78808b918a7e7164574b3e3124180b00000000000000000000000000000000000000000000000006121e2b37424d5765727f8b897c808d857a6d6053473a302519070000000000000000000000000000000000000000000000000001080e1317191a20201c1b19151009020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004111d2a3744505d6a77838b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8e9396938e92989b9896928d8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8174675b4e4134281b0e0100000814212e3b4754616e7a8794897c6f6868686868686868686868686868696a666d6e7174787c81868f9391877f726d62594f43392e231807000000000004101c2834404a545c60686868686868686868686868686868686868686c7986928d80736868686868686868686868686868686868686864625a5045392d211508000a1723303d4a5663707d8993867a6d6053473a2d20140700000000000000000000000000000000000c1825323f4b5865727e8b9084776a5d5144372a1e1100000714202d3a46525e697683908f8275675d5145392c1d12070000000000000000000000000000000006121f2c3844505c6674818e8f8276685e5246392d20130800000004111d2935414c555d686d79828d928e837c746e6963605c545959595a575f61676d737d8592928a7e71695e53463d321f160c0100000000000003101d2a3643505d69768288888888888888888888888891968e88888888888888888888887d7064574a3d3939393939393939393939393939393a4753606d7a868d8074675a4d41393939393939393939393939393939393939393635322d261e160c0200000d1a2734404d5a6773808d8f8275685c4f4235291c0f02000000000000000000000000000000000000000000000000000714202d3a4753606d7a86958c7f7366554b4135291d11040000000000000000000000000006121f2b3844505c6675828f908376655b5044372b1f1205000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d989291837b6e6960595045413a332d29242525262b333b47535f6a7784918e827568564c41362a1e11050000000000000000000000000000000000000007121d2b37434e58606d7a849192867d736d67605c5454524c4f4f4f4f4d5254555d60666d727b828d9290837a6d6154473a2e211407000000000000000000000000000000000000000000000000020e1a26313c4754616d7a868d80848e8175675d514539291e1308000000000000000000000000000000000000000000000000020a12191f2326272d2d292825211b140c03000000000000000000000000000000000000000000000000000002060a0c0c12120e0d0b08030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000205070813131309090703000000000000000000000000000000000000000000000000000000000105090b0c131313130603000000000000000000000000000004111d2a3744505d6a77838989898989898989898989898989898989898989898989898989898989898989898989899095918b8989898989898989898989898989898989898989898989898989898989898989898989898174675b4e4134281b0e0100000814212e3b4754616e7a8794897c747474747474747474747474747575767678797b7e8184898e92928d857d726d625b51473d30271d1207000000000006121f2c3844515c666d74747474747474747474747474747474747474747986928d807474747474747474747474747474747474747474716c6256493d3024170a000a1723303d4a5663707d8993867a6d6053473a2d20140700000000000000000000000000000000000c1825323f4b5865727e8b9084776a5d5144372a1e1100000814212e3b4754616e7b87938b7e7164554b4135291d11040000000000000000000000000000000003101c28343f4a5464707d8a92867a6d6154473a3025190d010000010d19242f3a434c565d676d78808a929087817b74706d66676666666769696e73797f8792918c80736c61574d42342b200d040000000000000003101d2a3643505d6976838d8d8d8d8d8d8d8d8d8d8d8d929c928d8d8d8d8d8d8d8d8d8d8a7d7064574a46464646464646464646464646464646464753606d7a868d8074675a4d464646464646464646464646464646464646464643413e3830281e140a00000d1a2734404d5a6773808d8f8275685c4f4235291c0f02000000000000000000000000000000000000000000000000000613202c3945515d677784908f8376675d5145392c20160a000000000000000000000000000713202d3a4653606d7985928d80736753493f33271b0f03000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d92868c91847b6f6b625a524c443f38352f323231373c454e58626f7c88968b7e7164584b3e3025190e0200000000000000000000000000000000000000010f1b26323c45525d686f7c859292878079716d6663615e565c5b5c5c575e6164676d72797f868f938e837a6d685e5246392d201307000000000000000000000000000000000000000000000000000915202d3946525e6876828f8d91897d7063554b4035291d10040000000000000000000000000000000000000000000000010a141c242b2f333439393534312c261e150c02000000000000000000000000000000000000000000000000070d121618191e1e1b1a18140f0801000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002080e1114142020201615130f0a0400000000000000000000000000000000000000000000000000060c111518182020202012100c06000000000000000000000000000916232f3c4956626f7c7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d83908b7f7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7c6e6255483b2f2215080000000814212e3b4754616e7a87948f8281818181818181818181818181818282838486888a8e9195918c86807a706c625b51493f352b1e150b0000000000000713202d3a4653606d798181818181818181818181818181818181818181818793908381818181818181818181818181818181818181817e7164584b3e3125180b000a1723303d4a5663707d8993867a6d6053473a2d20140700000000000000000000000000000000000c1825323f4b5865727e8b9084776a5d5144372a1e110005111e2a36424d5665727f8b92867a6d6154473a2f24180d0100000000000000000000000000000000000c17232e3a4753606d7985928b7e7165564c41362a1d110500000008131e28313a444c555d666d737e858f928d86817d7976747372737475787b7f848c9291897f736d635a50453b3122190f0000000000000000000c1825323f4b5865727f8080808080808080808080808d948d80808080808080808080807c6e62555252525252525252525252525252525252525253606d7a868d8074675a5252525252525252525252525252525252525252524f4e49423a30261b1005000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000000000000000000000000000004111d2935404b556773808d92867a6d6054473d32271b0e05000000000000000000000008111d2935414c55636f7c8998897d7063564a3d2d22170b00000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f817f8c91857d716d605d56504945413f3f3f4042474e57606a75828f92867a6d6154473a2e2114080000000000000000000000000000000000000000000a15202935414c565f6a6f7c8590928d847e7973706d686a696868696a696e71757a7e848b92918a81796d685e564c41362a1d11050000000000000000000000000000000000000000000000000005111e2a36414c5664717e8b989285796d6053463a2f24180d01000000000000000000000000000000000000000000000008121c262e363b3f40464642413d3730271e140900000000000000000000000000000000000000000000010a12181e2225262b2b282724201a130b02000000000000000000000000000000000000000000000000000000000000000000000000000000000000050d14191e20212d2d2d23221f1b160f0700000000000000000000000000000000000000000000000911181d2224252d2d2d2d1f1c17110a0300000000000000000000000815222e3b4754606a6f707070707070707070707070707070707070707070707070707070707070707070707073808d887b7070707070707070707070707070707070707070707070707070707070707070707070706e6a5f53473a2e2114080000000814212e3b4754616e7a8794948f8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8f90919292908e8b88847f7a746d68615a51493f372d231a0c030000000000000714202d3a4753606d7a868e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e939995908e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8d8174675a4e4134271b0e000a1723303d4a5663707d8993867a6d6053473a2d20140700000000000000000000000000000000000c1825323f4b5865727e8b9084776a5d5144372a1e11000714202d3a46525e697683908f8276685d5246392d1d130700000000000000000000000000000000000006131f2c3845515d6775828e8f8276685e5246392d201307000000010c161f28323a434b545c606c717a828990928e89858381807f80808284888c91928d847d726d635b52483e33291f10070000000000000000000b1824313d4a56626d72737373737373737373737376828f8679737373737373737373736e6a5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f606d7a868d8074675f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5c5a544c42382d211509000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000000000000000000000000000000000000000010d18242f3d4a5663707d89978b7e7165594f43382c20170c03000000000000000000050f1a232c3945515d6774818e9285796d6053463a2d20130600000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f82757f8892877e756d68605b53524c4c4b4c4d4d53585f696f7c89938e8174685d5246392d201307000000000000000000000000000000000000000000040d19242f3a444e585f6a6f7b838c92918a85807d7a78777675757677787b7e81858b91928d857d746d675e564c443a3025190d0100000000000000000000000000000000000000000000000000010d1925303a4753606d79868a8a8074665c5044382b1d12070000000000000000000000000000000000000000000000020e19242e3840474c4d53534f4d49423930261b10040000000000000000000000000000000000000000000a131c232a2f323338383433302b251d140b0100000000000000000000000000000000000000000000000000000000000000000000000000000000050e171e252a2d2e393939302f2c272119100700000000000000000000000000000000000000000009121b23292e3132393939392c28231c150c030000000000000000000006131f2b37434e586062636363636363636363636363636363636363636363636363636363636363636363636673808d887b6f6363636363636363636363636363636363636363636363636363636363636363636363625f584e43372b1f12060000000814212e3b4754616e7a878a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8988878584817e7b77736d68605d5650473f372d251b1108000000000000000714202d3a4753606d79868a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8174675a4e4134271b0e000a1723303d4a5663707d8993867a6d6053473a2d20140700000000000000000000000000000000000c1825323f4b5865727e8b9084776a5d5144372a1e11000814212e3b4754616e7a878a8a7f7265564c4135291d0c0100000000000000000000000000000000000004101d2935404b5564717e8a8a877a6d6154473a2e21140700000000040d1620283139424a505a61686e757d83888d9192908d8c8c8c8d8f91928f8b85807a706b635b524940362c21170d000000000000000000000915222e3a45515b6265666666666666666666666976828f86796c66666666666666666662626c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6d7a868d80746c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c69665e54493e3225190d000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000000000000000000000000000000000000000000713202d3a4653606d7985929083766b6054483e32291e150b0300000000000000050e17212935414c56606d7a86928e8174665c5145382c1f130600000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275727e87918b817a716c65605d5659585859575f626a6f7b859192867b6e61564c4135291d11050000000000000000000000000000000000000000000008131e28323c464e585f696e7980868d92928d8a878483828282828385878b8e92928d86807a706c605c554c443a32291e13080000000000000000000000000000000000000000000000000000000813202c3945515d67707d7e7e7b6e61544a3f34281c0c01000000000000000000000000000000000000000000000007131f2b36404a52585a60605c59544b42372c211509000000000000000000000000000000000000000007121c252e353b3e3f454541403c362f261d1308000000000000000000000000000000000000000000000000000000000000000000000000000000020d1720293036393b4646463c3b38322b23190f040000000000000000000000000000000000000006111b242d343a3d3f4646464638342e261e150a00000000000000000000030f1b27323d464e54565656565656565656565656565656565656565656565656565656565656565656565a6673808d887b6f625656565656565656565656565656565656565656565656565656565656565656565655534e463c31261a0f020000000714202d3a4753606d797e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7d7d7d7c7c7a797774726e6966615e56524c443e352d251b130900000000000000000613202d394653606c787e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7c6f6255493c2f221609000a1723303d4a5663707d8993867a6d6053473a2d20140700000000000000000000000000000000000c1825323f4b5865727e8b9084776a5d5144372a1e11000815212e3b4854616e7b7e7e7e7a6d6054473a3024190d00000000000000000000000000000000000000000c18242f3a4753606d797e7e7e7a6e6154473b2e2114080000000000040e161f2730383f4450565e616b70767c808487898b8c8c8c8b8a8886827e7a736d686059514940372e241a0f050000000000000000000005111d29343f495156585a5a5a5a5a5a5a5a5a5c6976828f86796c5f5a5a5a5a5a5a5a5f696e79797979797979797979797979797979797979797979797979868d807979797979797979797979797979797979797979797979797670665a4e4135281c0f000d1a2734404d5a6773808d8f8275685c4f4235291c0f02000000000000000000000000000000000000000000000000000006131f2c3845515c6773808d95897c6f635a50443b30271d150d070000000003080f172029333b46525e68727f8c95897c6f63544b4034281c100400000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f82756c717d85908e847e78716d68676665656667696e747c8491948c7f73695f53443a3024190d0100000000000000000000000000000000000000000000010c16202a343c464e575f666d737b81858b8e929691908f8e8f8f909297918e8a85807b736d68615a514b433a322920170c0200000000000000000000000000000000000000000000000000000004101d2935404b55606b7071716e695e5242382e23170b0000000000000000000000000000000000000000000000000b17232f3b47525c64676c6c68655d54493d3125190c00000000000000000000000000000000000000020d18232e3740464b4c51514e4c4841382f251a0f03000000000000000000000000000000000000000000000000000000000000000000000000000008141e29323b4146535353534948433d352b21160a000000000000000000000000000000000000010c18232d373f454a4b53535353443f3830261c1106000000000000000000000a15202b343d4347494a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4d5a6673808d887b6f62554a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4847433c332a2015090000000006131f2c3845515c676d7171717171717171717171717171717171717070706f6d686a6865615f5754524c45413a322c231b130901000000000000000006121f2b3844505b666c7171717171717171717171717171717171717171717171717171717171717171717171717171717171717171716f6a6054473b2e221508000a1723303d4a5663707d898a867a6d6053473a2d20140700000000000000000000000000000000000c1825323f4b5865727e8a8a83776a5d5144372a1e11000714202d3a46525e696e7171716d685d5245392c1e130800000000000000000000000000000000000000000713202c3945515d676d7171716e685e5246392d201407000000000000040d151e262e343e444c525960636a6f73777a7c7e7f7f7f7e7d7b7976726d68605d564f473f372e251c12080000000000000000000000010c18232d373f454a4b4d4d4d4d4d4d4d4d4f5c6976828f86796c5f534d4d4d4d4d55626e7b868585858585858585858585858585858585858585858585868b928d8585858585858585858585858585858585858585858585858276695c4f4336291c10000d1a2734404d5a6773808d8f8275685c4f4235291c0f02000000000000000000000000000000000000000000000000000004101c2834404b55616e7b87929083766c61564d42392f271f18120e09060b0f14192129323b454f59616d7a85929083776b605442392e23180c0000000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275686b6f7a828c918a837e7a76747272727374777b808791938f82786d60574d4232281e1308000000000000000000000000000000000000000000000000040d18222a343c454d545c60696e747a7e828587898b8c8c8c8b8b898785817e7a736e69605d5650454039302920170e0500000000000000000000000000000000000000000000000000000000010d18242f39434f5960636464615e574d4230261c11060000000000000000000000000000000000000000000000000d1926333f4c58646e737979756f65594d4134281b0e0200000000000000000000000000000000000006121e2a3540495157595e5e5b58534a41362b20140800000000000000000000000000000000000000000000000000000000000000000000000000020e1925303b444c525f60606056544f473d32271b0f03000000000000000000000000000000000005111d29343f495156586060605f504a42382e23170c00000000000000000000040f19222b32373b3c3d3d3f4446474644404443434241403f3e3d3d3d3d3d3d3d3d3d3d3d3d3d3d404d5a6673808d887b6f6255483d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3b3a37312a21180e030000000004101c2934404b555c6064646464646464646464646464646464646464636362615e565b5855534d4746413a352f28201a110901000000000000000000030f1c28333f4a545b606464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646260584e43372b1f1306000814212e3b4754616e7a7e7e7e786d6053463a2d20130700000000000000000000000000000000000815222e3b4855616e7b7e7e7d7063564a3d3023170a0005121e2a36424d575e61646464605d564c4135291d0c02000000000000000000000000000000000000000004101d2935404b555d60646464615e564d41362a1e110500000000000000030c141c2328323b41464f5458606267686d707172737272716f6d6665615d56524c443d352d251c130a0000000000000000000000000006111b242d343a3d3f40404040404040434f5c6976828f86796c5f53464040404855626e7b888e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8f949d938e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8376695d5043362a1d10000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000000000000000000000000000000000c18232e3946525e6974818e948a7e71695e544a42393128231d1a1918171b1f252a333b444d57616b74808d948a7d7063594f4330271d12070000000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f82756860686e787f868f908b8683817f7e7f808184888d92928c81796d665c50453b3120160c0200000000000000000000000000000000000000000000000000061019222a333c424b51575e61676d7175797b7d7e7f7f7f7f7e7c7a7874716d67615e57524c443e342e271e170e0500000000000000000000000000000000000000000000000000000000000007121d28313d474f5456575754524d453b301e140a000000000000000000000000000000000000000000000000000d1a2734404d5a67738086868175685c4f4235291c0f020000000000000000000000000000000000000a16222f3b46515b63666b6b67645c53483c3024180b0000000000000000000000000000000000000000000000000000000000000000000000000005111e2a36414c565e6c6c6c6c6360594f43382c1f130700000000000000000000000000000000000915222e3a45515b62656c6c6c6c5c544a3f34281c10030000000000000000000007101920272b2e2d38414950535453514a51504f4f4e4d4c4b4a49484847454044434241403e3d404d5a6673808d887b6f6255483c303030303030303030303030303030303030303030303030303030303030302f2e2b2620180f060000000000000c18232f39434b51535757575757575757575757575757575757575757565554524c4e4b4846423b39363029241e160d080000000000000000000000000b17222d38424a505357575757575757575757575757575757575757575757575757575757575757575757575757575757575757575755544e463c32271b0f03000714202d3946525e686e7171716d665c5044382c1f120600000000000000000000000000000000000714212d3a46535f696e7171706b6155483c2f23160900020e1a25303b454d525457575754524c443a3024190d000000000000000000000000000000000000000000010d18242f39434b515357575754524d443b3025190e020000000000000000020a1117202930363d44484e5455565d616364656666656462605c5454524c45413a322c231c130a01000000000000000000000000000009121b23292e313233333333333336434f5c6976828f86796c5f534639333b4754616e7b818282828282828282828282828282828282828282828282828f928d818282828282828282828282828282828282828282828282807366594d4033261a0d000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000000000000000000000000000000000000000000007121d2a36424d57616d7a859292857b6e665c544b433b342e2a25252522272b30363d454d565e69707d88939083766b6155473d321e150b000000000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f827568565e666d727b82888d92908d8c8b8b8c8e9196918c867f786d675d544a3f33291f0e04000000000000000000000000000000000000000000000000000000071019212a303940454d52555d6065666c6e707172737272716f6d686864605d55534d45413a3228231d150c0500000000000000000000000000000000000000000000000000000000000000010c161f2b353d4448494b4b4846423b33291f0c02000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000000000000000c1825323e4b57636d727878746e64584c4033271a0d010000000000000000000000000000000000000000000000000000000000000000000000000714202d3946525e68767979796f6b6054483b2f22150900000000000000000000000000000000000b1824313d4a56626d7279797976665c5044382c1f12060000000000000000000000070f151b1f27333f49535b6061605c545e5d5c5b5a5a59585756555453514b504f4e4d4c4b4a494d5a6673808d887b6f6255483c303432312f2d2c29242623232323232323232323232323232323232323232322211f1a150e060000000000000007121d2731394045474b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4a4a4a4949474641413f3b3a36312d2a251e19130c040000000000000000000000000006111c262f383f44464b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4947433c342b20150a000005111e2a36414c565e61646464605c544a3f34281c1003000000000000000000000000000000000005121e2a36424d575f6164646361594f44382c201407000009141f29333b4246484b4b4b4745413a32281e13080000000000000000000000000000000000000000000007121d2831394045474b4b4b4746413b32291f14080000000000000000000000060e171e252a32383c4347494c5254565859595958575553514a4746413a353028201a110a01000000000000000000000000000000000911181d22242527272727272936434f5c6976828f86796c5f5346392d3a46525e696e75757575757575757575757575757575757575757575757579868d80757575757575757575757575757575757575757575757575736d63574b3f3225190c000d1a2734404d5a6773808d8f8275685c4f4235291c0f02000000000000000000000000000000000000000000000000000000000e1a25303b46525e68727f8b938f82786d665c554d454039363132322d33373b41464f575e686e7b859192867b6e62594f44342b210c03000000000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c545c606a6e757c8085888a8c8d8d8d8c8a8784807a726c665d554b42382e21170d0000000000000000000000000000000000000000000000000000000000070f181e272e343b42464b5153545b60616365656666656463615e565753514b46423b352f282018120b03000000000000000000000000000000000000000000000000000000000000000000040d19232b33383c3d3e3e3b3a36302921170d00000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000000000000000c1926333f4c5966727f84848174675b4e4134281b0e010000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8686867d6f6356493c3023160900000000000000000000000000000000000c1825323f4b5865727f868686786d6053463a2d201307000000000000000000000000040a121f2b3744505b656c6d6d666b6a6a69686766656564636261605d555d5c5b5a59585756545a6673808d887b6f6255484142413f3d3c3a39352f32302e2d2a252522201f1c17171717171717171717171514120f09030000000000000000010b151f272f34383a3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3d3d3d3c3a393630322e2d2a26201d19130d08010000000000000000000000000000000a141d262d3338393e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3c3b37322b22190f040000020e1925303b444c525457575753504a42382e23170c000000000000000000000000000000000000020e1a26313b454d5355575756554f473d33271c10040000020d17212930363a3b3e3e3e3a3935302820160c0200000000000000000000000000000000000000000000010c161f282f35393a3e3e3e3b3936302920170d02000000000000000000000000050d141921272c32373b3c414647494b4c4c4c4b4a484644403a39353029241e160e0800000000000000000000000000000000000000060c111518181a1a1a1a1c2936434f5c6976828f86796c5f5346392a36424d565e6168686868686868686868686868686868686868686868686d7a868d8074686868686868686868686868686868686868686868686866635b52473b2f23160a000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000000000000000000000000000000000009141f2a36414c56606c77828f948e81786d675e57514b4642403f3e3f3f44464d525960696e7a8491938b7f726a5f53473e3322190f00000000000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4a50575f626a6f74787b7e7f8081807f7d7b77736d68605b544b433930261c0f06000000000000000000000000000000000000000000000000000000000000060c151d232830363a4045474a505354565859595958585654524c4b47454039363129241e160d0700000000000000000000000000000000000000000000000000000000000000000000000007111921272c2f3031312e2d2a251f170f0500000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8793897c6f6356493c3023160900000000000000000000000000000000000c1825323f4b5865727e8b9386796d6053463a2d201307000000000000000000000000000613202d394653606c777a797978777676757473727170706f6e6d676b6a6968676665646261606673808d887b6f6255524c4f4e4c4a48474540413f3d3b3a3630322f2d2b282321201d19130c0a0a0a0a080806020000000000000000000000030d151d23292c2d3131313131313131313131313131313131313130302f2e2d2a252522211e1a14110d08020000000000000000000000000000000000020b141c22282b2d3131313131313131313131313131313131313131313131313131313131313131313131313131313131313131312f2e2b27201910070000000008141e29323b4146474b4b4b46443f3830261c11060000000000000000000000000000000000000009141f2a333b4246484b4b4a48443d352c21160b00000000050f171f252a2d2e3131312d2c29241e160e04000000000000000000000000000000000000000000000000040d161d24292c2d3131312e2d2a251f170e05000000000000000000000000000002080e161c20272b2e3035393a3d3e3f403f3f3e3c3a38342e2d29241e19130c040000000000000000000000000000000000000000000105090b0c0d0d0d101c2936434f5c6976828f86796c5f53463925303b444d52545b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b606d7a868d8074675b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5957524940352a1e1307000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000000000000000000000000000000000000000000000030d1925303a44505b656d7a8491938e81796e69605c54534d4d4c4b4c495053565e616b707b8390948e81746d62574e42352c21100700000000000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f444e53586062656c6e717273747372716e6966615e56504a423931271e140a0000000000000000000000000000000000000000000000000000000000000000030b12181f252a2f35393a3f4446484a4b4c4c4c4c4b494746413e3a39352f2a251f19130c040000000000000000000000000000000000000000000000000000000000000000000000000000070f161c202223242421201e1a140d050000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000c1825323f4b5865727e8b9386796d6053463a2d201307000000000000000000000000000815212e3b4854616e7b878685858483828281807f7e7d7c7b7b7a7978777675747371706f6e6d6673808d887b6f62615e565c5a59575553514b4e4c4a484642413e3c3a38342e2d2c29241e160d05000000000000000000000000000000000000030b12181c1f202424242424242424242424242424242424242424232221201d19181514120e0905010000000000000000000000000000000000000000020a11171c1f2024242424242424242424242424242424242424242424242424242424242424242424242424242424242424242422221f1b150f070000000000020d1720293036393b3e3e3e3a38342e261e150a0000000000000000000000000000000000000000030e18212a31363a3b3e3e3d3c38332c231a10050000000000050d141a1e202124242421201d19130c040000000000000000000000000000000000000000000000000000040c12181d202024242421201e19140d050000000000000000000000000000000000050b10151b1f2224292d2e303132333332312f2d2c2823201d19130d0802000000000000000000000000000000000000000000000000000000000003101c2936434f5c6976828f86796c5f5346392c29323b4246474f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f53606d7a868d8074675a4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4d4b4740372e24190d02000d1a2734404d5a6773808c8c8275685c4f4235291c0f02000000000000000000000000000000000000000000000000000000000008131e27333f49535d686e7b8491938e837b726d66615e5759585859535b6062686e757d8590938e82786d605b51453c31231a100000000000000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4242474e54535b606264666767676564615e5754524c443f382f271f150c0200000000000000000000000000000000000000000000000000000000000000000000070c141a1d24292c2d3338393b3d3e3f403f3f3e3c3a3936302d2c29241d1a140d080100000000000000000000000000000000000000000000000000000000000000000000000000000000050b1013161618181514120e0902000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000c1825323f4b5865727e8b9386796d6053463a2d201307000000000000000000000000000c1825323f4b5865727e8a8b8b8c8d8e8f8e8d8d8c8b8a898887868584838281807f7e7d7c7b797877808d887b706f6d686a6967656462605d555b595654524d4d4b4846443f3d3a39352f281f170e0500000000000000000000000000000000000001070c101314181818181818181818181818181818181817171716161413110d080807050200000000000000000000000000000000000000000000000000060b0f12131818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181615130f0a0400000000000000050e171e252a2d2e3131312d2c28231c150c03000000000000000000000000000000000000000000060f181f262a2d2e3131302f2c27211a11080000000000000002090e1214151818181413110d08020000000000000000000000000000000000000000000000000000000001070d1013141818181414110e08020000000000000000000000000000000000000000040a0f1315191d20212325262626252422201f1c1813110d08020000000000000000000000000000000000000000000000000000000000000003101c2936434f5c6976828f86796c5f5346392c202930363a3b42424242424242424242424242424242424242424753606d7a868d8074675a4d4242424242424242424242424242424242424242403f3b352e251c120700000a1623303d495663707d7f7f7e7064574a3d3124170a000000000000000000000000000000000000000000000000000000000000020b17222d38414c565f696e7b848f9390867f79736e69686665656566656c6f747b818992938c81786d665c51493f332a2011080000000000000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f42373c43474950535557595a5a5a595754534d4746413a332d261d150d0300000000000000000000000000000000000000000000000000000000000000000000000002090e13181d2022282b2d2e30323233333231302e2d2a2520201d18120e090300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000407090a0b0b080705020000000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000c1825323f4b5865727e8b9386796d6053463a2d201307000000000000000000000000000815222f3b4855626e7c7d7e7f7f80818283848585868788898a8b8c8e8f8f8e8d8c8b8a89878685848d928d807d7c7a7977757472706f6d6769676563615e575a585553504a4a4745413a312920170d0200000000000000000000000000000000000000000406070b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0a0a0a090707050100000000000000000000000000000000000000000000000000000000000000000306060b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0908060300000000000000000000050d14191e2021242424201f1c17110a030000000000000000000000000000000000000000000000060e141a1e212224242323201c16100800000000000000000000020507080b0b0b070704010000000000000000000000000000000000000000000000000000000000000000010406070b0b0b080705020000000000000000000000000000000000000000000000000306080d11131416181919191817151312100c07050100000000000000000000000000000000000000000000000000000000000000000003101c2936434f5c6976828f86796c5f5346392c171f252a2d2e353535353535353535353535353535353535353a4753606d7a868d8074675a4d413535353535353535353535353535353535353533322f2a241c130a0000000916222f3b4854606b707272706c6155493c3023160a0000000000000000000000000000000000000000000000000000000000000006111b262f3a434d575f696e7a828b92928c84807b7875737271727375787c81868e9390877f776d665c544b40372d21180e000000000000000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f42353237383f4446484b4c4d4e4d4c4a4846423b39363028221c140b0300000000000000000000000000000000000000000000000000000000000000000000000000000001070d1113171c1f2021232526262625252321201d191413100d070100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000c1825323f4b5865727e8b9386796d6053463a2d201307000000000000000000000000000814212e3a47535f6a6e70717273737475767778797a7b7c7c7d7e8081828384858688898a8b8c8d8f9192928d8a8887858482817f7d7b7a78767472706e6969676562605c545754514c433b33291f140900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002080e1114141818181312100c06000000000000000000000000000000000000000000000000000003090e1214151818171614100b050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010507070a0b0c0d0c0c0b090706040000000000000000000000000000000000000000000000000000000000000000000000000003101c2936434f5c6976828f86796c5f5346392c2014191e20212828282828282828282828282828282828282d3a4753606d7a868d8074675a4d41342828282828282828282828282828282828282625231e19120a010000000713202c38444f596063656564615a5044392d20140800000000000000000000000000000000000000000000000000000000000000000a141d28313b454d575e686d757e858c92918c878481807f7e7f808285898e92918b837c736c655c544b42392e251b0f06000000000000000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235272b2d3337393b3e3f4041403f3e3b3a36312d2a251e17110a020000000000000000000000000000000000000000000000000000000000000000000000000000000000000104060b0f12131517181919191918161413110d08060401000000000000000000000000000000000000000000000000000000000000000000000000000000030606070808080707060300000000000000000000000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000c1825323f4b5865727e8b9386796d6053463a2d2013070000000000000000000000000006121e2b37424e575f6264646566676868696a6b676d6e6f7071727374757677797a7b7c7d7e7f818284868687888a8b8d8e8f8d8c8a88868583817f7d7b787674716f6d666663605d554d453b30251a0e020000000000000000000000000000000000000205070813131313131313131313131313131313131313131313131313131313131313131313131312110e090400000000000000000000000000000000000000000000000000000000000000000000000001040607080808080707060400000000000000000000000000000000000000000000000000000000000000000000020507080b0b0b070603000000000000000000000000000000000000000000000000000000000000020507080b0b0a090704000000000000000000000000000205070813131309090703000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003101c2936434f5c6976828f86796c5f5346392c20090e1114141c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c202d3a4753606d7a868d8074675a4d4134271c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1a1916130d07000000000003101b27323d474f54565959575550473e33281c10040000000000000000000000000000000000000000000000000000000000000000020b161f2a333b454d565e616d727a80858a8f92918e8c8b8b8c8d8f92918e89847e786f6a605b534b423930271d130900000000000000000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291b22272b2d2f313334343432312e2d2a25201d19130b06000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030606080a0b0c0d0c0c0b09070705010000000000000000000000000000000000000000000000000000000000000000000000000000030608060b0f121314151515141312100b060705010000000000000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000c1825323f4b5865727e8b9386796d6053463a2d20130700000000000000000000000000020e1a26313c454e5355575858595a5b5c5c5d555d6061626364656667686a6b676d6e6f70727374757779797a7b7d7e8081838586888a8c8e8f8e8c89878583807e7c797673706d675e574d42362a1e11050000000000000000000000000000000002080e1114142020202020202020202020202020202020202020202020202020202020202020202020201f1d1a150f0800000000000000000000000000000000000000000000000000000000000002060808070d11131415151515141312100c0708070502000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002080e1114142020201615130f0a040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002070b0d0d13130f0e0c090400000000000000000000000000000000000000020507081313130c0b0906010000000000000000000000000000000000000000000000000000000000000003101c2936434f5c6976828f86796c5f5346392c2013020507080f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f14202d3a4753606d7a868d8074675a4d4134271a0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0d0c0a0702000000000000000b16212b353d4448494c4c4a49443e352c22170b00000000000000000000000000000000000000000000000000000000000000000000040d18212a333b444c525b62686d737a7e8285888b8c8d8d8d8c8a8885817d78716d6660585049413930271e150b0100000000000000000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c171b1f20222426272727262421211e1a14110d08020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001050a0f121515171c1f202121222221201f1c171413110d0802000000000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000c1825323f4b5865727e8b9386796d6053463a2d20130700000000000000000000000000000915202a333c4247484a4b4c4c4d4e4f50514b51535455565758595b5c5d555d60616364656667686a6c686d6f7072737576787a7b7d7f81838587898b8e908d8b888583807d7a6e695e52463a2d201407000000000000000000000000000000050d14191e20212d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2c2c2a262019120900000000000000000000000000000000000000000000000000000105090e12141518181d20212122222121201f1c18181514120e09050200000000000000000000000000000000000000000000000000000000000000000000000000000305060707080807060603000000000000000000000000000000000000000000000000000000000000000000000000050d14191e20212d2d2d23221f1b160f070000000000000000000000000000000000000000000000000000000000000000000000000000000000000001080e1317191a20201c1b191510090200000000000000000000000000000003090e1214151f2020181815120d0600000000000000000000000000000000000000000000000000000000000003101c2936434f5c6976828f86796c5f5346392c2013060000000202020202020202020202020202020714202d3a4753606d7a868d8074675a4d4134271a0e020202020202020202020202020202000000000000000000000000040f19232b32383b3d3f3f3d3c39332c231a10050000000000000000000000000000000000000000000000000000000000000000000000060f182129323a414651565d60676d7175797c7e7f8080807f7d7b7874706c66605c544e443f382f271e150c030000000000000000000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0b0f12131518191a1b1a19171514120e0905010000000000000000000000000000000000000000000000000000000000000000000000000001040607080808060603000000000000000000000000000000000000000000000001040607080706040000000000000000000000000000000000000000000002080d11151a1f212222282b2d2e2e2f2e2e2d2b282321201d19130e090300000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000c1825323f4b5865727e8b9386796d6053463a2d2013070000000000000000000000000000030e18212a31373a3b3d3e3f4040414243444045474849494a4b4d4e4f504b515355565758595a5c5e565d6162636566686a676d6f70727476787a7d7f818386888b8e908d8a847a6e6154473b2e2114080000000000000000000000000000050e171e252a2d2e3939393939393939393939393939393939393939393939393939393939393939393939393836312b241b1208000000000000000000000000000000000000000000000002080d11151a1e21222524292c2d2e2f2f2e2e2d2c28232421211e1a14120e090200000000000000000000000000000000000000000000000000000000000002060808060b0f1213141415141413120f0b06080806020000000000000000000000000000000000000000000000000000000000050e171e252a2d2e393939302f2c27211910070000000000000000000000000000000000000000000000000000000000000000000000000000000000020a12191f2326272d2d292825211b140c0300000000000000000000000000050d141a1e21212c2d2d2524221d181109010000000000000000000000000000000000000000000000000000000003101c2936434f5c6976828f86796c5f5346392c2013060000000000000000000000000000000000000714202d3a4753606d7a868d8074675a4d4134271a0e0100000000000000000000000000000000000000000000000000000007111921272c2f30323231302d28221a110800000000000000000000000000000000000000000000000000000000000000000000000000060f17202830353f434c52555d6064666d6f717273747372716e6a6863605b54504a423d332d261d150c03000000000000000000000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f030506080b0c0d0e0d0c0b08070502000000000000000000000000000000000000000000000000000000000000000000000000000306070d10131415151413120f0b060603000000000000000000000000000000000001080d111314151313100c0700000000000000000000000000000000000002090e13191e20262b2e2f2d3338393a3b3b3b3a3a38342e2e2d2a251e1a140b06000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000c1825323f4b5865727e8b9386796d6053463a2d201307000000000000000000000000000000060f1820262b2e2f31313233343535362f35393a3b3c3d3e3f4041424340454748494a4b4c4e4f514c52545557585a5b555d606264666869686e70727477797c7e818487837b6e695e52463a2d20140700000000000000000000000000020d1720293036393b46464646464646464646464646464646464646464646464646464646464646464646464645423d352d24190f04000000000000000000000000000000000000000003090e14191e20262b2d2e322f35393a3b3b3b3b3a3a38342e312e2d2a25201e1a140f0903000000000000000000000000000000000000000000000000000205090e12141518171b1f202021212121201f1c17181514120f0a060200000000000000000000000000000000000000000000000000020d1720293036393b4646463c3b38322b23190f04000000000000000000000000000000000000000000000000000000000000000000000000000000010a141c242b2f333439393534312c261e150c020000000000000000000000050f171f252a2d2e39393932312e29231b13090000000000000000000000000000000000000000000000000000000003101c2936434f5c6976828f86796c5f5346392c2013060000000000000000000000000000000000000714202d3a4753606d7a86898074675a4d4134271a0e0100000000000000000000000000000000000000000000000000000000070f161b20222326262423201c171008000000000000000000000000000000000000000000000000000000000000000000000000000000050e161e2529313a41454b5153545c606264666667666664625f575653504a443f383027221b140b0300000000000000000000000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000101010000000000000000000000000000000000000000000000000000000000000000000000000000000000060b0f1213181d2020212221201f1c1715120f0a030000000000000000000000000001070c13191d202122201f1c18120b03000000000000000000000000000001070d141a1e252a2d31373a3c3f3f4446474848484746443f3e3a3936302a261f17110a0200000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f010406070808070706030000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000c1825323f4b5865727e8b9386796d6053463a2d20130700000000000000000000000000000000060e151a1e2122242525262728292924292c2d2e2f3031323334352f35393a3b3c3d3f40414244414647484a4b4d4e4b51535557595b565e61636568666d6f7274777a7a6e695e574d42362a1e11050000000000000000000000000008141e29323b414653535353535353535353535353535353535353535353535353535353535353535353535353524e473f352b20150900000000000000000000000000000000000000070c141a1e252a2d31373a3b3f414145474848484847464440413e3b3a36312d2a251f1a150d080200000000000000000000000000000000000000000002090e12151a1e21222522272b2d2d2e2e2e2d2d2b28222522211f1a15120f0903000000000000000000000000000000000000000000000008141e29323b4146535353534948433d352b21160a00000000000000000000000000000000000000000000000000000000000000000000000000000008121c262e363b3f40464642413d3730271e140900000000000000000000030d17212931363a3b4646463f3d3a342d251b1106000000000000000000000000000000000000000000000000000000000d1a2633404d59667380828175685c4f4235291c0f020000000000000000000000000000000000000713202d3a4653606d787d7c7b6e6155483b2e221508000000000000000000000000000000000000000000000000000000000000040b101316161919171614100b050000000000000000000000000000000000000000000000000000000000000000000000000000000000040c13191f282f353a4045474a50535558595a5a5a595755534e4a46443f38342e261e17110a020000000000000000000000000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020a11171c1f2024292c2d2e2f2e2d2b2822211f1a150f0b0600000000000000000000030b12181e24292c2d2f2d2c28231d150c09010000000000000000000000040c13181f252a3036393c4347484c4a5053545455555453504a4b4746413a363128221c140b04000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c080d1113141515141312100c06070502000000000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000c1825323f4b5865727e8b9386796d6053463a2d201307000000000000000000000000000000000003090e121415171819191a1b1c1d181d1f20212223242526282924292c2d2e3031323334353035393a3c3d3f4042404547484a4c4e4c52545658545c60626568696e6d675e574d453b30251a0e02000000000000000000000000020e1925303b444c525f60606060606060606060606060606060606060606060606060606060606060606060605f5e5951473d31261a0e0000000000000000000000000000000000030b12181f252a3036393c4247484b4e4b5154545555545453514a4e4b4846423b3a36302b262019130c0400000000000000000000000000000000000003090e141a1e20262b2d2e312d3337393a3a3b3b3a3938332d322f2e2b26211f1a150f0a040000000000000000000000000000000000000000020e1925303b444c525f60606056544f473d32271b0f0300000000000000000000000000000000000000000000000000000000000000000000000000020e19242e3840474c4d53534f4d49423930261b100400000000000000000009141f29333b4246485253534b4a463f372d23180d010000000000000000000000000000000000000000000000000000000c1925323f4b57636e7375756f655a4d4134281b0f0200000000000000000000000000000000000006121f2b3844505c666d70706e695f53463a2d21140700000000000000000000000000000000000000000000000000000000000000000307090a0c0c0a0a0804000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002080d161e24292f35393a3f4446484b4c4d4d4d4c4a4847423d3938332d28231c150c0600000000000000000000000000000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070b141c22282b2d2f35393a3b3b3b3938332d2e2b261f1b17110a0200000000000000030d151d23292f35393a3b3a38342e271e1b130901000000000000000000070d161d242930363a4146474e535558545b606161626161605c545854524c46423b332d261d160d040000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c15191d2021222221201f1c171414110e090200000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000c1825323f4b5865727e8b9386796d6053463a2d20130700000000000000000000000000000000000000020608080a0b0c0d0d0e0f070c10131415161617181a1b1c181d20202223242526272924292d2e2f3032332f35393a3c3d3f41414647494c4b51535558575e61605d554d453b33291f14090000000000000000000000000005111e2a36414c565e6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6a63594e42362a1d1100000000000000000000000000000000050c151d232830363b4146474d5355585b555d606162626161605c545a5754534d4846423b373129241e160e0600000000000000000000000000000000060b141a1f252a2d31373a3b3e413f4446474748474746443f413f3b3a37312e2b26201b150d080200000000000000000000000000000000000005111e2a36414c565e6c6c6c6c6360594f43382c1f13070000000000000000000000000000000000000000000000000000000000000000000000000007131f2b36404a52585a60605c59544b42372c2115090000000000000000040d1a25313b454d53545f6060585651493f34291d12060000000000000000000000000000000000000000000000000000000a16232f3b47525b63666968655d54493d3125190c0000000000000000000000000000000000000003101c28343f4a545c606363615f574d42372b1e120500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040c13191d24292c2e34383a3c3e3f4041403f3e3b3a37312d2b28221c17110a030000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000810191d262d3338393d40454748484746443f3c3a37312b27221b140b020000000000010b151f272f343a4145474846454039302d251b130900000000000000030b12181f282f353b42464c5254585f626568666c6d6e6e6e6d6d666864615e56534d443f382f281f160d0300000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f423529202124292c2d2e2f2e2d2c282321201e1a14100b050000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000c1825323f4b5865727e8b9386796d6053463a2d201307000000000000000000000000000000000000000000000000000000010202000004060708090a0b0c0d0e070d11131415161718191b1c191d20212224252724292c2d2f31333036393b3d3f404546494b4d525454514c433b332920170d02000000000000000000000000000714202d3946525e6876797979797979797979797979797979797979797979797979797979797979797979797979756a5e5245382c1f12000000000000000000000000000000070f171e272e343b42464c5254575f6165686a676d6e6e6e6e6d6d66696764615e5754524d47433c3530282017110a02000000000000000000000000020a11171f252a30363a3c4247484b4e495053535454545453504a4e4b4847433c3a37312b272019130d0500000000000000000000000000000000000714202d3946525e68767979796f6b6054483b2f221509000000000000000000000000000000000000000000000000000000000000000000000000000b17232f3b47525c64676c6c68655d54493d3125190c00000000000000010c161f2a36424d575e616c6c6c65625b51463a2e22150900000000000000000000000000000000000000000000000000000007131e2a3540495257595c5c5a544b42372c21150900000000000000000000000000000000000000000b17232e38424a5053565655534d453c31261a0e02000000000000000000000000000000000000000000000000000000000000000000000000000002050708131313130604010000000000000000000000000000000000000000000000000000000000000000000000000000000001080d13181d2023282c2d2f313333343333312f2e2b26201f1c17110c0600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008111a222b2f383f44464a4b515354555453504a4847433c37332d261d140a000000000007121d27313940454c52545553514b423f372d251b11060000000000030c151d2328313a40454d52565e61666a6f727577797a7b7b7b7a797775716d68615f57504a423a31281f150b01000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f42352a2d2e2f35393a3b3b3a3a38342e2e2d2a251f1c160f0a04000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000c1825323f4b5865727e8b9386796d6053463a2d201307000000000000000000000000000000000000000000000000000000000000000000000000000000000001000104060708090a0c0d0e080d1113141517181a181d2020222426252a2d2e302e34383a3c3f4246474745413a312921170e0500000000000000000000000000000814212e3b4754616e7a868686868686868686868686868686868686868686868686868686868686868686868687796c5f5346392c201300000000000000000000000000000911192129303940454d52565e6166696e727477787a7b7b7b7b7a79787674716e6966615e57534e45413a3227221b140b0200000000000000000000030b141b222731363b4246484d5355585a535b606061616160605b545b5855534e4847433c37322a251e170e08000000000000000000000000000000000814212e3b4754616e7a8686867d6f6356493c30231609000000000000000000000000000000000000000000000000000000000000000000000000000d1926333f4c58646e737979756f65594d4134281b0e0200000000000008131e28313a46535e696e797979726d62564a3d3124180b000000000000000000000000000000000000000000000000000000020e19242e3740474b4d4f4f4d49423930261b1004000000000000000000000000000000000000000006111c2630383f444649494846423c332a1f14090000000000000000000000000000000000000000000000000000000000000000000000000002080e1114142020202013110d07010000000000000000000000000000000000000000000000000000000000000000000000000000000001070d1113171c1f20222526272727262422211e1a13120f0b06000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000060f1a232c343d424a505357555d60616261605b5455534e46443f382f261b1106000000000c18232f39434b51565d6062605c5451493f372d23180d01000000000b151e272e343e434b51575e61686d72777b7f82848687878888878684817e7a746e69605b544c433a31271d1207000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4230363a3b3f41454748484746443f3f3b3a36302c28211b150b060000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000c1825323f4b5865727e8b9386796d6053463a2d20130700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010001050707090a0c070d111314151719191e20212323282c2d2f30363a3b3a39352f281f170f050000000000000000000000000000000814212e3b4754616e7a879399929292929292929292929292929292929292929292929292929292929292929286796c5f5346392c20130000000000000000000000000009121b232b333b424b51575e61686e72777b7e818385878788888787868483817e7b77726e69625f58524c443e332d261d140c020000000000000000030d151d262d333b42464d5254575f61646769656c6d6d6e6e6d6c66696865625f5855534e47433d363029201a110a0100000000000000000000000000000814212e3b4754616e7a8793897c6f6356493c30231609000000000000000000000000000000000000000000000000000000000000000000000000000d1a2734404d5a67738086868175685c4f4235291c0f020000000000020c19242f3a43505a616e7b8686867f7265584b3f3225180c0000000000000000000000000000000000000000000000000000000007121c252e353b3f404242413d3730271e1409000000000000000000000000000000000000000000000a141e262e34383a3d3d3b3a37312a21180e03000000000000000000000000000000000000000000000000000000000000000000000000050d14191e20212d2d2d2d201d18130c0400000000000000000000000000000000000000000000000000000000000000000000000000000000000104060c1012131518191a1a1a19171514120e0906030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f02000000000000000000000000000000000000000000000000000000000000000000000000000000000000030e18212c353e464e545b606468676d6e6e6e6c6666625f5853504941382d22170b00000004101c2934404b555c60686d6e6d66625b51493f34291d120000000007121d27303940454f555d60696e747a7f84888b8e9192919190919192918e8b86817b736c665d554c43392f24180b020000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f423b4246484c4c525455555453504a4c4746423b38332b272017110a02000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000c1825323f4b5865727e8b9386796d6053463a2d201307000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001040607090a080e11141416181c1f2022252a2d2e2d2c29241e160d05000000000000000000000000000000000814212e3b4754616e7a879492868686868686868686868686868686868686868686868686868686868686868686796c5f5246392c1f1300000000000000000000000008121b242d353d454d545c60696e747a7f84888b8e909298949a939a9993918f8d8a87837f7b746e6a605d564f443f382f261e140a00000000000000030c151f272f383f444d53575e6166696e71747678797a7a7b7a7a79787674726e6a67625f58544e46413a322c231b130a01000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c30231609000000000000000000000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000a141e2935414c55616c75828f9083786c605346392d20130600000000000000000000000000000000000000000000000000000000000a131c242a2f3233363534312c261e150c0200000000000000000000000000000000000000000000020c141c23282b2d30302e2d2b261f180f06000000000000000000000000000000000000000000000000000000000000000000000000050e171e252a2d2e393939392c29241d160d040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030607090b0c0d0e0d0c0b080806020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000000000000000000000000000000000000000000000000000000000000000915202a333e474f5860666c7075787a7b7b7a7976726f6a67605b53493f33271b0f03000006131f2c3845515c676d747a7b79726d625b51463a2e1d12070000000c18232e39424b515961676d737b80868c91928e8b8886858483848586888b90928e867f786d675d554b4035291d140a0000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f44484d525458565d60616261605c545854524d48443e373228221c140b040000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000c1825323f4b5865727e8b9386796d6053463a2d20130700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002050708070c101313161a1e202121201d19130c0400000000000000000000000000000000000814212e3b4754616e7a8794897d797979797979797979797979797979797979797979797979797979797979797974695d5144382b1f12000000000000000000000008111a242d363f474f575e666d737b81868c9095928f8c8988878686868788898c8e9195908c86817b746d6861595049413830261c11060000000000000b151e273139414950575e61696e73777b7e818384868687878787868583817e7b78736e6a626058524c443e352d251c130a000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c30231609000000000000000000000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000006111c26303845515d67717e8a92877c6f665b5044382b1f12060000000000000000000000000000000000000000000000000000000000010a12191e23252629292825211b140c03000000000000000000000000000000000000000000000000020a11171c1f20232322211e1a140e06000000000000000000000000000000000000000000000000000000000000000000000000020d1720293036393b4646464639352f281f160c01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000000000000000000000000000000000000000000000000000000000000020f1a26313c464f59616a6f787d81848687888785837f7b77736c655b5044372b1f12050005111e2a36414c56606d79818688857f726d62564a392e23180c000004101c2834404b545c606b707980868d92918b85817e7b797877777778797c7f838990928c82796d675d51453e2f261b110600000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4f55575e616569686d6e6e6d6d666865615e57554f47433d332d261d160e0400000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000c1825323f4b5865727e8b9386796d6053463a2d201307000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040607090e1114141413110d08010000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6962584d4135291c1000000000000000000000060f1a232c363f48505960696e797f868e92928e8985827f7d7b7a7a79797a7b7d7f8184888c91928e87817a706b605b534a42382e23170b000000000007121c273039434b535b60696e757b8084888b8d8f919291909090909192908e8b8884807b766f6a615e5650473f372e251c12090000000000000000000000000814212e3b4754616e7a8794897c6f6356493c30231609000000000000000000000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f02000000000b17232e38424e58606d7a84918d80736a5f544a3f33281c0f0300000000000000000000000000000000000000000000000000000000000000070e1316191a1c1c1b1915100902000000000000000000000000000000000000000000000000000000060b10121316161514120e09030000000000000000000000000000000000000000000000000000000000000000000000000008141e29323b4146535353535345403a31281d130700000000000000000000000000000000000000000000000000000000000000000000000000000002070a0c0d131313100f0d0a0500000000000000000000000000000000000004060712131313100f0d09050000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f02000000000000000000000000000000000000000000000000000000000000000000000000000000000006121f2b37434e58616b707c838a8e9192919091928f8c888480786c605346392d201306000713202d3946525e6874818d9298928b7f7265544b4034281c10040006131f2c3845515c666d747d848d92928c847e7974716e6d676a6a6a666d6f72767c838d928f82796d60594f41382d22170b00000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c55596163696e7275787a7b7b7a797875726e69636159544e443f382f2820160e04000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000c1825323f4b5865727e8b9386796d6053463a2d20130700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020507080706040100000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f635f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5d5850463b3025190d000000000000000000030c18222c353e48505a626b707b838c92928d86817d787573706f6e6d676d6d6e707275787b7f848a90938d857d736c655c544a3f34281c1003000000000c18232e39424b555d656c727b81868c91928f8b89878584848383848486878a8d90918d88827c756d68615a514940372e241b100600000000000000000000000814212e3b4754616e7a8794897c6f6356493c30231609000000000000000000000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000004101c28343f4a54606a74808d9184796d60584e42382d22170b00000000000000000000000000000000000000000000000000000000000000000002070a0c0d0f0f0f0c0904000000000000000000000000000000000000000000000000000000000000000306070a0a080705020000000000000000000000000000000000000000000000000000000000000000000000000000020e1925303b444c525f6060605f514b433a2f24180d0100000000000000000000000000000000000000000000000000000000000000000000000000070d131619192020201d1c1916100a030000000000000000000000000000070c1013131f2020201c1c1915100a02000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3a47535f6a707d8690938e898685848485888b8f8f8275655b5044372b1f1205000714212e3a4754616d7a87939fa29e918478665c5145382c1f1306000713202d3a4653606d78808a91938e857f79716d676462605c555d545c6062656a6f78808d938e81746b6153493f33271b0f03000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685961636b70767b7f8285878888878684817f7b76706b626058504a423a322820160d040000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000c1825323f4b5865727e8b9386796d6053463a2d20130700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f63565353535353535353535353535353535353535353535353535353535352514d463e342a1f14080000000000000000000b151e2a343e47505a626c717d8590948f87807a75706c6566636261605d6060626365686a6f73787d838b92928880776d665c5044382b1f120600000004101c2834404a545d676d777f868e92918a86827e7c7a78777776767777797b7d8083888d928f89817a706c625b524940362d22180b02000000000000000000000814212e3b4754616e7a8794897c6f6356493c30231609000000000000000000000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000040d1a242b3844505c666f7c8793897d70675d51463c2f261c1106000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005111e2a36414c565e6c6c6c6c6c5d554b4035291d11040000000000000000000000000000000000000000000000000000000000000000000000010a12191e2325262d2d2d292926211c150d040000000000000000000000030b12181c1f202c2d2d2d292825211b140c040000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000000000000000000000000000000000000000000000000000000000006131f2b37434e58626e7c86929288817d79787777787b7e82877e706453493f33271b0f0300091623303c4956636f7c899aa4aca19686796d6053463a2d201307000c1825323f4b5865727e8b92928a817a726d66605c555553514b504a5053555860666d74818e938a7d70655b5044372b1f1205000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000000000000000d1a2734404d5a6773808d8f827568626b70777d82878b8f919291909192918e8b87827d766f6a605b544c443a32281f160c0100000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000c1825323f4b5865727e8b9386796d6053463a2d20130700000000000000000406071213130d0c0a0702000000000000000000000000000000000000000000000000000000000406071113130f0f0d0904000000000000000000000000020507081313130909070300000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356494646464646464646464646464646464646464646464646464646464644413b342c22180d02000000000000000007121d27303c464f59616c717f8792928c827b736d6863605b5356555453515354555659585f62656c70787f8691938d81786d6053463a2d2013070000030d17212c3844515c666d79818c92928b847e7a75726f6d686b6a69696a666c6e7073777c80868d938e857d726d635c52483f342a1d140a000000000000000000000814212e3b4754616e7a8794897c6f6356493c30231609000000000000000000000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200010c161f2a36424d57606d7883908e81756b61554b40342a1d140a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714202d3946525e687679797976675d5145392c20130600000000000000000000000000000000000000000000000000000000000000000000000a131c242a2f32333939393635322d261f160d00000000000000000000030c151d23282c2d393939393635322d261e160c0000000000000000000000000000000000000000000000000d1a2734404d5a6773808c8c8275685c4f4235291c0f02000000000000000000000000000000000000000000000000000000000000000000000000000000000815222e3b4754606a76828f92867d74706d676a6a696e71767b786d6053463a2d22170b00000915222f3c4855626f7b8897a1a99f928679665c5145382c1f1306000613202d394653606c78828f867e746d68605c54514b48464540443f4446494e545c606d7983909083786c605346392d201306000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000000000000000d1a2734404d5a6773808d8f8275696e767d838a8f928e8b888584848485878a8e928f8a827c736c665d564c443a31281d130700000000000000000814212e3b4754616e7a8794897c6f6356493c3023160901010101010101010101010101010101010c1825323f4b5865727e8b9386796d6053463a2d201307000000000001070c1013141e20201a1916130d0700000000000000000000000000000000000000000000000000070c1013131e20201c1b1915100902000000000000000002080e1114142020201615130f0a040000000000000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3939393939393939393939393939393939393939393939393939393835302a221a10060000000000000000000c18232e39424e58616b717e8792928a80776e6a605d565350494a484747454647484a4c4e53535b60656c727c8491938a7d7063574a3d3024170a000009141f2c38434f59606d78828f9391857e78716d676563605d565d5d5d545b606163676a6f747b81889192887f736e635a50463c2f261b11060000000000000000000814212e3b4754616e7a8794897c6f6356493c30231609000000000000000000000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f020007131d28313a46525e69727f8c92857a6e61594f43392f22180b020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a868686796d6053473a2d2014070000000000000000000000000000000000000000000000000000000000000000000007121c252e353b3e4046464643423e3831281f0d040000000000000000000b151e272e34383a4546464643413e3830281e0d0400000000000000000000000000000000000000000000000a1623303d495663707d7f7f7e7064574a3d3124170a00000000000000000000000000000000000000000000000000000000000000000000000000000000000916222f3c4955626f7c88948a7e716b63605c55575f6165696e6d665c5044382c1b110600000713202d3a4653606d788591999c978f827569544b4034281c10040006121f2b3844505b666d7a827b716c615e56514a45403b3a38342e34383a3d424a515c66707d8995897d706356493d2d22170b000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000000000000000d1a2734404d5a6773808d8f8275737b828a90908a85817e7b79777778787b7e81868c92908780786d685d564c433a2f24180f05000000000000000814212e3b4754616e7a8794897c6f6356493c3023160e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e1825323f4b5865727e8b9386796d6053463a2d20130700000000030b12181c1f202b2d2d2625231e19120a01000000000000000000000000000000000000000000030b12181c1f202b2d2d292825211b140c03000000000000050d14191e20212d2d2d23221f1b160f0700000000000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c302c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2b29251f18100800000000000000000004101c2834404b545f6a707d879292867e736c655f57524c46443f3d3c3b3a393a3a3b3d3f43474950535b606a6f7c89968a7d7063574a3d3024170a00020e1a25313b4854606b74808d9491837b726d66605d555654524c5150504a50535457585f62686e747d8490938c80736c62584e41382d22170b0000000000000000000814212e3b4754616e7a8794897c6f6356493c30231609000000000000000000000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f00020c18242f3a43505a616e7b86928b7e72685e52473d31271d1006000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8793867a6d6053473a2d201407000000000000000000000000000000000000000000000000000000000000000000020d19242e3740464b4c535353504e49423a311f160c010000000000000007121d273039404546525353534f4e49423a301f160c01000000000000000000000000000000000000000000000916222f3b4854606b707272706c6155493c3023160a0000000000000000000000000000000000000000000000000000000000000000000000000000000004101d2935404b556774808d9184786c605953514b4d5355575f61605c544a3f34281c0a00000006121f2b3844505c66707e878e8f8d857c6e6255483b2e23180c0000030f1c28333f4a545d686d756e69615a524c444039342f2d2c2823282b2d3039404b54606b7784918e81746753493f33271b0f030000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000000000000000d1a2734404d5a6773808d8f82797f868f9089837e7975716e6c666a6b696e71757a808690938c827a6d685d554b40352921170d030000000000000814212e3b4754616e7a8794897c6f6356493c30231b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b25323f4b5865727e8b9386796d6053463a2d201307000000030d151d23292c2d38393933322f2a241c130a0000000000000000000000000000000000000000030c151d23282c2d3839393635312c261e150c0200000000050e171e252a2d2e393939302f2c2721191007000000000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c30232020202020202020202020202020202020202020202020201f1f1c19140d06000000000000000000040f19232c3845515c666e7c869292877d716c605b534e45413a37332d2f2e2d2c2d2d2f303137383f44495057626f7c89958a7d7063574a3d3024170a0005121e2a36424d57636f7c879391847a6e69605c54514b494745414443433f4446484a4e53565e616b6f7a8290928b7e716a5f53493f33271b0f0300000000000000000814212e3b4754616e7a8794897c6f6356493c30231609000000000000000000000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f423529160c030a141e2935404b55616c75828f9083776c60564c41352c1f150b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8793867a6d6053473a2d20140700000000000000000000000000000000000000000000000000000000000000000007131e2a3540495257596060605c5a544c4231281d1307000000000000000c18232e39424b51535f6060605c5a544c4231281d1207000000000000000000000000000000000000000000000713202c38444f596063656564615a5044392d2014080000000000000000000000000000000000000000000000000000000000000000000000000000000006131f2c3945515d677784908c7f72655b504745404246484d535553504a42382e23170c00000003101c28343f4a54616c707c8182807b6e6a5f53473a2e1d12070000000b17222d38424c565d6068625f575046413a342e2923201f1c181c1f20272e39424f596673808d908477655b5044372b1f12050000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000000000000000d1a2734404d5a6773808d9083838c928b837d76716d676561605b54575e6164686d737b828e938f837a6d675d51453f33291f14090000000000000814212e3b4754616e7a8794897c6f6356493c302828282828282828282828282828282828282828282828323f4b5865727e8b9386796d6053463a2d2013070000010b151f272f34383a454646403f3b352e251c0f05000000000000000000000000000000000000000b151e272e34383a44464642413d3730271e1409000000020d1720293036393b4646463c3b38322b23190f040000000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c30231613131313131313131313131313131313131313131313131312100d0802000000000000000000000b16212b37434e58606d798390928b7e716b615a5049413c35302b27222221201f20212223262b2d33383f4956626f7c89958a7d7063574a3d3024170a000714212d3a46535e6976828f92877c6f685f57504a45403c3a393530362d3338393b3d43474d525960686d79829092867c6f655b5044372b1f140900000000000000000814212e3b4754616e7a8794897c6f6356493c30231609000000000000000000000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4232281e150a111c26303845515d67707d8a92877c6f655b50443b30231a0d0300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8793867a6d6053473a2d2014070000000000000000000000000000000000000000000000000000000000000000000a16232f3b46525b63666c6c6c69665e54433a2f24180d01000000000004101c2834404b545c606c6c6c6c69665e5443392f24180d0100000000000000000000000000000000000000000003101b27323d474f54565959575550473e33281c1004000000000000000000000000000000000000000000000000000000000000000000000000000000000714202d3a4753606d7a8693887c6f6253493f3834373a3b42464846443f3830261c1106000000000b17232e3842505a616a6f7476736e695f584e43372b1f0b0000000006111c262f3a444c52545c55534d453e363028231c181313100c1012151d27303e4b5764717e8a9286796c605346392d2013060000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c07000000000000000000000000000000000000000d1a2734404d5a6773808d95909090867f78706b64605d555553504a4d5254565e61696e78818d929083796d605b51453b31251a0e0400000000000814212e3b4754616e7a8794897c6f6356493c343434343434343434343434343434343434343434343434343f4b5865727e8b9386796d6053463a2d201307000007121d2731394045475153534d4b4740372e21170d02000000000000000000000000000000000007121d2730394045465153534f4d49423930261b1004000008141e29323b4146535353534948433d352b21160a0000000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c302316090606060606060606060606060606060606060606060606050300000000000000000000000004101b27323b4754606a73808d958c80736c625950443f382f29241f1b1715141413131415171a1b22272d3c4956626f7c89958a7d7063574a3d3024170a000815212e3b4854616e7b87938e81746a5f564d443f38352f2d2c29242a22282b2d2e31373b41464f565e676d7a84919083786c6053463b30251a0e02000000000000000814212e3b4754616e7a8794897c6f6356493c30231609000000000000000000000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f827568574d443a30261c1117232e38424e58606d7984918d80736a5f53493f32291e11080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8793867a6d6053473a2d2014070000000000000000000000000000000000000000000000000000000000000000000c1925323e4b57636d73797979767066554b4135291d1104000000000006131f2c3845515c666d78797979767066554b4035291d1004000000000000000000000000000000000000000000000b16212b353d4448494c4c4a49443e352c22170b00000000000000000000000000000000000000000000000000000000000000000000000000000000000916222f3c4955626f7c889286796d6053463a2d292b2d31363a3b3a38342e261e150a000000000006111c26303e4850585f62676967615e564e463c31261a0f00000000000a141d28323a4145474f4847423c332a251e18120c0706040003060b1523303d4a5663707d8999877a6d6054473a2d2114070000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f422f24180d000000000000000000000000000000000000000d1a2734404d5a6773808d9a928d827b726c66605953514b4846443f4246484c52575f666d74808d938e81756d62574d42362a21160a00000000000814212e3b4754616e7a8794897c6f6356494141414141414141414141414141414141414141414141414141414b5865727e8b9386796d6053463a2d20130700000c18232f39434b51535e6060595752494033291f140900000000000000000000000000000000000c18232e39424b51535e60605c5a544c42372c21150900020e1925303b444c525f60606056544f473d32271b0f0300000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c30231609000000000000000000000000000000000000000000000000000000000000000000000000000713202c38444f59626f7c87939083786d605a50473e332d261d19130f0b060807060707080a0f1117232f3c4956626f7c89958a7d7063574a3d3024170a000b1825313e4b5864717e8b97887c6f62584e443b342e292421201d191d171c1f2021262b30363d444c555d68707d87938a7d7064574d42362a1e1105000000000000000814212e3b4754616e7a8794897c6f6356493c30231609000000000000000000000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275695f564c42382e23171c28343f4a54606a74808d9184796d60584e41382d20170d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8793867a6d6053473a2d201407000000000000000000000000000000000000000000000000000000000000000005111e2a36424d5666737f8686868276675d5145392c20130600000000000713202d3a4653606d79868686868276675d5145392c20130600000000000000000000000000000000000000000000040f19232b32383b3d3f3f3d3c39332c231a100500000000000000000000000000000000000000000000000000000000000000000000000000000000000a1724313d4a5764707d8a918477665c5044382b1b1e21262a2d2e2d2c28231c150c030000000000000a141e2c363e464e53555b5c5a54524d443c332a2015090000000000020b1620283035393a423b3a37312a2119130c0700000000030a0c151d262d3d4a5763707d8a99877a6d6054473a2d2114070000000000000000000000000000000000000d1a2734404d5a6773808d8f827568554b4135291c11060000000000000000000000000000000000000d1a2734404d5a6773808d948d80786e69605b544f4745403b393833363a3b41464d545c606c77818e938b7f72695e53463d32271b0f03000000000814212e3b4754616e7a8794897c6f63564e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e5865727e8b9386796d6053463a2d2013070004101c2934404b555c606b6c6c66635b52453b30251a0e0400000000000000000000000000000004101c2834404b545c606b6c6c69655e54493d3125190d0005111e2a36414c565e6c6c6c6c6360594f43382c1f130700000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c30231609000000000000000000000000000000000000000000000000000000000000000000000000000916222f3b4854606b76828f92867c6f665c50483e3527221b140b0803000000000000000000000616232f3c4956626f7c89958a7d7063574a3d3024170a000e1a2734414d5a6774808d9285786a5f54463c3228231c181413110d080b0f1213151b1f252a323a434c56606b75828f908376695e52463a2d201407000000000000000814212e3b4754616e7a8794897c6f6356493c30231609000000000000000000000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d92857b6e685d544a3f342823232b3844505c666f7c8792897d70675c51463c2f261b0e05000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8793867a6d6053473a2d20140700000000000000000000000000000000000000000000000000000000000000000714202d3a46525e697783909392867a6d6054473a2d21140a00000000000a1623303d495663707d89989392867a6d6053473a2d20140a000000000000000000000000000000000000000000000007111921272c2f30323231302d28221a11080000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1825323e4b5865717e8b90837669544a3f34281c12141a1e2122201f1c17110a0300000000000000020c1a232c343c4347494e4f4d4746423b322a21180e03000000000000040e161e24292c2d352f2e2b261f180f0802000000060b0f151a1e272f38414d5665727e8b9386796d6053463a2d2013070000000000000000000000000000000000000d1a2734404d5a6773808d8f8275675d5145382e23170c0100000000000000000000000000000000000d1a2734404d5a6773808d8f82756d665f57504a423d38352f2d2b282a2d30363c424a515b656d79839092867b6e61594f44382c1f1409000000000814212e3b4754616e7a8794897c6f635b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b65727e8b9386796d6053463a2d2013070006131f2c3845515c676d787979736d63574d42362a20150a0000000000000000000000000000040e18222c3845515c666d7779797570655a4d4135281b0f000714202d3946525e68767979796f6b6054483b2f22150900000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000000000000000000000000000000000000000006131f2b37434e5863707d89948d80736a5f544a3f362d2317110a020000000000000000000000000916232f3c4956626f7c89958a7d7063574a3d3024170a000f1b2835424e5b6875818e9083766a584e43342a2017110d0707040100000306060a0f14192028313a444f5963707d8994877b6e6154473b2e211408000000000000000814212e3b4754616e7a8794897c6f6356493c30231609000000000000000000000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d9791847a6d665c50443f352c2a36424d57606d7883908e81756b60554b40342a1d140a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8793867a6d6053473a2d20140700000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7b87938b918a7d7064574a3d31261a0f0200000005121e2a36424d576773808d918c918a7d7064574a3d31261b0f030000000000000000000000000000000000000000000000070f161b20222326262423201c171008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b8f8275695c4f422e23170b090e1214151312100c060000000000000000000008111a222a32373b3c4143403b3a36302920180f060000000000000000040c13191d20212922211e1a150e06000002080e11171b1f262b30394149525e6875818e918477665c5044382b1f12060000000000000000000000000000000000000d1a2734404d5a6773808d92857a6d60544a3f34281d120700000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c544d443f382f2c2924201f1c1e20252a30394049535c676f7c87928e81756b6054483b31251a0e020000000814212e3b4754616e7a8794897c6f676767676767676767676767676767676767676767676767676767676767676767727e8b9386796d6053463a2d201307000714202d3a4753606d798486868073695e52463d32271b0d03000000000000000000000000000a15202a36414c56606d788486868275695c4f4236291c0f000814212e3b4754616e7a8686867d6f6356493c3023160900000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c302316090000000000000000000000000000000000000000000000000000000000000000000000000815222e3b4754606a76839092867a6d61584e42382e241b110600000000000000000000000000000916232f3c4956626f7c89958a7d7063574a3d3024170a000f1c2835424f5b6875828e8f837669544b4034281c1006000004040404040404040002080e161f28323d4653606d7985928a7e7164574b3e3124180b000000000000000814212e3b4754616e7a8794897c6f6356493c30231609000000000000000000000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d9a968f82786d605b51473e34313946525e69727f8b92857a6d61594f43392f22180b0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8793867a6d6053473a2d2014070000000000000000000000000000000000000000000000000000000000000004101d2935404b5565717e8b8b7f8b8e817467584e43372b1f12060000000714212d3a46535e697784918c7f8c8e817467584e43372b1f1206000000000000000000000000000000000000000000000000040b101316161919171614100b0500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c1926333f4c5966727f8c8f8275685c4f4235291c0600020507080706030000000000000000000000000008101820262b2e2f3436342e2d2a251f170e060000000000000000000002080d1113141c1514120e090301040b1014191b22272b31373d424a535b616e7b86928e817468544a3f34281c10030000000000000000000000000000000000000d1a2734404d5a6773808d988b7f72665c5044392f24180e05000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4a423b332d261f1d1813120f1214191e272e38414b555f6a73808d93897c6f63574d42362a1e12050000000814212e3b4754616e7a8794897c74747474747474747474747474747474747474747474747474747474747474747474747e8b9386796d6053463a2d2013070006131f2c3845515c67717e8a92867b6e61584e43372b1f150b010000000000000000000000030c1b26323946525e68727f8c92867b6e6155483b2e221508000814212e3b4754616e7a8793897c6f6356493c3023160900000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c30231609000000000000000000000000000000000000000000000000000000000000000000000004101c2834404b55626f7c89948d8073685e52463c30261c12090000000000000000000000000000000916232f3c4956626f7c89958a7d7063574a3d3024170a000e1a2734414d5a6774808d908477665c5145382c1f14090f1011111111111111111111080d1116202c3844505c667683908c807366594d4033261a0d000000000000000814212e3b4754616e7a8794897c6f6356493c30231609000000000000000000000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d9591928e81746d62594f463c39434f59616e7b86928b7e71685e52473d31271d10060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8793867a6d6053473a2d2014070000000000000000000000000000000000000000000000000000000000000006131f2c3945515d6775828f8579849184786a5f53473a2e2114070000000815212e3b4854616e7b87928579859184786a5f53473a2e21150800000000000000000000000000000000000000000000000000000307090a0c0c0a0a0804000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c1926333f4c5966727f8c8f8275685c4f4235291c0f02000000000000000000000000000000000000000000060e151b1f212228292721201e19140d0500000000000000000000000000010407070f0808060201080d11161c1f252a2d33373c43474f545c656c75818f958a7d7063574a3d2e23170b000000000000000000000000000000000000000d1a2734404d5a6773808d9a9184786d60554b40352920170d060006080807060400000000000000000d1a2734404d5a6773808d8f8275685c4f423028221c14100c07060305080c151c262f39434e58616d7a86928f8275695e53463a2d2114090000000814212e3b4754616e7a87948f82818181818181818181818181818181818181818181818181818181818181818181818182909386796d6053463a2d2013070004101c2934404b55616c76828f8e81756a6054473e31271d120700000000000000000000000b151e2b37434e58616d7a85928d8073695f53463a2d211407000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c30231609000000000000000000000000000000000000000000000000000000000000000000000006131f2c3845515c6774818d92867a6d61564c41342a1e150a000000000000000000000000000000000916232f3c4956626f7c89958a7d7063574a3d3024170a000b1825313e4b5864717e8b9286796d6053463b31261a1b1c1d1e1e1e1e1e1e1e1e1e1e1e191d202128343f4a546976828f8d8174675a4e4134271b0e000000000000000814212e3b4754616e7a8794897c6f6356493c30231609000000000000000000000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d918385928b7f726b61584e44404b55616c75828f9082776c60564c41352b1f150b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8793867a6d6053473a2d201407000000000000000000000000000000000000000000000000000000000000000714202d3a4753606d7a868e8275818e887b6e6255483b2f24180d010004101c2834404b5565727e8b8e8175828e887c6f6255483c3024190d010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c1926333f4c5966727f8c8f8275685c4f4235291c0f0200000000000000000000000000000000000000000000040a0f1315161b1c1a1414110e0902000000000000000000000000000000000000020000030a0f13191d20272c3036383f44464e535960666d77808d939083786c605346392d201306000000000000000000000000000000000000000d1a2734404d5a6773808d9a968b7e71675d51453d32292017110f1214151413100c070100000000000d1a2734404d5a6773808d8f8275685c4f42352917110a04000000000000030b141d27303c46525e6873808d92877b6e6154483b30251a0e0200000814212e3b4754616e7a8794948f8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e90949386796d6053463a2d20130700000c18232f3943505a626f7c8792877c6f625a5043392f24180c0200000000000000000007121d27303947535f6a74818e9184796d60574d42372b1e1205000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000000000000000000000000000000000000000713202d3a4653606d7985928f8275685e52443a3022180c03000000000000000000000000000000000916232f3c4956626f7c89958a7d7063574a3d3024170a000814212e3b4754616e7b8793897d7063574d42362a2527292a2a2a2a2a2a2a2a2a2a2a2a25292d2e2f3844505c667783908d8074675a4d4134271a0e000000000000000814212e3b4754616e7a8794897c6f6356493c30231609090909090808070704010000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f827d8793877d706a5f564c45515d67707d8a92867b6e655b50443a3023190d03000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8793867a6d6053473a2d201407000000000000000000000000000000000000000000000000000000000000030f1b27333f495364707d8a8b7e727d8a8c7f7265554b4035291d10040006131f2c3845515c6775828f8a7e717e8b8c7f7266564c4135291d11050000000000000000000000000000000000000000000000000000000000000104060708080807060401000000000000000000000000000000000000000000000000000000000000000000000000000000000c1926333f4c5966727f8c8f8275685c4f4235291c0f02000000000000000000000000000000000000000000000000030608090e100d0807050200000000000000000000000000000000000000000003090e151a1e24292c33383b4146495053585f626b7078818d9292867c6f655b5044372b1f1205000000000000000000000000000000000000000d1a2734404d5a6773808d96919184796d60594f443b3227221b1a1f2122201f1d18120b03000000000d1a2734404d5a6773808d8f8275685c4f4235291c06000000000000000000020b151e2a36414c56616e7b88948d807366574d42362a1e110500000814212e3b4754616e7a8794928c8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8e939386796d6053463a2d201307000007121d27313e47535f6a74808d9083766c61554b4035291f14080000000000000000000c18232e3943505a626f7c87938a7e71675d51453c31261a0e02000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000000000000000000000000000000000000000b1724313e4a5764717e8a978a7d7064564c4132281e100600000000000000000000000000000000000916232f3c4956626f7c89958a7d7063574a3d3024170a000714202d3a46525e6975828f8e8175695f53463f353234363737373737373737373737373035393a3c414953606d7985928c7f7266594c3f3326190c000000000000000814212e3b4754616e7a8794897c6f6356493c302316161616161515151413110d080b080705020000000000000000000000000000000000000000000d1a2734404d5a6773808d8f82757f8c92867c6f685e554e58606d7984918c80736a5f53493f32291e110800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8793867a6d6053473a2d20140700000000000000000000000000000000000000000000000000000000000005121f2b3744505b6574818e887b6e7a868f8276675d5145392c201306000713202d3a4653606d798592867a6e7b87908376685d5246392d2013060000000000000000000000000000000000000000000000000000020507070d1013141515151413110d080606030000000000000001010606000000000000000000000000000000000000000000000000000c1926333f4c5966727f8c8f8275685c4f4235291c0f0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050d141a20262b2f35393d44484d52535b60636a6f757d838e93928b7e716a5f53493f33271b0f03000000000000000000000000000000000000000d1a2734404d5a6773808d9184868d80736b60564c443c332d28262b2e2f2d2c29241d150d030000000d1a2734404d5a6773808d8f8275685c4f4235291c0f02000000000000000000030c1925303a46535f69768390908477695e52463a2d20140700000814212e3b4754616e7a87948c807e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e818e9386796d6053463a2d2013070000010b151f2b37434e58606d7a85928a7e71675d51453b3025190e040000000000000004101c2834404b55616c76828f9082766c61554b40332a1f140900000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c302316090000000000000000000000000000000000000000000000000000000000000000000005121e2a36424d576875818e9285796d6053463a3020160c0000000000000000020507080b0b0b0b0b0b0b16232f3c4956626f7c89958a7d7063574a3d3024170a0005111e2a36424d57626f7c8992877b6e615b51473e3f414243444444444444444444444444414647494e535b65707d89978a7d7164574a3e3124170b000000000000000814212e3b4754616e7a8794897c6f6356493c3023222222222222222121201d191a171414110e0905020000000000000000000000000000000000000d1a2734404d5a6773808d8f827575818e91847a6e675c545f6a73808d9184796d60574e41382d20170c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8793867a6d6053473a2d2014070000000000000000000000000000000000000000000000000000000000000613202d394653606c788591847869768390867a6d6053473a2d201409000a1723303d4a5663707d8990837669778491867a6d6154473a2e23170b00000000000000000000000000000000000000000000000002080e111414181d202021222121201d191613120f0b06000003080b0d0e1313080705020000000000000000000000000000000000000000000c1926333f4c5966727f8c8f8275685c4f4235291c0f02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060f171f252a31373a4145474f54565e61656c70757c8189919591877e716c61584e41382d22170b00000000000000000000000000000000000000000d1a2734404d5a6773808d8e81808d877c6f685e564d443f383431373a3b3a39352f271f150b0100000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000008131e2a36424d5765727f8b95877b6e6154473b2e21140800000814212e3b4754616e7a8794897c71717171717171717171717171717171717171717171717171717171717171717171727e8b9386796d6053463a2d201307000000030d1b26313c45525d68727e8b9184796d60564d41362a20150a000000000000040e19222c3845515c67707d8a92877c6f625a5043392f21180e0300000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c30231609000000000000000000000000000000000000000000000000000000000000000000000714212d3a46535f697884918e8175675c5145382c1f130400000000000003090e1214151818181818181818232f3c4956626f7c89958a7d7063574a3d3024170a00020e1a25303b4754606a74818e8f82756d625950494c4e4f505151515151515151515151514c525456585f656c77828f92867a6d6054473a2d211407000000000000000814212e3b4754616e7a8794897c6f6356493c302f2f2f2f2f2f2f2f2e2d2c2924272421201e1a14120e0903000000000000000000000000000000000d1a2734404d5a6773808d8f82756d7983909083796d605b666f7c8792897d70675c51453c2f261b0e050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8793867a6d6053473a2d2014070000000000000000000000000000000000000000000000000000000000000916232f3c4956626f7c898e817468727f8c8a7d7063574a3d31261a0e05121e2a36424d576774808d8c7f726773808d8a7e7164544a3f34281c100300000000000000000000000000000000000000000003090e14191e202124292c2d2e2f2e2d2c292423201f1c17110d080f14181a1b20201514120e0903000000000000000000000000000000000000000c1926333f4c5966727f8c8f8275685c4f4235291c0f0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020a1117212930363c43474c5254596063686e72787d82878e93928c847d716c615a50463c2f261b110600000000000000000000000000000000000000000d1a2734404d5a6773808d8d807a8491847a6e685f5750494440414347484745403931271d120700000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000000000020e1a26313c4855626f7b88978b7e7164584b3e3125180700000814212e3b4754616e7a8794897c6f646464646464646464646464646464646464646464646464646464646464646465727e8b9386796d6053463a2d201307000000000a15202935414c56606c7883908c7f73685e52463c32261b0c0300000000000a15202a36414c56606d7984918d81746a5f53483e31281d0f060000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c30231609010101010101010101010101010101010000000000000000000000000000000000000815222e3b4855616e7b88968b7f7265554b4034281c10040000000000050d141a1e21212525252525252525252f3c4956626f7c89958a7d7063574a3d3024170a000009141f2b37434e58606d7a84918b7f726c625a56585a5c5d5d5d5d5d5d5d5d5d5d5d5d5e565e6162666a6f77808d948f8275675d5145392c201306000000000000000814212e3b4754616e7a8794897c6f6356493c3c3c3c3c3c3c3c3c3b3b3a39353034312e2d2a25211e1a140f0a0400000000000000000000000000000d1a2734404d5a6773808d8f8275676e7b85918e81756d606c7883908e81746b60554b40332a1d140a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8793867a6d6053473a2d201407000000000000000000000000000000000000000000000000000000000005121e2a36424d576673808c8b7e71646f7c888d807467574d42372b1e120714212d3a46535f69778491887c6f63707d898e8175665c5044382b1f12060000000000000000000000000000000000000000060e151a1e252a2d2e2f35393a3b3b3b3a39352f302d2b28221c19131a202427282d2d22211e1a140e060000000000000000000000000000000000000c1926333f4c5966727f8c8f8275685c4f4235291c0f02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020b141b2227333b42464e53565d60656b70757b7f84898f93928d8680796f6b615a50483e342a1d140a0000000000000000000000000000000000000000000d1a2734404d5a6773808d8c80737d8790837a6e69605b53514a4d4e535553514b43392f24180c00000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000000000000915212e3a47535f6a7885928d8174675a4e412f24180c00000814212e3b4754616e7a8794897c6f635757575757575757575757575757575757575757575757575757575757575865727e8b9386796d6053463a2d20130700000000030d1924303a44505b666f7c8992867b6e61584e43372b1e150b00000000030d1b26323946525e68727f8c92857a6d61584e43362c1f160c000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0d0c0a0702000000000000000000000000000b1825323e4b5865717e8b98887c6f6255493c2e23180c0000000000050f171f252a2d2e313131313131313131313c4956626f7c89958a7d7063574a3d3024170a0000020f1b27323d45525d686f7c8692877e716c61636567696a6a6a6a6a6a6a6a6a6a6a6a6a6b686d6f72767c828d9292867b6e61554c4135291d1104000000000000000814212e3b4754616e7a8794897c6f635649494949494949494948484847454143403e3b3a36302d2a261f1b150d07010000000000000000000000000d1a2734404d5a6773808d8f827568696f7d87928c7f736c727f8b92857a6d61594f43392e21180b02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8793867a6d6053473a2d20140700000000000000000000000000000000000000000000000000000000000714212d3a46535e69778390877a6e616c7885918477695f53473a2d21140715222e3b4855616e7b889184786a606d79859285796d6053463a2d20130900000000000000000000000000000000000000060f181f262b3036393b3f404547484848474541403c3938332d29241e252b30333439392e2d2b261f180f0600000000000000000000000000000000000c1926333f4c5966727f8c8f8275685c4f4235291c0f020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a141d262d333e454d52585f62686d72777d82868c9195908c85807b736d67605950483e362d22180b020000000000000000000000000000000000000000000d1a2734404d5a6773808d8c7f72737f8c90837b716c65605c545a585f62605d554b4035291d1004000d1a2734404d5a6773808d8f8275685c4f4235291c0f02000000000000000000000006121f2b37434e586975828f8f837669554b4035291d1004000814212e3b4754616e7a8794897c6f63564b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b5865727e8b9386796d6053463a2d201307000000000008131e28333f4a54606b75818e8e81746a5f54473e30271d12070000010b151f2b37434e58616e7a85928b7e72685d52463c32241a0d04000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c30231b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1a1917130e080000000000000000000000010e1b2834414e5b6774818e9285796d6053463a2d20130700000000030d17212931363a3b3e3e3e3e3e3e3e3e3e3e3e4956626f7c89958a7d7063574a3d3024170a0000000a16202935414c565f6a707d8691877e746e707274757677777777777777777777777778787a7c7f83878f9492877e71695f53433a2f24190d01000000000000000814212e3b4754616e7a8794897c6f635655555555555555555555555454524c4f4d4a4746423b3a36312b262018130c0400000000000000000000000d1a2734404d5a6773808d8f827568606b717e8b928a7e717b85928b7e71685e52473d30271d0f0600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8793867a6d6053473a2d20140700000000000000000000000000000000000000000000000000000000000815212e3b4854616e7b87908477685e6574818e887b6e6155483b2f2318101d2935404b5565727f8b8e8174675c6675828f897c6f6356493c30251a0e0200000000000000000000000000000000020a1117212a31373b4146474c4b515354555454524c4d4946443f383530292f363c404146463b3a37312a21180e03000000000000000000000000000000000c1926333f4c5966727f8c8f8275685c4f4235291c0f02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006111b262f383f4450575e616a6f747a7f84898e92928e89847f7a736e69605d554f473e362d241b1006000000000000000000000000000000000000000000000d1a2734404d5a6773808d8b7e716d74818e91867e78706d666767686a6e6d675d5145392c1f1306000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000030f1a2631414d5a6774808d918478675d5145382c1f1306000814212e3b4754616e7a8794897c6f6356493e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3f4b5865727e8b9386796d6053463a2d2013070000000000020b17222d38424f59616e7b8692877c6f625a5043392e23180c020007121d27313947545f6a74818e9083786c60564c41342a20120800000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c30282828282828282828282828282828282828282726231f19120a0200000000000000000004101c2834404b556976838f908376665c5044382b1f12060000000009141f29333b4246484b4b4b4b4b4b4b4b4b4b4b4b56626f7c89958a7d7063574a3d3024170a000000040d19242f3a434e58606b707c85908b817a7c7f818283848484848484848484848484848587898c8f93928e867e716c62574d4231281e130800000000000000000814212e3b4754616e7a8794897c6f6362626262626262626262626261605d565c5a5754524d4846423b373229241d160d06000000000000000000000d1a2734404d5a6773808d8f82756859626c74808d92867c818e8f82766c61564c41352b1e150b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8793867a6d6053473a2d2014070000000000000000000000000000000000000000000000000000000004111d2935404b5565727f8b8d8074675664717e8a8b7f7265554b4034291c131f2c3845515d6776828f8a7d71645465717e8b8d807366574d42362a1e1105000000000000000000000000000000020b141b2227333c42474c525458555d60616261605d565a5653504a46413a343841484c4e53534846423c332a1f1409000000000000000000000000000000000c1926333f4c5966727f8c8f8275685c4f4235291c0f0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040d17222d384149505a62696e757c81868b9195908b85817c77726d68615e57514b433d352d241b120900000000000000000000000000000000000000000000000d1a2734404d5a6773808d8a7d71646d78818d928b837d7975747475777b796d6053473a2d201407000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000a1925323f4c5865727f8b96867a6d6053473a2d201407000814212e3b4754616e7a8794897c6f6356493c313131313131313131313131313131313131313131313131323f4b5865727e8b9386796d6053463a2d20130700000000000006111c262f3d46525e69727f8c9083766c61554b4034281e1408000c18232f3943505a626f7c8793897c6f665b50443a3022180e0000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c343434343434343434343434343434343434343433322f2a241c140a00000000000000000006131f2c3845515c677884918e817568544a3f34281c1003000000020e1a25313b454d535458585858585858585858585858626f7c89958a7d7063574a3d3024170a0000000008131e28313c464f59606a6f7b83908e87898b8d8f9090909090909090909090909191929797918f8b86817b716c625a50453b311f160c0100000000000000000814212e3b4754616e7a8794897c6f6f6f6f6f6f6f6f6f6f6f6f6f6e6e6d686a696764615e5755534d47433c352f281f1810070000000000000000000d1a2734404d5a6773808d8f8275685c5a606d78828f92858e92867b6e615a50443a3023190c030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8793867a6d6053473a2d201407000000000000000000000000000000000000000000000000000000000613202c3945515d6776828f8a7d706457616d7a878f8275675c5145382c1f14202d3a4753606d798692867a6d6054616e7b87908377695e52463a2d2014070000000000000000000000000000000a141d262d333f454d53565e616568676d6e6e6e6d68696763605b54524c4540414a53585b606055534d453c31261a0e020000000000000000000000000000000c1926333f4c5966727f8c8f8275685c4f4235291c0f02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010c161f27333f49535b606c717b81878e92928e89837e7a746f6a65605d56524d454039312b231b12090000000000000000000000000000000000000000000000000d1a2734404d5a6773808d897d7063666d78808a92908a858281808184887d7063574a3d3024170a000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000a1724313d4a5764707d8a94877a6e6154473b2e211408000814212e3b4754616e7a8794897c6f6356493c302424242424242424242424242424242424242424242425323f4b5865727e8b9386796d6053463a2d201307000000000000000a141d2a36424d57606d7984918a7e71675c51453b3025190d04101c2934404b55616c7682908e81756b60544a3f32281e10060000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f635649414141414141414141414141414141414141414141403f3b362e261c120800000000000000000713202d3a4653606d7986938c807366594d402e23170b0000000005121e2a36424d575e6164646464646464646464646464646f7c89958a7d7063574a3d3024170a00000000010c161f2a36424d57606a6f7b83909a96918f8d8c8b8b8b8b8b8b8b8b8b8b8b8b8b8a8a888785827f7b756e69615a50483f332a1f0d040000000000000000000814212e3b4754616e7a87948b7e7c7c7c7c7c7c7c7c7c7c7c7c7b7b7b7a79777673716e6966615f57534e45403a312a2219100700000000000000000d1a2734404d5a6773808d8f8275685c505c666d7a849192978c7f73695f53483e32281e1107000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8793867a6d6053473a2d201407000000000000000000000000000000000000000000000000000000000714202d3a4753606d7a8692867a6d61545e6877839086796d6053473a2d201724303d4a5763707d8a908376685d535e69778491877b6e6154473b2e23180c000000000000000000000000000006111b262f383f4451575f62686e7275787a7b7b7b7a7876736f6c66615d56514b43535c64676c6c6c5f574d42372b1e12050000000000000000000000000000000c1926333f4c5966727f8c8f8275685c4f4235291c0f0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008131e28313a44505b656c747e868e93928d86827c77716d6762605854524c46423b352f271f191009000000000000000000000000000000000000000000000000000d1a2734404d5a6773808b897c6f625c666c747e858c92928f8d8d8e918d8074675a4d4134271a0e000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000a1723303d4a5663707d8994887b6e6155483b2e221508000814212e3b4754616e7a8794897c6f6356493c302318181818181818181818181818181818181818181825323f4b5865727e8b9386796d6053463a2d20130700000000000000020b1a25303b45515c67707d8a9184796d60564c41362a20150f19222c3845515c67717e8a92867b6e61594f42382d20160c000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f63564e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4d4b4740382e24190e02000000000000000815222f3b4855626e7b88998b7e7164584b3e31251806000000000714212d3a46535e696e7171717171717171717171717171717c89958a7d7063574a3d3024170a00000000000714202d3a46525e696f7c8590938e888482807f7f7f7f7f7f7f7f7f7f7f7f7e7e7e7d7c7a7875726e68615f5750483f362d21180e000000000000000000000814212e3b4754616e7a8794908b88888888888888888888888888888787858482807d7b77736e69625f58514b433c342b22191006000000000000000d1a2734404d5a6773808d8f8275685c4a545e686f7c86929185796d60594f453b31271d1207000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8793867a6d6053473a2d201407000000000000000000000000000000000000000000000000000000030f1c28333f4a5464717d8a908376685e52566673808d897d7063564a3d31261e2b37424d576774808d8c7f7366564d576774808d8b7e7165554b4034281c1004000000000000000000000000000b17222d384149505b62696e757a7f828586878887878583807c78736d68605c555058646e74797976695f53463a2d2114070000000000000000000000000000000c1926333f4c5966727f8c8f8275685c4f4235291c0f020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010d19242f3a43505a606c77808b92938e85807b756f6b65605d55544e4745413a363029241d150d070000000000000000000000000000000000000000000000000000091623303c4956636f7c7f7f7a6d61545b606c717a8085898b8d8d8c8b888175685b4e4235281b0f000d1a2734404d5a6773808d8f8275685c4f4235291c0f02000000000000000000000000091623303c4956636f7c8995887c6f6255493c2f221609000814212e3b4754616e7a8794897c6f6356493c3023160b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0c1825323f4b5865727e8b9386796d6053463a2d201307000000000000000009141f2834404b55616c76828f8c7f72685e52463c32261b15202a36424d56606d7984918c7f72695e52473d2f261c0e04000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f635b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5a58524a40362a1f130700000000000000091623303c4956636f7c8996897d7063564a3d3023170a000000000815212e3b4854616e7b7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e808c968a7d7063574a3d3024170a0000000006121f2b37434e58616e7b8591918b817c787573737272727272727272727272727171706f6d686965615e56534d453e362d241b0f06000000000000000000000814212e3b4754616e7a879495909090909090909090909090909090919292918f8d8a87837f7b756f6a605d554e463d342b22180d040000000000000d1a2734404d5a6773808d8f8275685c4f4c565f6a717e88938b7e716b60574d43392f241811080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8793867a6d6053473a2d20140700000000000000000000000000000000000000000000000000000006121f2b3844505b6674818e8c807366564c56636f7c898d807467574d42362a212e3a47535f69778491887c6f62554a5763707d8a8f8275675c5145382c1f1306000000000000000000000000030f1b27333f49535b606d727b81868b8f91929190909192908d89847f7a736d67615a5b67748086867b6e6155483b2e2215080000000000000000000000000000000c1926333f4c5966727f8c8f8275685c4f4235291c0f02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004111d2935414c55626c74808d929288817a736e6963605953514b48433d3935302a251f18120b030000000000000000000000000000000000000000000000000000000915222f3b4854606b6f72726d685d52505a61686d73787c7f80807f7e7c756f65594d4034271b0e000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000916222f3c4955626f7c8895897c6f6256493c2f231609000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000c1825323f4b5865727e8b9386796d6053463a2d2013070000000000000000020c18232e3943505a626e7b8792857a6e61584e43372b1e1b27323a46525e69737f8c9184796d60564d42352b1d140a00000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f67676767676767676767676767676767676767676767676766635c52473b2f23170a000000000000000a1723303d4a5663707d8995897c6f6256493c2f231609000000000b1724313e4a5764717d8a8b8b8b8b8b8b8b8b8b8b8b8b8b8b8c92968a7d7063574a3d3024170a000000000815212e3a47535f6a75828f938b7f756f6a68676665656565656565656565656565646362615e565854524d46423c332c241b120900000000000000000000000814212e3b4754616e7a879490838383838383838383838383838384858687898b8d9095908c87827c746d675f584f463d342a1f160c0100000000000d1a2734404d5a6773808d8f8275685c4f444e58616c73808c92877d6f695e554b403529231a0f0600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8793867a6d6053473a2d2014070000000000000000000000000000000000000000000000000000000613202d394653606c798592897c6f62564953606d7985918477695f53463a2d222f3b4855626e7b889285786c60534753606d7a869285796d6053463a2d2013090000000000000000000000040f19222b3744505b656c747f868e92918c89868484848586888b8f918c867f79716c615f6875828e887b6e6155483b2e2215080000000000000000000000000000000c1926333f4c5966727f8c8f8275685c4f4235291c0f0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613202c3945515d67717e8b9292867d746e68615e57544f4745403a38322c29241e1a140c07010000000000000000000000000000000000000000000000000000000007131f2c38444f5960636565615d564c4450565e61666c6f72737473726f6a655d53483d3125180c000d1a2734404d5a6773808d8f8275685c4f4235291c0f02000000000000000000000000091623303c4956636f7c8995887c6f6255493c2f221609000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000c1825323f4b5865727e8b9386796d6053463a2d20130700000000000000000007121d27303e47535f6a73808d8e81746a5f53473e30271f2b37434e58616e7b86928a7d70665c51443b3023190b0200000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000000000814212e3b4754616e7a8794897c74747474747474747474747474747474747474747474747474736e63584b3f3226190c000000000000000b1724313e4a5764717d8a95887b6f6255483c2f221509000000000b1724313e4a5764717d8a8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8a7d7063574a3d3024170a000000000915222f3c4855626f7b88948e81746d6260585a595858585858585858585858585857575554524c4c4746413b37312a211a12090000000000000000000000000814212e3b4754616e7a8794897d767676767676767676767676777778797a7c7e8184878c90938e8781796f6a60594f463c31281d130700000000000d1a2734404d5a6773808d8f8275685c4f4246505a606c77828f91857b6e675d51453f352c21180e04000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8793867a6d6053473a2d201407000000000000000000000000000000000000000000000000000000091623303c4956636f7c899285796c605346505c6675828e887b6e6155483b2e2935404b5565727f8b8e8174655b5045515d6776828f897d7063564a3d31261a0e02000000000000000000000a15202c38444f59606c77808c92928b847f7c7978777778797c7f82868c928c847e766e696976838f887b6e6155483b2e2215080000000000000000000000000000000c1926333f4c5966727f8c8f8275685c4f4235291c0f0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a859292867d706b615e56524d48443d39352f2c27201d19130e0903000000000000000000000000000000000000000000000000000000000000030f1b27323d474f5456585854524c443e444c52545b60626566676665625f58534b41372c201408000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000a1623303d495663707c8995887b6e6255483b2f221508000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000c1825323f4b5865727e8b9386796d6053463a2d201307000000000000000000000b151e2b37424e57606d7a8591877c6f625a5042392e2831394754606a74818e8f82756b61544b4032291f10070000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000000000814212e3b4754616e7a87948f82818181818181818181818181818181818181818181818181818073665a4d4033271a0d000000000000000b1825313e4b5864717e8b94887b6e6155483b2e221508000000000916222f3c4955626f7c818181818181818181818181818181818181817c6f6255483c2f221509000000000c1926333f4c5966727f8c93877b6e615b544e4d4c4c4c4c4c4c4c4c4c4c4c4c4b4b4b4a494746413f3b3936302b261f180f08000000000000000000000000000814212e3b4754616e7a8794897c6f696969696969696969696a6a6a6b686e6f7174777b7f838a91938d847c6f6b60584e433a2f24180d03000000000d1a2734404d5a6773808d8f8275685c4f423e44505b656d7983919083796d605b51473e332a20160c020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8793867a6d6053473a2d201407000000000000000000000000000000000000000000000000000005121e2a36424d576673808d8e8175665b50444a5465717e8b8b7e7265544b40342c3945515d6776828f8a7e71645349404b5565727f8c8d807467574d42372b1e1206000000000000000000030f1b27323b4854606b73808c9291857e78736f6d676a6a676d6f72767b80858d918a827b716c778490887b6e6155483b2e2215080000000000000000000000000000000c1926333f4c5966727f8c8f8275685c4f4235291c0f0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b958b7e716b6159524c46423b38322c29241d1b16110d080a0a09070400000000000000000000000000000000000000000000000000000000000a16212b353d4448494c4c4746413a323a41464a505356585a5a595855534e4641392f251a0f04000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000a1724313d4a5764707d8a94877b6e6154483b2e211508000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000c1825323f4b5865727e8b9386796d6053463a2d20130700000000000000000000030c1a26313c45515d67717e8b8f82766c61544b40342f3943505a626f7c8792867b6e61594f42392e20170d000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000000000814212e3b4754616e7a8794948f8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e84786b5e5145382b1e12050000000000000c1825323f4b5865727e8b94877a6e6154473b2e211408000000000815212e3b47535f6a6f747474747474747474747474747474747474746f6a5f53473a2e211508000000020f1b2835424e5b6875818e908376695e52474340403f3f3f3f3f3f3f3f3f3f3f3f3e3e3d3c3a3936302e2d2a251f1a140e0600000000000000000000000000000814212e3b4754616e7a8794897c6f635d5d5d5d5d5d5d5d5d5d5d5d565e61626567696e72787d838d9291857d6f6a5f554b4135291f1409000000000d1a2734404d5a6773808d8f8275685c4f42333f49535d676e7b85928e81756d63594f463c32281e140a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8793867a6d6053473a2d20140700000000000000000000000000000000000000000000000000000714212d3a46535f697784918a7e7164544a3f4754616e7a878f8275665c5145382d3a4753606d7a8692867a6d6154473c4855626f7b88918477695f53473a2e21140700000000000000000006131f2b37434e58636f7d889391837a716c6662605c55555c606265696e737a8086908f857e74788491887b6e6155483b2e2215080000000000000000000000000000000c1926333f4c5966727f8c8f8275685c4f4235291c0f020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003101c28343f4a546976828f9184776c61594f46413b36302c27201d18130f0b10131617161613100b05000000000000000000000000000000000000000000000000000000040f19232b32383b3c3f3f3a393530283035383f4446494c4d4d4c4b4847433c342f271d130900000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000c1825323f4b5865727e8b97867a6d6053473a2d201407000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000c1825323f4b5865727e8b9386796d6053463a2d20130700000000000000000000000915202935414c55606c7883908a7d70665c51453a35404b55616c7683908d8073695f53473e30271d0e05000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000000000814212e3b4754616e7a8794928c8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a84786b5e5145382b1e12050000000000000c1825323f4b5865727e8b94877b6e6154483b2e2115080000000006131f2b37434e585f6267676767676767676767676767676767676767625f584e43372b1f1206000000030f1c2936424f5c6975828f8e817568574d423732333437383938383633323232323231302f2e2d2a2521201e19140e09030000000000000000000000000000000814212e3b4754616e7a8794897c6f635650505050505050505050514c52545658575e61656c7079808b9392867c6f675d51453b31261a0e000000000d1a2734404d5a6773808d8f8275685c4f422d38414b555f69707d87928c7f726b61584e443a30261c110600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8793867a6d6053473a2d20140700000000000000000000000000000000000000000000000000000815222e3b4855616e7b8893867a6d6154473a46525e6877839085796d6053463a303d4a5763707d8a908376685d52463a47535f6a788491887b6e6255483b2f24180d0100000000000000000815222e3b4754606a76839091857a6e68605b5453514b4b515355575e61686d737b828b928a81798692887b6e6155483b2e2215080000000000000000000000000000000c1926333f4c5966727f8c8f8275685c4f4235291c0f020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006121f2b3844505c667885928c8073665a50473e36302a251f1b16110d070c161c2022232322201c160f0700000000000000000000000000000000000000000000000000000007111921272c2f3032322e2d29241e25292d3338393c3f4041403f3c3a37312a221d150b0200000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000d1a2633404d596673808c928578675d5145382c1f1306000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000c1825323f4b5865727e8b9386796d6053463a2d2013070000000000000000000000030d19242f3a44505b656f7c879184796d60564c413945515d67717e8a9184796d60574d42352c1e150b00000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000000000814212e3b4754616e7a87948c807e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7064574a3d3124170a000000000000000b1825313e4b5864717e8b95887b6e6255483b2f22150800000000030f1b26323c464e53555a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a55534e463c31261b0f03000000020f1c2835424f5b6875828e8e817568554c41393a3e41434545454443403d3a38342e29242221201d191414110e080200000000000000000000000000000000000814212e3b4754616e7a8794897c6f63564943434343434343434444414647494b4d52535b60666d737e88939184796d60574d42362a1c11060000000d1a2734404d5a6773808d8f8275685c4f42352f3a434d57606b727f8c93877d706a5f564c42382e23171007000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8793867a6d6053473a2d2014070000000000000000000000000000000000000000000000000004111d2935414c5665727f8b908376685e524639414d566673808d897d706356493d37434e586774818d8c7f7366564c4137434e586874818e8c7f7265554b4135291d110400000000000000000916232f3c4956626f7c89958b7e71685e56504a464540404546494d52565d60696e777f86918e849198887b6e6155483b2e2215080000000000000000000000000000000c1926333f4c5966727f8c8f8275685c4f4235291c0f02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000713202d3a4653606d7986938a7d7164574a3e352a251e1a140f0b060b121821272c2f30302f2c2721191107000000000000000000000000000000000000000000000000000000070f161b1f2223252521201d1913191c22282b2d2f32333433322f2e2b262018100b030000000d1a2734404d5a6773808d8f8275685c4f4235291c0f02000000000000000000000004101d2935404b556875818e9083776a554b4035291d1004000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000c1825323f4b5865727e8b9386796d6053463a2d20130700000000000000000000000008131e27333f4953606a74818e8c7f72685e5246424d57606d7984918a7e71675d51453c31231a0c0300000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000000000814212e3b4754616e7a8794897c71717171717171717171717171717171717171717171717171706c6155493c3023160a000000000000000b1724313e4a5764717d8a95887c6f6255493c2f22160900000000000a15202a343c4347494e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4847433c342a20150a00000000010d1a2734404d5a6773808d908376675d514545474b4e50515252514f4d4a46443f38352f281f18130d08070502000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c36363636363637373036393b3c3e42464950545c606c727f8c948d8074695f5346382e23170c0000000d1a2734404d5a6773808d8f8275685c4f423528313c454f59626d74818e92867c6e685d544a3f342822190e050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8793867a6d6053473a2d201407000000000000000000000000000000000000000000000000000613202c3945525d6876828f8c7f7366564c41363c4956636f7c898d807367574d423a47535f6a788491887c6f6255493c313e4b5764717e8a8f8276675d5145392c20130600000000000000010d1a2734404d5a6773808d9285796d60564d443f3a383434383a3c42464c52575f656c727c838e919694887b6e6155483b2e2215080000000000000000000000000000000c1926333f4c5966727f8c8f8275685c4f4235291c0f02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714202d3a4753606d7a86998a7d7063574a3d2d2219140e09080d11171d242933383c3d3d3c38332b23190f05000000000000000000000000000000000000000000000000000000040a0f13151619191413110d080d11171c1f2023252727262522211f1b150e0600000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000000000000613202c3945515d677784918e8275685b4f422f24180c00000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000c1825323f4b5865727e8b9386796d6053463a2d201307000000000000000000000000010b17222d38414e58616e7a8592857a6d61584e47535f6973808d9082766c61554b40332a1f11080000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f64646464646464646464646464646464646464646464646464615a5044392d201408000000000000000a1724303d4a5763707d8a96897c6f6356493c302316090000000000040e18222a32373b3c414141414141414141414141414141414141413c3a37312a22180e0400000000000a1724303d4a5763707d8a92867a6d60584e5154575a5d5e5f5f5e5c5a5653504a45413a3129241d160d050000000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c302a2a2a2a2a2a2a252a2d2e2f3036383f444b515a606c77828f92867b6e61544a3f34281c100300000d1a2734404d5a6773808d8f8275685c4f4235292a333d47515b606d79839091847a6d665c50443e342b20170d0300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8793867a6d6053473a2d201407000000000000000000000000000000000000000000000000000714212d3a4754606d7a8692897c6f6256493c303a4653606d7985908477695e52463b4855626e7b889285786c605346392e3a4754616d7a8692867a6d6054473a2d22170b00000000000000030f1b27333f49536976838f8e8275665c50443b332d2c28282c2d30363a41454d535b606a6f79818c9294887b6e6155483b2e2215080000000000000000000000000000000c1926333f4c5966727f8c8f8275685c4f4235291c0f02010101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613202c3945515d677986928b7e716453493f33271f1a191818191c23282f353d44484a4948443d352b21170d0300000000000000000000000000000000000000000000000000000000030709090c0c070705010000060b0f121316191a1a19181515120f0a030000000000000d1a2734404d5a6773808d8f8275685c4f4235291c060000000000000000000000000714202d3a4753606d7a86938c7f7265594c3f3226190700000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000c1825323f4b5865727e8b9386796d6053463a2d2013070000000000000000000000000006111b262f3d46525e68727f8c8d80746a5f53505a626e7b8692877c6f625a5043392f21180e000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f635757575757575757575757575757575757575757575757575550483e33281c1004000000000000000916222f3c4955626f7c88958a7d7063574a3d3024170a00000000000007101820262b2e2f343434343434343434343434343434343434342f2e2b26201810060000000000000713202d3a4653606d7884918c7f726a5f565d6064676a6b6c6b6b696663605c54524c433f352f281f170e0500000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c30231d1d1d1d1d1d191e202123252a2d33394045505b656f7c88948d8174665c5044382c1f120600000d1a2734404d5a6773808d8f8275685c4f423529212b353f45515c676e7b85918f82786d605a50463d33291f150b01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8793867a6d6053473a2d20140700000000000000000000000000000000000000000000000003101c28343f4a5464717e8a9285796c605346392d3844505c6675828e877b6e615448414b5565727f8c8e8174655b5044372d3946525e687683908a7d706453493f33271b0f0300000000000005121f2b3744505b657885928c7f7265544a3f3228221f1c1c1f20252a2f353c414950585f676d777f8c94887b6e6155483b2e2215080000000000000000000000000000030c1926333f4c5966727f8c8f8275685c4f4235291c0f0d0d0d0d0b0b090501000000000000000000000000000000000000000000000000000000000000000000000000000004101d2935404b556a7784918d8073655b50443b312b2626252524292e343940454f545656544f473d33291f1409000000000000000000000000000000000000000000000000000000000000000000000000000000000000030606090c0d0e0d0c0908060300000000000000000d1a2734404d5a6773808d8f8275685c4f42352917110a02000000000000000000030f1b27333f495363707d8a98897c6f6356493c3023160900000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000c1825323f4b5865727e8b9386796d6053463a2d20130700000000000000000000000000000a141d2a36414c56606d788491877c6e625955616c76828f8d81746a5f53483e31281d0f06000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f63564b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4a49443e362c22170b00000000000000000814212e3b4754616e7a87998b7f7265584c3f3225190800000000000000070e151b1f21222727272727272727272727272727272727272722211f1b150e060000000000000006121f2c3844505c66717e8a92867c6f6862676d717476787878777673706d66605d565045403a312920170d03000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c30231610101010080d111414161a1b22272e343f4953606a76828f9285796d6053463a2d20130700000d1a2734404d5a6773808d8f8275685c4f4235291a232834404b555e696f7c86928d80736c62584e453b31271d1207000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8793867a6d6053473a2d20140700000000000000000000000000000000000000000000000006121f2b3844505c6675818e8e8175665b5044382b343f4a5465717e8b8b7e7165544a45515d6776838f8a7e716453493f332935414c566673808c8e8174655b5044372b1f12050000000000000613202d394653606c7986938b7e7164584b3e2e251713101013131a1e24292f383f444e555d656e7a8794887b6e6155483b2e221508000000000000000000000000060c10121926333f4c5966727f8c8f8275685c4f4235291c1a1a1a1a1a181715110c0600000000000000000000000000000000000000000000000000000000000000000000000000010d18242f414e5b6774818e9184786c60564c433c37313232322f35383f444b515960636360594f453b31251a0e0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f423328221c140b0701000000000000000a121f2b3744505b6574808d9286796d6053473a2d20140700000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000c1825323f4b5865727e8b9386796d6053463a2d2013070000000000000000000000000000020b1925303b44515c66707d8a8f82756b605d67707d8a92857a6d61584e43362c1f160c00000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3d3c39332c231a100500000000000000000613202d394653606c7986928d8074675a4d413025190d0100000000000000040a0f1315161b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1515120f0a04000000000000000003101c28343f4a54616c74808d91847a6e6f757a7e81838485858482807d79736d68625a514b433a32291f150b010000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c302316090303040001050708090e11171d232d38414e5865717e8b97897d7063564a3d3023170a00000d1a2734404d5a6773808d8f8275685c4f4235291c18232e39434d56606a717e8b928b7e716a60574d43392f231811080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8793867a6d6053473a2d2014070000000000000000000000000000000000000000000000000713202d3a4653606d7985928a7e7164544a3f33282e3b4754616e7a878f8275665c504754606d7a8692867a6d6154473a2d25303c4956636f7c899185786c605346392d2013080000000000000714202d3a4753606d7a869a8a7d7063574a3d30241706040406090e13191d262d333c434b53616e7a8794887b6e6155483b2e22150800000000000000000000030a11171c1f2027333f4c5966727f8c8f8275685c4f4235292727272727272524211d18110900000000000000000000000000000000000000000000000000000000000000000000000000071723303d4a5663707d89958a7e71685e554d4742403f3e3f3f41454a50555d606b70706b60574d42362a1e120500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f827568554d453d332d261d18120c06000000000309111c2630394653606c7884918f8275675d5145382c1f130600000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000c1825323f4b5865727e8b9386796d6053463a2d20130700000000000000000000000000000008141e2834404a54616b75828f897d7065606d7984918b7e72685d52463c32241a0d0400000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c313131313131313131313131313131313131313131302d28221a110800000000000000000006121f2b3844505b667784918f827569564c4135291d1105000000000000000000030608090e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0908060300000000000000000000000c17232e3842505a606c78818e91847b7c82868a8d90919292918f8d8985807a716c605d554c443a31271d12070000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000060b121b262f3c4854616e7b87968c807366594d4033261a0d00000d1a2734404d5a6773808d8f8275685c4f4235291c121d27303b444e58626c74808d92867c6f695e554b403429231a100500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8793867a6d6053473a2d2014070100000000000000000000000000000000000000000000000a1623303d495663707c8993867a6d6154473a2d222d3946525e6877839085796d60534a5764707d8a908376685d5246392d202d3a4653606d798592887c6f6255493c3025190d0100000000000713202d3a4653606d7986988a7d7064574a3d2e23170b0300000001080b141b2227313b4754616e7a8794887b6e6155483b2e221508000000000000000000030c151c23282c2d34343f4c5966727f8c8f8275685c4f42353434343434343432312e29221b12090000000000000000000000000000000000000000000000000000000000000000000000000613202d394653606c78839091847a6e675f57534d4d4c4b4b4c4c52545c60676d747d7d70695e53463a2d21140700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275675e574f443f382f29231d17110e09060b0f141a232e38424e5863707d89968b7e7164554b4035291d100400000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000c1825323f4b5865727e8b9386796d6053463a2d201307000000000000000000000000000000020c18232e39424f59616e7b869083786c6973808d9083786c60564c41342a2012080000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c30242424242424242424242424242424242424242423201c17100800000000000000000000030f1c28333f4a546875828f918477685e5246392d201307000000000000000000000000000101010101010101010101010101010101010100000000000000000000000000000006111c26303e44505b666d78818e9185888e92908c89878686878a8d91918c857e756d675e564c43392f24180d0300000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c302316090000000000000000000000000a14212d3a46535e697885918f8275685c4f4235291c0700000d1a2734404d5a6773808d8f8275685c4f4235291c0b151e29323d46505a606d78828f91857b6e675c51453f352c21160b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8793867a6d6053473a2d20140d0d0808060200000000000000000000000000000000000006121e2b37424d576773808d908376685e5246392d1c2a36414d566673808d897c7063564e586774818e8c7f7366564c4135291f2c3844505c6675828f8c7f7366564c41362a1d1105000000000006121f2c3844505c667885928b7e7265544a3f34281d150c0701000000020a1117212e3b4754616e7a8794887b6e6155483b2e2215080000000000000000000a151e262e34383a4040404c5966727f8c8f8275685c4f4240404040404040403e3d3a342d241b1106000000000000000000000000000000000000000000000000000000000000000000000005121f2b3744505b65707d88939083796e69625f575a59585859565d60666d71798087857b6e6154483b2e21150800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d9083796e696059504a423c342f28231c1a1818171b1f252a343f4a54606a75828f92857a6d6054473a2f24180c0000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000c1825323f4b5865727e8b9386796d6053463a2d2013070000000000000000000000000000000007121c27303e46535f6973808d8a7e716e7b8692897c6f665b50443a3022180e000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023181818181818181818181818181818181818171614100b050000000000000000000000000b17222d404c5966737f8c93867a6d6154473a2e21140a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a151e28333f4a545c666d75818e92948f88837f7c7a797a7b7d80858b91928b82796d685e554b4035291f150b01000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000005121e2a36424d57697683909184776b5e51442f23180c00000d1a2734404d5a6773808d8f8275685c4f4235291c0f0c17202b343e44505c666d7a84919083796d605b51473e33281c10040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060c1114212e3b4754616e7a8793867a6d6053473a2d201a1a1a1514120f0903000000000000000000000000000000000814212e3a47535f697784918c7f7366564c41362a1d25303c4956636f7c898d80746758535f6a788491887c6f6255493c30241c28343f4a5465727e8b908376685e5246392d201306000000000003101c28343f4a546a7683908e8174665c50443a2f271e18130d08040000000614212e3b4754616e7a8794887b6e6155483b2e221508000000000000000006111c2630383f44464d4d4d4d5966727f8c8f8275685c4f4d4d4d4d4d4d4d4d4d4b4a453f362d22180c0100000000000000000000000000000000000000000000000000000000000000000000030f1b27333f4953606b73808d9390837b746e6968666565656667686d72787e848d93908376695d5043362a1d1003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d9590837b706b605b544d454039342e2a26252522272b31363f44505c666f7c89938d8073675d5145392c1d12070000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000c1825323f4b5865727e8b9386796d6053463a2d20130700000000000000000000000000000000000b151e2b37424d57606d798491847976828f8e81756b60544a3f32281e1006000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0a0a08040000000000000000000000000000061724303d4a5763707d8a998a7d7064574a3d31261a0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004111d2935414b555f6a707d8692928b827c76726f6d6d6d6e7074797e848e938f837a6d675d51453e31271d1207000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c30231609000000000000000000000000020e1a2531424e5b6875818e9285786c554b4034291c1004000d1a2734404d5a6773808d8f8275685c4f4235291c0f050e192228343f4a545d686f7c86928e81756d63594f44382c201407000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000910171d21212e3b4754616e7a8793867a6d6053473a2d2727272722211f1a150e060000000000000000000000000000000815222f3b4855626e7b8896897c6f6256493c302519202d3a4653606d79859184786a6055626f7b889185786c605346392d2017232e3b4854616e7b8793867a6d6154473a2e23170b0000000000000c17232e404d5a6773808d9185796d60564c41393029241d1914100c07060814212e3b4754616e7a8794887b6e6155483b2e22150800000000000000000c17232e38424a50535a5a5a5a5a66727f8c8f8275685c5a5a5a5a5a5a5a5a5a5a585650483f34291d110500000000000000000000000000000000000000000000000000000000000000000000000b17222d38414f59606c78818c939086817b7875737271727274767a7e848b91928c837b6e6155483b2e22150800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d9a9590857d736c665f57514b443f38363132322d33373b4246515b606d78839092867b6e61554b4135291d0b010000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000c1825323f4b5865727e8b9386796d6053463a2d2013070000000000000000000000000000000000030c1a26313c45515d67717e8b8c7f7e8a92867b6e61594f42382d20160c00000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c30231609000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a86928d807367584e43372b1c110600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050f1a232c3945515d676f7c869292867e766f6a65636160606164666d717a818d929083796d605a5043392f24180c000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000091b2734414e5a6774818d928679675c5145382c1f1306000d1a2734404d5a6773808d8f8275685c4f4235291c0f00071017232e38424c565f6a707e88938c7f726b6155483c2f23160900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009121b22282d30313b4754616e7a8793867a6d6053473a34343434342f2e2b2620180f060000000000000000000000000005111d2935414c5665727f8c9285796c605346392d20131f2c3844505c6675828e897c6f625566727f8c8e8174655b5044372b1f14212d3a46535e697784918b7e7164544a3f34281c10030000000000061623303c4956636f7c89958b7e71685d534a423c352f2a251f1d1813121014212e3b4754616e7a8794887b6e6155483b2e2215080000000000000003101c28343f4a545c60676767676767727f8c8f827568676767676767676767676765625a50453a2e211509000000000000000000000000000000000000000000000000000000000000000000000006111b262f3d44505b666c777f8790928d888482807f7e7e7f8183868b91928d8680786e695f53473a2d21140800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d94908f92877f786e69605c55504a46423f3f3f403f44464d535b636d73808d958c7f73695e52433a2f24180d000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000c1825323f4b5865727e8b9386796d6053463a2d20130700000000000000000000000000000000000009141f2935404b55606c7883908685928c7f72695e52473d2f261c0e0400000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c30231609000000000000000000000000000000000000000000000000000000000000000000000613202c3945515d677683909083776a5f5347382d22170b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b16212c38444f59606d79849192857d716c625f585654535354545c60686d77808d938e81756c61554b4035291b11060000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c30231609000000000000000000000000010d1a2734404d5a6773808d99867a6d6053473a2d201407000d1a2734404d5a6773808d8f8275685c4f4235291c0f020006111c26303a444e58616c73808b8b867d7063574a3d3024170a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006101b242d34393d3e404754616e7a8793867a6d6053474040404040403b3a37312a21180e030000000000000000000000000713202d3946525d687683908e8175665b5044382b1f121c28343f4a5465717e8b8c8073665d6776838f8a7e716453493f33271b121e2a36424d576774808d8e8175665c5044382b1f120600000000000613202d394653606c78839091847a6d655c544d45403a36302c2924201f1c17212e3b4754616e7a8794887b6e6155483b2e2215080000000000000006121f2c3844505c666d737373737373737f8c8f8275737373737373737373737373716c62564a3d3124170b0000000000000000000000000000000000000000000000000000000000000000000000000a141d28333f4a545b656c737c83898e92918e8d8c8b8b8c8e90928f8b85807a736d665f574d42372b1e120600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d9082838c928c827b726d67605c54534d4c4b4b4c495053575e616d727f8b929083786d60564d4231281d1307000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000c1825323f4b5865727e8b9386796d6053463a2d201307000000000000000000000000000000000000030d18242f3a44505b656f7c8792929184796d60564d42352b1d140a0000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c302316090000000000000000000000000000000000000000000000000000000000000000000004111d2935414c5566737f8c95887b6f62544a3f33281c1106000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004101c27333b4854606b74818e92877d6f6b625a534e49474647484a51565d656c74818e938a7e71675d5145382d22170b0000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c30231609000000000000000000000000010e1b2734414e5a6774818d938679675c5145382c1f1306000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000a141e28323c46505a606c777e7f7f7e7164584b3e3125180b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c17222d363e45494b4d4d54616e7a8793867a6d60534d4d4d4d4d4d4d4847433c332a2015090000000000000000000000000714212e3a4754616d7a86928a7e7164544a3f33281c0f17232e3b4754616e7b8790837668606d7a8692867a6d6054473a2d22170e1a25313d4a5763707d8a9285796d6053463a2d201309000000000005121f2b3744505b65707d89928f81776d665f57514b46413b39352f2d2b2823222e3b4754616e7a8794887b6e6155483b2e221508000000000000000713202d3a4653606d788080808080808082909184808080808080808080808080807e7165584b3e3225180b000000000000000000000000000000000000000000000000000000000000000000000000020b17222d38424a535b606a6f767c8185888a8c8d8d8d8c8b8986827e7a736d68605c544d453c31261a0e0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8d80797f879190867f79716d66615f5759585859535b6062696e757f8b9192857b6e665c51443b301f160c01000000000814212e3b4754616e7a878a897c6f6356493c3023160900000000000000000000000000000000000c1825323f4b5865727e8a8a86796d6053463a2d2013070000000000000000000000000000000000000007131d27333f4953606a74818e978a7e71665c51443b3023170b020000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000000000000000000000000000000000000010d19242f3b4855616e7b88948d8073665b5044382e23170b01000000000000000000000000000000000000000000000003070909090703000000000000000000000000000714202c38444f59636f7d89938c7f726b60595047433c3a3a3a3b40444c535b606d7883909185796d6053493f33271b0f0300000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c30231609000000000000000000000000000e1b2835414e5b6874818e9285786c554b4034291c1004000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000020c16202a343e44505b656c717272716c6256493d3024170a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005111d28343e485056585a5a5a616e7a8793867a6d605a5a5a5a5a5a5a5a55534e463c31261a0f020000000000000000000004101c2834404a5464717e8a93867a6d6154473a2d22170b14202d3a46525e69778390877a6d64717d8a908376685d5245392c1b110914202d3a4753606d7a8692897c6f6356493c31251a0e0200000000030f1b27333f4953606b74818d938e81786e69605d55524c4745403c3a38342e2f2e3b4754616e7a8794887b6e6155483b2e221508000000000000000714202d3a4753606d79868d8d8d8d8d8d909496918d8d8d8d8d8d8d8d8d8d8d8d8d8276695c4f4336291c100300000000000000000000000000000000000000000000000000000000000000000000000006111c262f384149505860626b6f74787b7d7f808080807e7c7976726d68615e56504a423c332a1f15090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8c7f73737c848d928c847e79726e69686665656667656c6f747b828c9192867d6f695f544a4032291f0d0400000000000714202d3a4753606d797e7e7e7a6d6154473a2e21140700000000000000000000000000000000000815222e3b4855616e7b7e7e7e776c605346392d2013060000000000000000000000000000000000000004111d2935414c55606c7883909b8f82756b60544a3f34281e13080000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000000000000000000000000000000000000000814212d3a47535f697683909184786c60544a3f34281e1308000000000000000000000000000000000000000000040a0f13151615130f0a0400000000000000000000000916222f3c4854606b7783909083786c60594f463f37322e2d2d2e343a4149515c666f7c87938b7f72655b5044372b1f120500000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000005121e2a36424d576976838f9184786b5e51452f23180c00000d1a2734404d5a6773808d8f8275685c4f4235291c0f02000000040e182227333f49535b6065656564625a5045392d211508000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000815212d3945505a6164676767676e7a8793867a6d676767676767676767625f584e43372b1f12060000000000000000000006121f2c3844515c6675828e908376685e5246392d1c1106111e2a36424d566673808d8a7e716774818e8c7f7366564c4135291d0a0613202c3945515d6776828f8d807366574d42362a1e120500000000000b17222d38414f59606d79828f938e827b726d67615e5653514b4946443f3e3c3a3b4754616e7a8794887b6e6155483b2e221508000000000000000713202d3a4653606d7986878888898a8b8f9395908b8b8b8b8b8b8b8b8b8b8b8b8b8276695c4f4336291c1003000000000000000000000000000000000000000000000000000000000000000000000000000a141d262f383f444e54596063656c6f717273747473716f6d6765605d56524c443f38302a21180e030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8b7e726a6f7980868f918b847f7b7774727272737376797c81868f9490857d6f6b60574d42392e20170d00000000000006131f2c3845515c676d7171716d685e5246392d20130700000000000000000000000000000000000714212d3a46535f696e7171716c655b5044372b1f1205000000000000000000000000000000000000030c1a232c3945515d67717e8b948f93897d70665c50443a3025190d0400000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c30231609000000000000000000000000000000000000000000000000000000000000000000000006121e2b37424d5765717e8b968a7e71665c50443a2f2419100700000000000000000000000000000000000000070f161b1f2223221f1b160f0700000000000000000004101c2834404a5463707d8995897d70665b50473d342b2621202023282f38404a54606a75828e9184786c605346392d20130600000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c302316090000000000000000000000060c14212d3a46535e697885918f8275695c4f4236291c0700000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000061017222d3841495053585858585650483e34291d1105000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1724303d4956616c7173737373737a87938679737373737373737373736e6a5f53473a2e211408000000000000000000000713202d3a4653606d7985928c7f7366564c4135291d0a000e1925303c4956636f7c898e81746a788491887c6f6255493c3024190d04101d2935404b5566727f8c908477695e53463a2d211407000000000006111b262f3d45515c676d79828c9290867f79736e6864605d555553504a4b4847454754616e7a8794887b6e6155483b2e2215080000000000000006131f2c3845515c6776787a7b7c7c7d7e818f90837f7f7f7f7f7f7f7f7f7f7f7f7f7e7064574a3d3124170a0000000000000000000000000000000000000000000000000000000000000000000000000000020b141d262d333c43474f54535b60626466666767666563605c5554524c46413a342e261e180f06000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8a7d7064676d737b828a90918c8884817f7e7e7f808285898e92918b837b6f6b60594f453c30271c0e0500000000000004101c2934404b555c60646464615e564c41362a1d1105000000000000000000000000000000000005121e2a36424d575f61646464605b53493f33271b0f030000000000000000000000000000000000000b151e2b37424d57606d7a85918f82879184786d60564c41362a20150a00000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c302316090202020202020202020202020202020202020202020201000000000000000000000000020e1a26313c4753606d7985919184786d60564c41352922191006000000000000000000000000000000000006101921272c2e2f2e2c2721191009000000000000000006121f2c3844515c6675818e9184776b60544a3f352b221b141314181d262e39424e58636f7c8996897c6f6256493c2f23160900000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c30231609020202020001040607090e11171e27313b4854616e7b87968d8073665a4d4033271a0d00000d1a2734404d5a6773808d8f8275685c4f4235291c0f02000000000006111b262f383f44464b4c4c4b49453e362d22170c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1825313e4b5864717e8080808080818e9a8d81808080808080808080807c6e6255483b2f221508000000000000000000000a1623303d495663707d8997897c6f6256493c3025190d000913202d3a4653606d79859184786e7b889185786c605346392d201308010d18242f3c4855626f7c8895877b6e6154483b2f23180c0000000000000a141d2934404b555d676d78808790928c857f7a75716d676562605c54575553514b54616e7a8794887b6e6155483b2e2215080000000000000004101c2834404b555c666d6d6e6f7070727f8c8f8275727272727272727272727272706c6155493c3023160a000000000000000000000000000000000000000000000000000000000000000000000000000000020b141b222732373d43484950535557595a5a5a59585653514b4745413a363028231c150c0600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808b897c6f635d60696e757d83898e92918e8c8b8b8c8d8f92928f8a847e776e6960594f473d332a1e150b00000000000000000c18232f39434b515357575754524c443a3025190d010000000000000000000000000000000000020e1a26313b454d535557575753504941382d22170b00000000000000000000000000000000000007121d27303947535f6973808d918479818e8b7f72685e52463c32261b0d04000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0c08030000000000000000000009151f2c3845515c67727f8c968b7e71685d52453e342b221810070100000000000000000000000000020a1117222b32383b3c3b38322b221b1209000000000000000713202d3a4653606d7985928c807366594f42382d2319100a07070b141c27303c4653606c7884918c807366594d4033261a0700000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160e0e0e0f0f070d111314161a1c22283039434f5965727e8b988a7d7064574a3d3124170a00000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000a141d262d3337393e3f3f3e3d39342d241b110600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f1c2835424f5b6875828d8d8d8d8d8e939d928d8d8d8d8d8d8d8d8d8d8a7d7063574a3d3024170a00000000000000000006121f2b37434e586774808d9285786c605346392d2013080006121f2c3844505c6675828e887b727f8b8e8174655b5044372b1f1205000713202d394653606c7885918b7e7265554b4034291c10040000000000020b18232f39434b555d666c737c82898f928c86827d7a75726f6d66676462605c555a616e7a8794887b6e6155483b2e22150800000000000000000c18232e39434b545c606161626365727e8b8f827568656565656565656565656564615a5044392d20140800000000000000000000000000000000000000000000000000000000000000000000000000000000020a111720272b3238383f4446484a4c4d4d4d4d4b494745403a39352f2a251e17110a03000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091623303c4956636f7d7f7f7a6d6154575f616b70767c8185888a8c8d8d8c8c8a8885827d79716c655e574f463d352b21180c03000000000000000007121d2731394045474b4b4b4746413a32281e13080000000000000000000000000000000000000009141f2a333b4246484b4b4b46443f382f261b11060000000000000000000000000000000000000c18232e39434f59626e7b8792897d707b8692857a6d61584e43372b1f160c010000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c30231b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1a18140f0901000000000000000004101c2934404b55606d79859291847a6d605a50463c342a2218130b060000000000000000000000060c141c2328343d43484948433d342d241b11080000000000000916222f3c4955626f7c8898897c706356493d2f261c1107000000020b151f2b3744505b6575818e8f8275695c4f422e23180c00000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c30231b1b1b1b1b1c1c181d202123262a2d333a424b55606b7683909285796d6053473a2d20140700000d1a2734404d5a6773808d8f8275685c4f4235291c0f02000000000000020b141b22272b2d32323231302d29221b12090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f1c2835424f5b687581878888898a8c929c918c8b8b8b8b8b8b8b8b8b8a7d7063574a3d3024170a0000000000000000000815212e3a47535f6a7784918e8174655b5044372b1f12050003101c28343f4a5465717e8b8b7e75828f8a7d716453493f33271b0f030005121f2b3744505b6574818e8f8275675c5145382c1f130600000000000007121d273139434b545b606a6f767d82878d918f8a86827f7c797673716f6d676967666e7a8794887b6e6155483b2e221508000000000000000007121d273039424a50535455555865717e8b8f8275685c58585858585858585858575550483e33281c1004000000000000000000000000000000000000000000000000000000000000000000000000000000000000060b151b21272c2d3337393c3e3f404141403e3c3a38342f2c29241e19130c0600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000915222f3b4854606b6f72726d685e524d535961636b6f74797b7e7f8080807f7e7b7975706d66605b534d453d342b23190f06000000000000000000010b151f272f34383a3e3e3e3a3936302820160c0200000000000000000000000000000000000000030e18212a31363a3b3e3e3e3937332d261d140a00000000000000000000000000000000000004101c2834404b55616c76828f8e81746b73808c8e81746a5f54473e31281d12070000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c30282828282828282828282828282828282828282828282828282724201a130b0300000000000000000c18232f3945515d67717e8b948e81756c61584e463c3429241d17110e0806040100000104060b11171e262e343f464e5456544e463f362d231a0f0500000000000b1825313e4b5864717e8b98877a6d6154473a2e21140a0000000000030f1b27333f495366727f8c9184786b544b4034281c1004000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c30282828282828282924292c2d2f3136383f444c545d67707d89948e8174675c5145382c1f130600000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000020a11171b1f202525252524211d171109000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613202d394653606c787a7b7c7d7d808c998c7f7f7f7f7f7f7f7f7f7f7f7b6e6155483b2e2215080000000000000000000915222f3c4855626f7b88968a7e716453493f33271b0f0300000c17232e3b4754616e7b878f82798592867a6d6054473a2d22170b0000030f1b27333f495364717e8a9285796d6053473a2d201409000000000000010b151f273139424a50585f626b70767b8084898d908f8c888583807e7c7a78767472717a8794887b6e6155483b2e2215080000000000000000000b151e2730383f444647484b5864717e8b8f8275685c4f4c4c4c4c4c4c4c4c4c4a49443e362c22170b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040a0f161b1b22272b2d2f31333334343332302d2c2923201d19130d080200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007131f2c38444f5960636565615e564c42474f55596063666c6e717373747372716e6c6564605c545049413b332b221910070000000000000000000000030d151d23292c2d3131312e2d2a251e160e05000000000000000000000000000000000000000000060f181f262a2d2e3131312d2b27221b140b020000000000000000000000000000000000020b19222c3845515c67707d8a92857a6d616d798591877c6f625a5043392f24180d0300000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c353535353535353535353535353535353535353535353535353534302b251d150b010000000000000007121d2935404b55616c76828f938a7e716a60584e463e352f28231c191413110d08070d1113171c222830383f4451586062605851483f352b21160b00000000000c1926323f4c5965727f8c928579685d5246392d2013020000000000000b17222d3e4b5764717e8a928579665c5145382c1f1306000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3535353535353535362f35393a3c3e42464a50565d666d79839192867b6e62554b4034291c100400000d1a2734404d5a6773808d8f8275685c4f4235291c0f02000000000000000000060b0f1213181919181715110c06000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005121f2b3744505b656c6d6e6f70717a8793867a727272727272727272726e695f53463a2d211407000000000000000005111d2a36414c5666727f8c93867a6d6154473a2d22170b0000000614202d3a46525e69778390857d89908376685d5245392c1b11060000000b17222d3a4754616d7a87938a7d7063574a3d31261a0f02000000000000030d151f272f383f444e53596063696e73787c8083878a8d908f8d8a88868482817f7e7e8a94887b6e6155483b2e221508000000000000000000030c151e262e34383a3a3e4a5764717d8a8f8275685c4f423f3f3f3f3f3f3f3f3d3c39332c231a100500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040a0f11171b1f20222426272727262523201f1c1813110d08010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030f1b27323d474f5456585854524c443a3e44484f54545b60626466676766656462605b5353504a443f382f292119100700000000000000000000000000030b12181c1f2024242421201d19130c050000000000000000000000000000000000000000000000060e141a1e2122242424201f1b17110a020000000000000000000000000000000000000a141d2a36424d57606d7984918b7e72685e67727e8b9083766c61554b4035291f140900000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f635649414141414141414141414141414141414141414141414141414141403c372f271d130900000000000000010d18242f3943505a616e7b859292867c6f6a5f585045403a342e2a2521201d191c1c181d2022282d333b424a505b636a6f6a625b51473d33271c1004000000000d1a2633404d596673808c9285786b564c4135291d1105000000000000061724303d4a5763707d8a9886796d6053463a2d201307000000000000000000000000000814212e3b4754616e7a8794897c6f6356494141414141414142424243414547494b4d53545b60686d78818e958d8073695f5343392f23180c0000000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000000000000305060b0c0c0b0a080500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030f1b27333f49535b60606162636e7a8793867a6d656565656565656565615f574d42362a1e120500000000000000000713202d3946525e68768390908376685e5246392d1b110600000005111e2a36424d566673808d9185918c7f7266564c4135291d0a000000000613202d3946525e687783908d807467584e43372b1f120600000000000000030d151d262d333c43474f54575f62656c6f73777a7e808386888b8d8f918f8d8c8a8a9094887b6e6155483b2e22150800000000000000000000030c151c23282c2d313d4a5764707d8a8f8275685c4f42353232323232323231302d28221a11080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060b0f12131517191a1a1a1a18161413100c07040100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a16212b353d4448494c4c4746413a3233383d44484a50535557595a5a5959575553504946443f38332d261d170f0700000000000000000000000000000001070c1013141818181413110d08020000000000000000000000000000000000000000000000000003090e12141518181813120f0b060000000000000000000000000000000000000006111c262f3846525e69727f8c9083786c6056606d7883918a7e71675d51453b31261a0c03000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f63564e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4d4841392f251a0f030000000000000007121d28313e46535f69707d889392857c6f6a615a514b443f3836302d2c2924292824292c2d33383f444d545c606d727c726d62594f44382c201407000000000d192633404c5966737f8c9285786b564c41362a1e11050000000000000a1724313d4a5764707d8a9886796d6053463a2d201307000000000000000000000000000814212e3b4754616e7a8794897c6f63564e4e4e4e4e4e4e4e4e4f4f504b51545658575f61666c717a818e939083796d60574d4231271d12070000000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b17222d3841495053545555616e7a8793867a6d60585858585858585855534d453b31261a0e0200000000000000000714212e3a4754616d7a86938c7f7366564c4135291d0a00000000020e1925303c4956636f7c89979197887c6f6255493c3024190d0000000005111d2a36414c566673808d9184776a5f53473a2e2114080000000000000000030b141c222831373d44484d53535b606367686e717477797c7e80828486888a8b8d9294887b6e6155483b2e2215080000000000000000000000030a11171c1f24303d4a5763707d8a8f8275685c4f4235292525252525252423201c1710080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030506090b0c0d0e0e0d0b09070604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040f19232b32383b3c3f3f3a39353028282c3238383f4446484b4c4d4d4d4c4b4846443f3a38342e27221b140b05000000000000000000000000000000000000000406070b0b0b070705010000000000000000000000000000000000000000000000000000000000020507080b0b0b0605030000000000000000000000000000000000000000000b17222d38424f59616e7b8692877c6f665b505c66707d8a9184796d60574d42362a1e150a000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f635b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b59534b41372b20140800000000000000010c161f2a36424d57616c73808c9291857c716c605d55504a46413d3a39352f35352f35393a3f444a50575e666d747f897f726b6054483c2f221609000000000c1926323f4c5965727f8c928679685e5246392d2014070000000000000b1825313e4b5864717e8b928579665c5044382c1f1206000000000000000000000000000814212e3b4754616e7a8794897c6f635b5b5b5b5b5b5b5b5b5b5b5c5d555d60626467696e72787e848f9390847a6e675d51453c311f150b010000000d1a2734404d5a6773808d8f8275685c4f4235291c0f02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006111b262f383f4446474854616e7a8793867a6d60534c4c4c4c4c4c4c4846423b33291f14090000000000000000000b1825313e4b5864717e8b8b887c6f6255493c3025190d00000000000913202d3a4653606d79858b8b8b85786c605346392d20130800000000010d1925303d495663707d898b887b6e6255483b2f221508000000000000000000020a111720262b32383c424749505356565e616467676d6f717476787a7b7d7f808d94887b6e6155483b2e22150800000000000000000000000000060c101623303d495663707c898f8275685c4f4235291c1919191919171614100b050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007111921272c2f3032322e2d29251e1c21272c2d3338393b3e404041403f3e3b3937332d2c28231c17110a020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030f1c28333f4a54606b75818e8e81746a60544a54616b75828f8c8073695f53463d30261c11060000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f686868686868686868686868686868686868686868686868686868686868645d53483c3024180c0000000000000000040d1a26313b454f59636d74808d9291867e746d67605c54524d49474541434242424145474a50545b60696e78808c93867d7063564a3d3023170a000000000b1824313e4b5764717e8a99877a6e6154473b2e21150a000000000004101c28343f4a546673808c9184776a544a3f34281c1003000000000000000000000000000814212e3b4754616e7a8794897c6f68686868686868686868686869696a676d6f7174777b7f848b91928d837a6e685e554b40332a1f0d03000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a141d262d3337393b4754616e7a8793867a6d6053473f3f3f3f3f3f3b3a36312921170d030000000000000000000a1623303d495663707d7f7f7f776c605346392d201308000000000006121f2c3844505c66717e7f7f7f7d70655b5044372b1f120500000000000813202d3a4653606d787f7f7f7c6e6255483b2f2215080000000000000000000000060b151b21272c3137383f4446494d525457555c6062656769676d6f70727a8794887b6e6155483b2e221508000000000000000000000000000000091623303c4956636f7c898f8275685c4f4235291c0f0c0c0c0c0a0a0804000000000000000000000000000000000000000000000000000000000000000000000000000000000406070808080807060401000000000000000000000000000000000000000000000000000000000000000000000000000205070813131313060401000000000000000000000000000000000000000000000000000000000205070813131311100e0b06000000000000000000000000070f161b1f2223252521201d191310161b1c22282b2d2f313334343332312f2d2b27221f1c17110b06000000000000000000000000000000000000000000000000000000000000000000000000000104060708080707060300000000000000000000000000000000000000000000000000000000000000000000000000000000000000030e18222b3844505b666f7c8992857a6d61584e424f59616e7b8792867b6e61594f42382e23170c0200000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000000000814212e3b4754616e7a8794897c747474747474747474747474747474747474747474747474747474747474746f64594d4034271a0e01000000000000000009141f29333e47525b606c77808b92928a8079726d66615e565654514c504f4f4f4b5154545b60666c717b828d928f82796d6053473a2d201407000000000815222f3b4855626e7b8898897d7063564a3e30261c1107010000030c161f2c3844505c6675828e8f8275685c4f422e23170c00000000000000000000000000000814212e3b4754616e7a8794897c74747474747474747474747575757677787a7c7e8184888c91928f8780796e685e564d43392f21180e00000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020b141b22272b2e3b4754616e7a8793867a6d6053473a32323232322e2d2a261f170f06000000000000000000000916222f3b4854606b707272726c655b5044372b1f1205000000000003101c28343f4a54616c71727272706c6153493f33271b0f03000000000006121f2c3844515c666d7272726e6a5f53473a2e21140800000000000000000000060b101213161c1f262b2d3337393c4146474b4b515355585a555d6062646d7a8794877b6e6154483b2e2115080000000000000000000000000000000916232f3c4956626f7c898f8275685c4f4235291c0f02000000000000000000000000000000000000000000000000000000000000000000000000000000000000040607070c101314151515151413110d080807050100000000000000000000000000000000000000000000000000000000000002080e1114142020202013110d070100000000000000000000000000000000000000000000000003090e1214151f20201e1d1a17110b040000000000000000000000040a0f13151619191413110d08040a0f11171c1f20222426272726262422201f1b1712100c060000000000000000000000000000000000000000000000000000010606000000000000020507080d1113141515141312100c0607050200000000000000000000000000000000000000000000000000000000000000000000000000000a15202935414c56606c7883908c7f72685e52463e47535f6973808d8f82756b60544a3f34281e130800000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000000000814212e3b4754616e7a87948f828181818181818181818181818181818181818181818181818181818181818174685b4e4135281b0e020000000000000000030d18212c354044505b656c747f8791928d857e78726e686563605d555c5c5b5c555d6063666c70787e858f938c81796d675d5145392c201306000000000713202d3a4653606d7985928d807366594f42382e2318130e080b0f151e28313a4653606d7985928c7f7265594c3f322619120d070000000000000000000000000814212e3b4754616e7a87948f82818181818181818181818181828283848587898b8e9195908c87827c736d675e564d443b31271d0f0600000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020a11171b212e3b4754616e7a8793867a6d6053473a2d2525252522211e1a140d0600000000000000000000000713202c38444f596063656565605b53493f33271b0f030000000000000c17232e3842505a61646565656461594f41382d22170b00000000000004101c2834404a545c60656565625f584e43372b1f12060000000000000000020a11171c1f201f1c171a1b22272b2d3036393b3e404547494b4d4b515355616e7b8899877a6d6154473a2e2114070000000000000000000000000000000915222f3c4855626f7b888f8275685c4f4235291c0f0200000000000000000000000000000000000000000000000000000000000000000000000000000001070c10131417181c1f202122222221201d19181414110d0803000000000000000000000000000000000000000000000000000000050d14191e20212d2d2d2d201d18130c0400000000000000000000000000000000000000000000050d141a1e20212c2d2d2a2a27221d160e05000000000000000000000000030709090c0c0707050100000000060b0f12131518191a1a1a19181513120f0b060300000000000000000000000000000000000000000000000002070b0d0d13130908060303090e121415191d2021222221201f1c171414110e09020000000000000000000000000000000000000000000000000000000000000000000000030d1b26313945525d68727e8b9184796d60564c4137424d57606d7a8592897d70665c50443a3025190d04000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000000000814212e3b4754616e7a8794948f8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e86796c605346392d201306000000000000000000060f1a2327333f49535b606d727d848e93918b847f7b7672706d676a6968686969676d7073787d838b92918780776d675d554b4035291d11040000000006121f2b3844505c6675818e9184776b61544a3f3429241d1918171b1f27303a434f5963707d8994887b6e6255483b2f22221e18110901000000000000000000000814212e3b4754616e7a8794948f8e8e8e8e8e8e8e8e8e8e8e8e8e8f90919293918f8d8a8783807b756f6a605d554d443b32291f150b0000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060b14212e3b4754616e7a8793867a6d6053473a2d201919191514120e090300000000000000000000000004101c27333d474f545658585853504941382d22170b0000000000000006111c26303e4850555758585857554f473e2f261b1106000000000000000c18232e39424a515358585855534e463c31261a0f0200000000000000020c141c23282b2d2b28231c19171b1f20252a2d2e2f34383a3c3e4140454955626f7c889386796d6053463a2d2013070000000000000000000000000000000815222f3b4855626e7b888f8275685c4f4235291c0f0200000000000000000000000000000000000000000000000000000000000000000000000000040a0f12181d1f202423292c2d2e2f2f2e2d2c29242521201e1914100c06000000000000000000000000000000000000000000000000050e171e252a2d2e393939392c29241d160d040000000000000000000000000000000000000000050f171f252a2d2e3939393736332e2720170e04000000000000000000000000000000000000000000000000000000030606080b0d0d0e0d0c0b080605030000000000000000000000000000000000000000000000000001080e1317191a20201615130f0f141a1e212124292c2d2e2f2e2d2c282321201e1a14100b050000000000000000000000000000000000000000000000000000000000000000010b151f2b37434e58606d7a85928a7d71665c51443a313c45525d68727e8b9083786d60564c41362a20150a000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000000000814212e3b4754616e7a878a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a86796c605346392d20130600000000000000000000081117222d384149505b626b707a81878f94918c86827f7c7a78777675757576787a7c80848a90938d847d736c655d554b433a2f24180d010000000003101c28343f4a5464707d8a958a7d70665c50443e352f2a252522272b3139424b55606b76828f9083766a5f53473a32312e29231b1309000000000000000000000814212e3b4754616e7a878a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a898887868582807e7a77736e69625f58514b433b322920170d030000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8793867a6d6053473a2d20140c0c080705020000000000000000000000000000000b16212b353d4448494c4c4c46443f382f261b110600000000000000000a151e2c363e45494a4c4c4c4a49443e352c1d140a000000000000000007121c2730394044464c4c4c4847433c332a20150900000000000000000a141e262e34383a38342e2a251e171213191e202123292c2d2f322f353d4a5764707d8a918578665c5144382c1f12060000000000000000000000000000000815222e3b4855616e7b888a8275685c4f4235291c0f020000000000000000000000000000000000000000000000000000000000000000000000040b10161b1d24292c2d302f34383a3b3b3b3b3a39352f312e2d2a251f1c17110b06000000000000000000000000000000000000000000020d1720293036393b4646464639352f281f160c01000000000000000000000000000000000000030d17212930363a3b46464644433f39322920160b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020a12191f2326272d2d22221f1b1c1f252a2d2e2f35393a3b3b3a3a38342e2e2d2a251f1c160f0a0400000000000000000000000000000000000000000000000000000000000007121d27313947535f6a74808d9083766c61544b40322935414c56606d7883908b7f72685e52463c32261b0d030000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000000000714202d3a4753606d797e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7164574b3e3124180b00000000000000000000000006111b262f383f44515960676d747c82888d92928f8c8986848383828282838487898d91938e878079706b605b534b433a31281d13070000000000000b17232e394653606c7884919083786d605a5045413a3630322d33373d434b545d67707d89948a7d7064574e42403f3e3a352d251b11070000000000000000000714202d3a4753606d797e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7d7d7d7c7c7a79787673716e6866615e57534e454039312920170e05000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8793867a6d6053473a2d2014070000000000000000000000000000000000000000050f19232b33383b3d3f3f3f3937332d261d140a000000000000000000030c1a242c33393c3e3f3f3f3d3c39332c231a0b020000000000000000000b151e272e34383a3f3f3f3b3a37312a21180e030000000000000006111c2630383f4446443f38363028221c140f111414181c1f20222524333f4c5966727f8c9083766a544a4034281c10040000000000000000000000000000000714202d3a4753606d797d7d7c6f6255493c2f2216090000000000000000000000000000000000000000000000000000000000000000000002080d161b21272c2f35393a3d4040454748484848474541413e3b3936302c28231c17110a020000000000000000000000000000000000000008141e29323b4146535353535345403a31281d130700000000000000000000000000000000000009141f29333b424648525353514f4a443b32271d11060000000000000000020608080d10121212110e0b0706040000000000000000000000000000000000000000000000000000000000000000000000000000000000010a141c242b2f333439392f2e2b27282b31363a3b3f41454748484746443f3f3b3a36302c28211b150b0600000000000000000000000000000000000000000000000000000000000c18242f3943505a626f7c8792877c6f625a5042392e242f3a44505c66707d8992857a6d61584e43372b1f150b0100000000000000000814212e3b4754616e7a8794897c6f6356493c30231609000000000000000000000000000000000000000006131f2c3845515c676d71717171717171717171717171717171717171717171717171717171717171717171716c6155493d3023170a000000000000000000000000000a141d262d333f474f555d606a6f757c81858a8d90929391908f8f8e8f909196928f8b87817c746d6760595049413931281f160c0100000000000006121f2b3844505b66717e8a948c7f736c615a514b46413f3e3f3f44464e555d666d7984919083766c61554d4d4d4c4a463f372d23180d01000000000000000006131f2c3845515c676d717171717171717171717171717171717070706f6e6d66696764615e5654524d47433c352f271f170e0500000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8793877a6d6054473a2d21140700000000000000000000000000000000000000000007111921272c2f303232322d2b27221b140b020000000000000000000008121a22282d303132323231302d28211a110800000000000000000000030c151c23282c2d3232322f2e2b2620180f0600000000000000000b17232e38424a5053504a46413a332d261f1b17110f0c101314141d2b37434e586875828e8d8174675a4e412e23180c0000000000000000000000000000000006131f2c3845515c676d70706f6a6054473b2e221508000000000000000000000000000000000000000000000000000000000000000000050c131921272c3238394045474a4d4b51535455555554524c4e4b4746413b38342e28231c140c060000000000000000000000000000000000020e1925303b444c525f6060605f514b433a2f24180d0100000000000000000000000000000000030c1a25303b454d52545f60605d5b554d44392e22170b00000000000003090e121415191c1e1f1f1e1b181413100c0701000000000000000000000000000000000000000000000000000000000000000000000000000008121c262e363b3f4046463c3b373233383b4246484c4c525455555453504a4c4746423b38332b272017110a02000000000000000000000000000000000000000000000000000004101d2935404b55616c76828f8e81756a6054483e30271e28343f4a54606b75828f8d81746a5f53473e31271d120700000000000000000814212e3b4754616e7a8794897c6f6356493c30231609000000000000000000000000000000000000000004101c2934404b555c606464646464646464646464646464646464646464646464646464646464646464646464615a5045392d21140800000000000000000000000000020b141b2227353d434c51585f626a6f74797d808386888a8b8b8c8c8c8b8a8886837f7b756e6a605d554f443f382f271f160d0400000000000000030f1c28333f4a54616c75828f93877e716c605d55524d4c4b4c4950535860676d78828f92867c6f625a5a5a5a5a595651493f35291e1206000000000000000004101c2934404b555c60646464646464646464646464646464646463636261605c545a5754524c4846423b373129241d150d050000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212e3a4754616d7a8794877a6e6154473b2e2114080709090b0b0905010000000000000000000000000000070f161c202223252525201f1b17110a020000000000000000000000000810171c2123242525252423201c171008000000000000000000000000030b12181c1f2025252522211f1a150e06000000000000000003101c28343f4a545c605c54524c443f382f2b27221b1b191818171c262f384754606a7884918b7e7165584b3e322518070000000000000000000000000000000004101c2934404b555c6063636260584e43372b1f13060000000000000000000000000000000000000000000000000000000000000000070e171e252a32383d43484b5153575a555c6061626261605d565b5854524c46443f38342e261e1810060000000000000000000000000000000005111e2a36414c565e6c6c6c6c6c5d554b4035291d1104000000000000000000000000000000000b151e2a36424d575e616c6c6c6a675f554a3f33271a0e0000000000060e151a1e212226292b2c2b2a2824201f1d18120c07000000000000000000000000000000000000000000000000000000000000000000000000020e19242e3840474c4d53534947433c3f44464d535458565d60616261605c545854524d48443e373228221c140b04000000000000000000000000000000000000000000000000020c19232c3845515d67717e8a92867b6e61584e43362c1e17232e38424f59616e7b8692877c6f625a5043392f24180c03000000000000000814212e3b4754616e7a8794897c6f6356493c302316090000000000000000000000000000000000000000000c18232f39434b515357575757575757575757575757575757575757575757575757575757575757575757575550483e33281d11050000000000000000000000000000020a1117232b313a41454e53585f62676d707377797b7d7e7f7f7f7f7e7d7b7976726e69625f58514b433d332d261d150d040000000000000000000b17222d3842505a616e7b849192877e746d67615e56595858535b60636a6f79818f918b7e716a67676767676765625b51463a2e2216090000000000000000000c18232f39434b515357575757575757575757575757575757575756555453504a4d4b4746413b3a36302b262018120b03000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714202d3a4753606d7a8698887b6e6155483b2e22150f131516181715110c060000000000000000000000000000050b1013161619191913120f0b06000000000000000000000000000000050c11141717191919171614100b05000000000000000000000000000000070c1012131919191514120f090300000000000000000006121f2b3844505c666d66615e56504a423d37332d2b2626252523282e38414d57626f7c8895887b6e6155483b2e22150800000000000000000000000000000000000c18232f39434b5153575755544e463c32271b0f0300000000000000000000000000000000000000000000000000000000000000091019202930363d44484f54555d60636769676d6e6e6e6e6d686a6764615e5653504a443f38302a2217110a0300000000000000000000000000000714202d3946525e687679797976675d5145392c20130600000000000000000000000000000007121d27303946525e696e7979797771675b4f43362a1d1000000000060f1820262b2e2f33363839383735312d2c29241d18120b030000000000000000000000000000000000000000000000000000000000000000000007131f2b36404a52585a606055544e464a5053575e616569686d6e6e6d6d666865615e57554f47433d332d261d160e0400000000000000000000000000000000000000000000000a141e2a36424d57606d7984918c8073695e52463c32241a111c26303d46535f6973808d9082766c61554b4035291f1409000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000000000007121d2731394045474b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b49453e362c22170c00000000000000000000000000000000000611191f282f353c43474e54555c606367666d6e70717273737271706e6d6665615e57534e45403a3127221b140b030000000000000000000006111c262f3e46525e696f7c86919288817a726e686765656566656c6f757c838f938c7f737373737373737373726d62564a3e3125180b00000000000000000007121d2731394045474b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4a4a4a49494746443f403e3b3936302d2a251f1a150c070100000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613202d394653606c798692897c6f6356493c3023171b1f22232524211d1811090000000000000000000000000000000407090a0c0c0c0605030000000000000000000000000000000000000004080a0b0c0c0c0a0a0804000000000000000000000000000000000000000406070c0c0c080806020000000000000000000005121e2a36424d57606d78756d68605b544f46443f3837313332322e34394049535e6974818e918477695f53463a2d211407000000000000000000000000000000000007121d2731394045474a4a4947433c342b20150a000000000000000000000000000000000000000000000000000000000000010a121b222b323a41464f54596063676d707376787a7b7b7b7b7a797774716e6864605c54504a423c3428231c150c03000000000000000000000000000814212e3b4754616e7a868686796d6053473a2d2014070000000000000000000000000000000c18232e39424f59616e7b86868683776a5d5144372a1e11000000030e18212a31373a3b404345454544413e3a38352f28231c150c060000000000000000000000000000000000000000000000000000000000000000000b17232f3b47525c64676c6c62605850545b6064696e7275787a7b7b7a797875726e69636159544e443f382f2820160e0400000000000000000000000000000000000000000006111c26303846535e6973808c9184796d60574d42342b20120a141e2b37424d57606d7a85928a7e71675d51453b31251a0c020000000000000814212e3b4754616e7a8794897c6f6356493c30231609000000000000000000000000000000000000000000010b151f272f34383a3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3d39332c241a1006000000000000000000000000000000000000080d161e242932373c43474b515357545c6062636565666665656461605c5454534d47433c352f281f17110a020000000000000000000000000a141d2a36424d565f6a6f7c858f938d857f7b76747271727375787c828790959184808080808080808080807f7265594c3f3226190c000000000000000000010b151f272f34383a3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3d3d3d3c3b3a38342e312e2d2a25201e1a140f0a03000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005121f2b3744505b657784918b7e7165584b3e322724272c2f3032312e29221b12090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a46535f69737f827a716c6660595350494743413f3f3e3f3f444a515b656e7b86928c7f7266574d42362a1e12050000000000000000000000000000000000010b151f272f34383a3d3d3c3b37322b22190f040000000000000000000000000000000000000000000000000000000000010a131c242d343d444c525960636b6f75797d8083858687888888878583817e7a76716d66605c544e463f342e261e150d030000000000000000000000000814212e3b4754616e7a8793867a6d6053473a2d201407000000000000000000000000000004101c2834404b54606b75818e989084776a5d5144372a1e110000000915202a333c4247484c4f515252514e4b47454039342e271e170f0700000000000000000000000000000000000000000000000000000000000000000d1926333f4c58646e737979766a605a61666c71767b7f8285878888878684817f7b76706b626058504a423a322820160d0400000000000000000000000000000000000000000b17232e38424f59616e7b86928b7e71675d51453b3022190f020c1a26313c45525d68717e8b9184796d60574d42362a1e140a0000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000000000000030d151d23292c2d3131313131313131313131313131313131313131313131313131313131313131313131302d28221a12080000000000000000000000000000000000000000040c131920262b3237394045474a4b51535557585859595958575553504a4846423b373129241d160d060000000000000000000000000000020b1925303b444e585f6a6f7b828b91928c8783817f7e7f7f8284898e93999896918d8d8d8d8d8d8d8d8d8d83776a5d5144372a1e1104000000000000000000030d151d23292c2d313131313131313131313131313131313130302f2e2d2c28232421201e1914120e09030000000000000000000000000000000d1a2734404d5a6773808c8c8275685c4f4235291c0f0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030f1b27333f49536975828f8d817467594f44382e3032383b3c3e3d3a342d241b0d03000000000000000000000000000000000000000000000000000004060708080807060603000000000000000000000000000000000000000000000000000000000000000002070b0d0d13130f0e0c09040000000000000000000000000815222e3b4855616e7b868f857e78706b63605b53534e4d4c4b4b4c4a50545c606c77828f92867a6d6154473b31261a0e02000000000000000000000000000000000000030d151d23292c2d30302f2e2b272019100700000000000000000000000000000000000000000000000000000000000009131c252e363e464e565e616b70767c81858a8d8f9297949393949892908e8b86827e79716d665f5851443f3830271f150c0200000000000000000000000814212e3b4754616e7a8793867a6d6053473a2d20140700000000000000000000000000030d1a232c3845515c66707d89939d9084776a5d5144372a1e110000020e1a26313c454d5355595c5e5f5e5d5b5753514b444039302921191007000000000000000000000000000000000000000000000000000000000000000d1a2734404d5a67738086867c6f62626c71787d82878b8f919291909192918e8b87827d766f6a605b544c443a32281f160c0100000000000000000000000000000000000003101c28343f4a54606b75818e9083786c60554b4033291f10070009141f2935414c56606c7883908c8073695e53463d30261c110600000000000814212e3b4754616e7a8794897c6f6356493c302316090000000000000000000000000000000000000000000000030b12181c1f20242424242424242424242424242424242424242424242424242424242424242424242423211d1710080000000000000000000000000000000000000000000001080d151b20262b2f34383a3d404546484a4b4c4c4c4c4b4a4846443f3b3a36312b262018130c040000000000000000000000000000000009141f29323c464e585f696e777e848b8f92908d8c8b8b8c8e91928e8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b83776a5d5144372a1e110400000000000000000000030b12181c1f20242424242424242424242424242424242424232221201f1c17181414110e08050200000000000000000000000000000000000a1623303d495663707d7f7f7e7064574a3d3124170a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b17222d404c5966737f8c9184786b605448403d3d3e4348494b4a453f362d1f150b010000000000000000000000000000000000000000010406070c1013131515151413120f0b060603000000000000000006060100000000000000000000000000000001080e1317191a20201c1b1915100902000000000000000000000c1926323f4c5965727f8a91928b837d76706c65625f585a59585859545c60666d73808d948c7f73685e524639291f14090000000000000000000000000000000000000000030b12181c1f20242422221f1b150f0700000000000000000000000000000000000000000000000000000000000008121b252e374048505860686d757d83898e92928f8d8a888786868788898c8f92938f8a847e786f6a625b504a423931271e140a00000000000000000000000814212e3b4754616e7a8793867a6d6053473a2d201407000000000000000000000000010b151f2a36424d57606d79849192929084776a5d5144372a1e11000006121e2b37424d575f6266696b6c6b6a6864605d55514a423b332a221910060000000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8a7d706a6e767e848a8f928e8b888584848485878a8e928f8a827c736c665d564c443a31281d13070000000000000000000000000000000000040e18222b3844505c66707d8993897d70665b5043392f21170d0000030d19242f3a44505b66707d8992867b6e61594f42382e23170b02000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000000000000000001070c10131418181818181818181818181818181818181818181818181818181818181818181818181714110c0600000000000000000000000000000000000000000000000000040a0f151b1d23292c2d2e34383a3b3d3e3f40403f3e3d3b3a38342e2d2a251f1a150d07010000000000000000000000000000000000020d17202a343c464e575e656c71797e8286898b8c8d8d8c8b8885817f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7e7164574b3e3124180b00000000000000000000000001070c1013141818181818181818181818181818181717171616141312100c060807050200000000000000000000000000000000000000000916222f3b4854606b707272706c6155493c3023160a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000616222f3c4955626f7c8895897d70635b514b4a4a4b4f5456585650483f31271d120700000000000000000000000000000000000001080d111314181c1f2021222221201f1c1715130f0a0400000307090913130e0d0b070300000000000000000000020a12191f2326272d2d292825211b140c030000000000000000000b1825313e4a57626d727d848c929089837d78726f6a69676665656566666d7178808d929083796d60564c41362a170d0300000000000000000000000000000000000000000001070c10131417171615130f0a0400000000000000000000000000000000000000000000000000000000000007101a242d374049525a626a6f7a81899095908b8683807d7b7a79797a7b7c7f82858a8f93918b837c726d605c544b433930261c1106000000000000000000000814212e3b4754616e7a8793867a6d6053473a2d20140700000000000000000000000007121d27313946535e69737f8c9285879084776a5d5144372a1e1100000814212e3a47535f696e73767878787774716d67605c544d453c342a22180e0400000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8b7e71727b828a918f8a85817e7b79777778787b7e81868c92908780786d685d564c433a2f24180f05000000000000000000000000000000000a15202a36414c56606d7883908f82756b60544a3f31281d0f0500000008131e28333f4a54606b75828f8e81756b60544a3f34281e1308000000000814212e3b4754616e7a8794897c6f6356493c302316090000000000000000000000000000000000000000000000000000000406070b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0a08050000000000000000000000000000000000000000000000000000000000040a0f12181c1f2023282c2d2f30323233333232312e2d2b2823211e1a140f0a030000000000000000000000000000000000000000050e18222a343c454d535b60666d71767a7c7f808080807e7c7974727272727272727272727272727272716c6155493d3024170a0000000000000000000000000000000406070b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0a0a0a090807060300000000000000000000000000000000000000000000000000000713202c38444f596063656564615a5044392d2014080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000815222e3b4754606a7784919082766d605c5456575859606365625a5043392f23180c0000000000000000000000000000000001070d13191d202123282c2d2e2f2e2e2d2b2822221f1b15100b0b0f13151620201a1a17130e080100000000000000010a141c242b2f333439393534312c261e150c0200000000000000000916222e3a46515b626b70797f868d929089847f7b787674727271727375797e838d9291857b6e675c51443a30251906000000000000000000000000000000000000000000000000000406070a0a0908060300000000000000000000000000000000000000000000000000000000000000030d19222c363f49525b636c717c858e93918a837f7a7673706f6e6d6d6d6e6f7275797d82878f9490877f746d665c554b42382e23170f060000000000000000000814212e3b4754616e7a8793867a6d6053473a2d2014070000000000000000000000000c18232f39434f59616e7b86928a7d859084776a5d5144372a1e1100000815222f3b4855626e7b7f8284858583817e79726d665f574e463c342a20160c02000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8c7f797f86909088827d7975716e6c656a6b696e71757a808690938c827a6d685d554b40352921170d030000000000000000000000000000030f1b26323946525e68727f8b92867b6e62594f42382d1f160c00000000010b17222d38424f59616e7b8692897d70665c50443a3024190d040000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001070c101314181c1f2022242525262626252422201f1c1714120e09030000000000000000000000000000000000000000000000061019222a333b414950545c6064686d707273747473716f6c6665656565656565656565656565656564615a5045392d211508000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003101b27323d474f54565959575550473e33281c100400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006131f2b37434e5864717e8a948c7f736d6664636365676b6f716c62554b4034291c10040000000000000000000000000000040c13181e24292c2d2e34383a3b3b3b3a3938332d2e2b27201c17161b2022232d2d2726231f19120b0200000000000008121c262e363b3f40464642413d3730271e1409000000000000000006121e29353f49515961676d737a80868c91918c888582807f7e7e7f8082858a90938e847b6e695e554b4032291e130800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010b151f2b343e48515b636e737e8691928d847d77726d6866636261606061626365666c70757b828a92928b80786d675c544a3f342822180c0300000000000000000814212e3b4754616e7a8793867a6d6053473a2d201407000000000000000000000004101c2934404b55616b75828f8f8278859084776a5d5144372a1e110004111d2a3744505d6a77838c8f919291908e8a857f786e695f584e463c32281e1308000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8e81828c928a827c76706d666461605b53575e6164686d737b828e938f837a6d675d51453f33291f1409000000000000000000000000000006131f2b37434e58616d7a85928d8074695f53473d2f261c0d04000000000006111c262f3d46535f6973808d9083786d60564c41352920150a0000000814212e3b4754616e7a8794897c6f6356493c302316090000000000000106090b0c13131313131313131313131313131313131313131313131313131313131313100f0d0a05000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000406070c101313151718191919191817151312100b060502000000000000000000000000000000000000000000000000000007101921292f383f444b5153565d606365666767666462605b545858585858585858585858585858575550483e34281d11050000000000000000000000000000000000000000000000000000000000000000000000000002050708131313130603000000000000000000000000000000000000000000000b16212b353d4448494c4c4a49443e352c22170b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030f1b27323c4653606c77828f93888079747170707174777c7e71675c5145382c1f130600000000000000000000000000070d161d24292f35393a3e4045464848484746443f3c3b37322d282221272c2f3039393433302b241d140b0100000000020e19242e3840474c4d53534f4d49423930261b100400000000000000010d18232d373f474f555d60686e737a7f84898d91918f8d8c8b8b8c8d8f92928e89817a6e695f574d43392f20170d020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007121d27313c46505a626d73808b9292878079706b65605d565755545353545556545b6063696e767e8590928d82796d665c50443f342a1e150b00000000000000000814212e3b4754616e7a8793867a6d6053473a2d20140700000000000000000000030d1a232c3845515c67707d8a92877c79869084776a5d5144372a1e1100010d1a2734404d5a6773808d8c8a89898b8e92928c837b6f6a5f584e443a3025190d040000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d938e8f8f857e766f6a64605c54555350494d5254565e61696e78818d929083796d605b51453b31251a0e04000000000000000000000000000815212e3b47535f6a74818d92857a6d61574d42352b1d140a000000000000000a141d2a36424d57606d7a85918b7f72685d52463c31261b0f0300000814212e3b4754616e7a8794897c6f6356493c302316090000000000070d12161819202020202020202020202020202020202020202020202020202020202020201d1c1a16110a03000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040607080a0b0c0d0d0c0b0a0807060300000000000000000000000000000000000000000000000000000000000000070f171d262d33394045464c52545658595a5a59585553504a4c4c4c4c4c4c4c4c4c4c4c4c4c4c4b49453e362c22170c00000000000000000000000000000000000000000000000000000000000000000000000003090e1214152020202012100c060000000000000000000000000000000000000000040f19232b32383b3d3f3f3d3c39332c231a100500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a151f2b3744505b656e7a8490938d85807e7d7d7e81848985796d6053473a2d2014070000000000000000000000000710191f282f353a4145474b4b51535455555453504a4947433d39332a2b32383b3c4646413f3c362f261d12080000000007131f2b36404a52585a60605c59544b42372c211509000000000000000007111b252d353e434b51565e61686d72777c808487898b8c8d8d8d8c8b8885817c746d685f574d453b31271d0e0500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c18232f39434e58616c727f8b9291867d736d67615954524c4a484746464748494a5053575f616c717b838f948f81786d605b51463c30271c1207000000000000000814212e3b4754616e7a8793867a6d6053473a2d201407000000000000000000010b151f2a36424d57606d7984918d80747a869084776a5d5144372a1e1100000a1623303d495663707d837f7d7c7c7e81858c9290857c6f6a5f564c4135291f160c0100000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d9a928d827a716c62605853514b4846443f4246484c52575f666d74808d938e81756d62574d42362a21160a0000000000000000000000000815212d3945505a626f7c87938c7f72685d52453c3123190b0200000000000000020b1a26313b45515d67717e8b92857a6d61584e43372b1f120600000814212e3b4754616e7a8794897c6f6356493c30231609000000010a11181e2225262d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2a2926221c150d040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050b141b22272e34383a414547494c4d4d4d4d4b4946443f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3e3d39342c241a10060000000000000000000000000000000000000000000000000000000000000000000000050d141a1e21212d2d2d2d1f1c17110a030000000000000000000000000000000000000007111921272c2f30323231302d28221a1108000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030f1b27333f49535e686e7b838b91918d8b898a8b8d91908a7d7164574a3e3124170b0000000000000000000000071019222b313a41454c525458545c6061626161605b5456544e49443e36353d44484953534d4c4740382f24190e030000000b17232f3b47525c64676c6c68655d54493d3125190c00000000000000000009131b232c313940454c52565e61666a6f74777a7d7e808081807f7e7b79746f6a615e564d453c33291f150b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004101c2934404b55606a717e889391847c706b605d554f4745413d3c3b3a3a3a3b3c3f44464d535a61696e7a828f938e81746d62584e42392e23180c010000000000000814212e3b4754616e7a8793867a6d6053473a2d20140700000000000000000007121d27313946535f69737f8c92857a6d7a879084776a5d5144372a1e1100000916222f3c4854606b707672706f707174797f869292857c6f685e52463f31281e130800000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d948d80786e68615a544e4645403b393733363a3b41464d545c606c77818e938b7f72695e53463d32271b0f0300000000000000000000000a1723303d4955616c7683909184796d60564c41332a1f110700000000000000000009141f2935414c55606c7883908d80746a5f53473a2e21150800000814212e3b4754616e7a8794897c6f6356493c302316090000000a131b23292e3132393939393939393939393939393939393939393939393939393939393939393635322d271f160d0300000000000000000205070813131313131313131313131313131313131211100e0c0a070604010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020a11171d23282c2f35393a3d3f404141403e3c3938332d3232323232323232323232323231302d28221a12090000000000000000000000000000000000000000000000000000000000000000000000050f171f252a2d2e393939392c28231c150c0300000000000000000000000000000000000000070f161b20222326262423201c17100800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b17222d38414d565e696e787e84888b8d8e8d8c8a87837f7b6e6154473b2e21140800000000000000000000050f19222b343c434b51565d606468666d6e6e6e6d6c6667626058555046423d474f545660605a58524a40362b1f13070000000d1926333f4c58646e737979756f65594d4134281b0e0200000000000000000109111a1f272f353b41464c525458606267686d70717373747372716f6d66626058524c443c332a21170d0300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050f19232c3845515c676f7c879292857b6f6a6159514b433e39352f2f2e2d2d2e2f2d33383c424750575e686d798290938c7f726a5f544a4034281e13080000000000000814212e3b4754616e7a8793867a6d6053473a2d2014070000000000000000000c18242f3943505a616e7b86928b7e726e7b879084776a5d5144372a1e1100000713202c38444f596063696564626364676d737c859291847a6d615a50433a2f24190d02000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f82756c665e565047433c38342e2d2b272a2d30363c424a515b656d79839092867b6e61594f44382c1f140900000000000000000000000b1824313e4b5764717e8a8a8a7e70665c51443a3021180e00000000000000000000030d19242f3a44505b66707d898a877b6f6255483c2f22150900000814212e3b4754616e7a878a897c6f6356493c30231609000007111b252d353a3e3f4646464646464646464646464646464646464646464646464646464646464643423e3831281f150a00000000000002080e111414202020202020202020202020202020201f1f1e1c1b19161413110d07050200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060b12181c1f24292c2d303233343433312f2d2b2822252525252525252525252525252424211d1710090000000000000000000000000000000000000000000000000000000000000000000000030d17212931363a3b4646464638342e261e150a0000000000000000000000000000000000000000040b101316161919171614100b0500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006111b262f3b444d575e666d71777c7e808181807d7b77736e695e52463a2d201407000000000000000000020d17212b343d464e555d60686d717578797b7b7b7a7976736f6a64615a534d454f5960636c6c67645c52473c3023170b0000010d1a2734404d5a67738086868175685c4f4235291c0f0200000000000000000000080d151d242930363a4146474e5456565e61636566676766666462605c54544e46413a322a21180f0500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b16212b37434e58606d79839192867d6f695f584f454039312c292422212020212222282b31373e454d565d676d7a849192867c6e665c51443a2f24190d0200000000000814212e3b4754616e7a8793867a6d6053473a2d201407000000000000000004101d2935404b55616c75828f9083786c6e7b889084776a5d5144372a1e11000004101c27333d474f54565c59575656555c606a6f7c85928f82766c62554c4135291e1308000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685b544c443e37322c2823201f1b1e20252a30394049535c676f7c87928e81756b6054483b31251a0e02000000000000000000000a1623303d495663707d7e7e7d706c61544a4032281e0f06000000000000000000000008131e28333f4a54606b707d7e7e7c6f6255493c2f22160900000714202d3a4753606d797e7e7e7a6d6154473a2e21140700010d18232d373f464a4c53535353535353535353535353535353535353535353535353535353535353504e4a433a31271c110500000000050d14191e20212d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2c2c2b2a2927262320201d1814120e090300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070c1013191d20212325262727262522201f1c1719191919191919191919191919181715110c0600000000000000000000000000000000000000000000000000000000000000000000000009141f29333b42464853535353443f3830261c11060000000000000000000000000000000000000000000307090a0c0c0a0a08040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a141d29323b454d545c60656a6f7173747473716e6966615e564d42362a1e110500000000000000000009141f29333d474f5860676d737a7e828486878888878583807c77706c615f575054606b6f7979746e64584c3f33261a0d0000010d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000030b12181e252a3036393d4347494c52545658595a5a5a59585553504a47433d36302920180f06000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004101c27323b4754606a74808d948b7e716b60574e463e352f27201d19151413131415171c1f262b333b434c555e686e7c86929083786d60564c4135291e130800000000000814212e3b4754616e7a8793867a6d6053473a2d20140700000000000000040d1a242c3845515d67707d8a93897d70666f7c899084776a5d5144372a1e110000000b16212b353d444849504c4a49494b51585f6a707d88938b7e71675d51453a3025190d000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4a423b322b271f1c1813120f1214191e272e38414b555f6a73808d93897c6f63574d42362a1e1205000000000000000000000916222f3b4854606b707171706c615a5042392e20160c000000000000000000000000010b17222d38424f59616b7071716f6a5f53473b2e211508000006131f2c3845515c676d7171716d685e5246392d2013070006121e29353f49515759606060606060606060606060606060606060606060606060606060606060605d5a544c43382d22160a000000050e171e252a2d2e39393939393939393939393939393939393837363432302d2c2924211e1a140f0b060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004080d11131416191a1a1a1a181613120f0b060c0c0c0c0c0c0c0c0c0c0c0c0b0a080500000000000000000000000000000000000000000000000000000000000000000000000000020e1a25313b454d535f6060605f504a42382e23170c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020b172029333b424a5053585f62656767676664615e5754524d443b3025190e020000000000000000020e1a25303b454f59606a6f7980858b8e91939291909192908d89837d766e69615a56636f7d86868074675a4d4134271a0e0000010d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000000000000001070c14191e252a2d32373b3c414647494b4d4d4e4d4c4b4846443f3837322a251e170e060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000713202c38444f59626f7c87938f82756c62594f453c3429241d15110d0808070707060b0f151a2129313a434c565f6a727f8c958c7f72685d52453a3025190d01000000000814212e3b4754616e7a8793867a6d6053473a2d201407000000000000010c161f2b37424d57606d7984918e81756b63707c899084776a5d5144372a1e11000000050f19232b33383c3d433f3d3c3d40454e58606b73808d92857a6d60564c4135291d12070000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f422f29201b15100c07050305080c151c262f39434e58616d7a86928f8275695e53463a2d211409000000000000000000000713202c38444f596063646464615a50483e30271c0e040000000000000000000000000006111c262f3d474f5961636464625f584e43372b1f1306000004101c2934404b555c60646464615e564c41362a1d1105000916222e3a46515b62656c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c69665e544a3e32261a0d0000020d1720293036393b4646464646464646464646464646464646454443413f3d3a39352f2d2b261f1b17110a0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010406070a0c0d0e0e0d0b090606030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005121e2a36424d575e6c6c6c6c6c5c544a3f34281c100300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050e17212930383f44464e5355585a5b5a595754524d4746423b32291f140900000000000000000005121e2a36424d57606b6f7c848d92928e8a868584848486888c90908a827b716c605b63707d8a8d8074675a4d4134271a0e0000010d1a2734404d5a6773808d8f8275685c4f4235291c0f02000000000000000000000000000002080e13191d20272b2e3035393a3d3e404041403f3e3c3a38342e2b272019130c05000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000916222f3b4854606b76828f92857b6e615a50473d332a2218120b04010000000000000003090f171f28313a444e57606d78839092857a6d60564c41362a1d1105000000000814212e3b4754616e7a8793867a6d6053473a2d20140700000000000007121d28313947535f6973808c92867b6e6163707d8a9084776a5d5144372a1e110000000007111921272c2f303632312f2f343c464f59606d7984918c8073685e5246392e23180c0000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f423529170e0a04000000000000030b141d27303c46525e6873808d92877b6e6154483b30251a0e0200000000000000000004101c27323d474f54565757575550483e362c1e150b0000000000000000000000000000000a141d2b353e474f5557575755534e463c32261b0f030000000c18232f39434b515357575754524c443a3025190d01000b1825313e4a57626d72797979797979797979797979797979797979797979797979797979797979797670665a4e4235291c0f000008141e29323b414653535353535353535353535353535353535252514f4e4c494745403b3a37312b27221b140b07010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a46535e697679797976665c5044382c1f12060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050f171e262e34383c4347484b4d4e4e4d4a4846423b3a36302920170d020000000000000000000714202d3a46525e696f7d8691938f86817d7a78777778797c7f8489908f867e736c6664717d8a8d8074675a4d4134271a0e0000010d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000000000002080d11161b1f2225292d2e30323334343333312f2d2c28231c1b160d08020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006131f2b37434e5863707d89948c7f72695e52483f352b21181007010000000000000000000000050d161f29323c44505c666f7c88948c8073685e5246392d20160a000000000814212e3b4754616e7a8793867a6d6053473a2d2014070000000000010d18242f3943505a616e7b86928c8073695e63707d8a9084776a5d5144372a1e110000000000070f161c202223292624232329343d45515c66707d8a92857a6d61554b4034281c100400000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f000000000000000000020b151e2a36414c56616e7b88948d807366574d42362a1e1105000000000000000000000b16212b353d4448494b4b4a49443e362c241a0c03000000000000000000000000000000020b19232c353e44484a4b4b4947433c342a20150a0000000007121d2731394045474b4b4b4746413a32281e130800000c1926323f4c5965727f868686868686868686868686868686868686868686868686868686868686868276695d5043362a1d1000020e1925303b444c525f6060606060606060606060606060605f5f5e5d5c5a595653514b4846423c37332d261d18130c0400000000000000000000000000000000000000000000000000000000000000000000000000000004060707080807070603000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000815212e3b4854616e7b868686786d6053463a2d201307000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050c151c23282c31373a3c3e404141403e3b3a36302d2a251f170e050000000000000000000713202c38444f59616e7b8592928d817b74706d676b6a666d6f72777d838c928a80786d67717e8b8d8074675a4d4134271a0e0000010d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000000000000000000000000001050a0f1315191d2021232526272727262522201f1c17110f0a040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000815222e3b4754606a7683909285796d60574d42362d23190f060000000000000000000000000000040d172028343f4a54606a75828f92867a6d6154473d32271b0f030000000814212e3b4754616e7a8793867a6d6053473a2d201407000000000004101d2935404b55616c76828f9184796d605764707d8a9084776a5d5144372a1e11000000000000050b101316161d19171618222834404b54616b76828f8d8073675c5145382c1f140900000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f02000000000000000000030c1925303a46535f69768390908477695e52463a2d20140700000000000000000000050f19232b32383b3d3e3e3d3c39332c241a1108000000000000000000000000000000000007111a232c33383c3d3e3e3c3b37322a22180e0400000000010b151f272f34383a3e3e3e3a3936302820160c0200000c1926323f4c5965727f8c9292929292929292929292929292999993929292929292929292929292908376695d5043362a1d100005111e2a36414c565e6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6b6a69676563605d5555534d46443f382f29241d160d06000000000000000000000000000000000000000000000000000000000000000000020608070c101313141515141312100c0606040000000000000102060600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000815212e3b4854616e7b879386796d6053463a2d20130700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030a11171c1f262b2e2f3234343433312e2d2a25201e19140d05000000000000000000000916222f3b4854606b75828f938d80756e6964605d55545c6062656b70787f87918d81796d727e8b8d8074675a4d4134271a0e0000010d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000000000000000000000306080d11131416181a1a1b1a1918151312100c06000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004101c2834404b55626f7c89948c7f72675d51453b30241b100700000000000000000000000000000000050e17232e38424e58626f7c89948c7f7266594f43382c1f13070000000814212e3b4754616e7a8793867a6d6053473a2d20140700000000040d1a242c3945515d67717e8a948a7e71675d5764717d8a9084776a5d5144372a1e1100000000000000000407090a100c0a071018232e39424f5963707d899285796d6053463b30251a0e02000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000008131e2a36424d5765727f8b95877b6e6154473b2e211408000000000000000000000007111921272c2f30313131302d28221a12080000000000000000000000000000000000000008111a21282c2f3031312f2e2b2620181006000000000000030d151d23292c2d3131312e2d2a251e160e050000000c1925323f4c5865727f868686868686868686868686868687929387868686868686868686868686868276695c504336291d10000714202d3946525e687679797979797979797979797979797979797877767472706d6766615f57535049413d352f281f18100800000000000000000000000000000000000000000000000000000000000003090e121415181c1f2021222221201f1c171413100c070103080c0e0e131308070502000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000815212e3b4854616e7b879386796d6053463a2d201307000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060c10151b1f212225272827262421201e1a14110e09020000000000000000000005111d2a36414c5663707d89948e81776c615e5753514b4a5053555960666c727c84908f8279727f8c8d8074675a4d4134271a0e0000010d1a2734404d5a6773808d8f8275685c4f4235291c0f02000000000000000000000000000000000000000000000000010507070a0b0d0d0e0d0c0b090706030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006131f2c3845515c6774818d92857a6d60554b4033291f120900000000000000000000000000000000000006111c26303c4854606a7683909184776b6054483b2f2215090000000814212e3b4754616e7a8793867a6d6053473a2d201407000000010c161f2b37424d57606d7984918f82766c61555764717d8a9084776a5d5144372a1e110000000000000000000000000300000007121d27303e4854606b7683908a7e7164574d42362a1e1105000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000000000020e1a26313c4855626f7b88978b7e7164584b3e31251807000000000000000000000000070f161c20222324242423201c1710080000000000000000000000000000000000000000000810161c202324242422211f1b150e060000000000000000030b12181c1f2024242421201d19130c05000000000b1825313e4a56626d7279797979797979797979797979797f8b8f82797979797979797979797979797670665a4e4235281c0f000814212e3b4754616e7a8686868686868686868686868686868685858482817f7c7a76736e6964605b534f45403a312a221a1208000000000000000000000000000000000000000000000000000000060b10151a1e212223282c2d2e2e2e2e2d2c2823201f1d18120e0f14181a1b20201414110e080200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000815212e3b4854616e7b879386796d6053463a2d2013070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030a0f121515181a1b1b1a171514120e0905020000000000000000000000000713202d3946525e6875828f92867b6e655b534d4745403f4446494f545b606a6f7b83908f8279808c8d8074675a4d4134271a0e0000010d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000713202d3a4653606d7985928e8174675d5143392f21170d00000000000000000000000000000000000000000a141e2c38434e5865717e8b96897c6f6356493c31261a0e0200000814212e3b4754616e7a8793867a6d6053473a2d20140700000007131d28313a47535f6973808d92877b6e625a505764717e8a9084776a5d5144372a1e1100000000000000000000000000000000000b151e2c38444f5964717e8a8f8276695e52463a2d201509000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000000000000915212e3a47535f6a7885928d8174675a4e412f24180c00000000000000000000000000050b101316161818171614100b050000000000000000000000000000000000000000000000050b1014161718181615130f0a040000000000000000000001070c1013141818181413110d080200000000000916222e3a46515b62656c6c6c6c6c6c6c6c6c6c6c6c6c727f8b8f83766c6c6c6c6c6c6c6c6c6c6c6c69665e54493e3226190d000814212e3b4754616e7a879399929292929292929292929292929291908f8d8c8986837f7b76706c656059514b433c342c241a1108000000000000000000000000000000000000000000000000020a11171c1f262b2e2f2e34383a3a3b3b3a3a38342e2d2c29241d1a1a202427282d2d21201e19140d05000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000815212e3b4854616e7b879386796d6053463a2d20130700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030608090b0d0e0e0d0b080705020000000000000000000000000000000714212e3a4754616d7a86928d8073685e5349423b393534383a3d424a505860696e7a82908f82808d8d8074675a4d4134271a0e0000010d1a2734404d5a6773808d8f8275685c4f4235291c0f02000000000000000000000000000000000000000000000000040607131313100f0d09050000000000000000000000000000000000000000000000000003060712131311100e0a050000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1724313e4a5764717e8a978a7d7063554c4131271d0f050000000000000000000000000000000000000000020c1b27323d4754606d7a86928e817467574d42372b1e120600000814212e3b4754616e7a8793867a6d6053473a2d2014070000010d18242f3a43505a626e7b86928d80736a5f534b5864717e8b9084776a5d5144372a1e110000000000000000000000000000000000030c1b27323d4653606d798592877b6e6154473c31261a0e020000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f02000000000000000000000006121f2b37434e586975828f8f837669554b4035291d100400000000000000000000000000000407090a0b0b0a0a08040000000000000000000000000000000000000000000000000000000407090a0b0b090806030000000000000000000000000000000406070b0b0b070705010000000000000006121e29343f495156585f5f5f5f5f5f5f5f5f5f5f5f65727f8b8f8376695f5f5f5f5f5f5f5f5f5f5f5c5a544c42382d211509000814212e3b4754616e7a879492868686868686868686868686868788898b8d8f9292908c88837d78706b605d554e463e362c241a110800000000000000000000000000000000000000000000060c141c23282b31373a3b3f4045464748484746443f3e3a39352f2a25252b30343539392e2d2a251e170e050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000815212e3b4854616e7b879386796d6053463a2d2013070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1825313e4b5864717e8b95887b6e61564d4138312c29282c2d2f383f444e575e686d7983908f86928d8074675a4d4134271a0e0000010d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000000000000000000000000000000001070c1013142020201c1c1915100a02000000000000000000000000000000000000000000060b1012131f20201d1d1a16110b0300000000000000000000000000000000000000000000000000000000000000000000000000000005121e2a36424d576875818e9285796d6053463a2f20150b000000000000000000000000000000000000000000000a16202c3945525d6875828f918578695f53473a2e21140800000814212e3b4754616e7a8793867a6d6053473a2d201407000004111d2935404b55616c76828f9184796d60574e4b5865717e8b9084776a5d5144372a1e110000000000000000000000000000000000000b161f2c3845515c6774808d8c7f7265574d42372b1e12060000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000030f1a2631414d5a6774808d918478675d5145382c1f1306000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010d18232d373f464a4c53535353535353535353535865727f8b8f8376695c53535353535353535353504e49423a30261b1005000814212e3b4754616e7a8794897d79797979797979797979797a7a7b7c7e808385898e9294908a837d756d675f5850483e362c231a100600000000000000000000000000000000000000020a11171e262e34383c4247484c4b51535455555453504a4a47454039363028373c404146463b3936302920170d0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000815212e3b4854616e7b879386796d6053463a2d201307000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003101c28343f4a546874818e918477695f53443b2f26201d1c1f20262d333d454d565d676d7a839092998d8074675a4d4134271a0e0000010d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000000000000000000030b12181d1f202c2d2d292825211b140c04000000000000000000000000000000000000020a11171c1f202c2d2d2a2926221c150d0500000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a46535f697884918e8174665c5044382c1f12030000000000000000000000000000000000000000000004111d2935414c5664717e8b97887b6e6255483b2f22150700000814212e3b4754616e7a8793867a6d6053473a2d20140700040d1a242c3945515d67717e8a948a7d70675d51454b5865717e8b9084776a5d5144372a1e1100000000000000000000000000000000000004101c2834404b5563707d89908377695f53473a2e21150a0000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000a1925323f4c5865727f8b96867a6d6053473a2d2014070000000000000000000000000000000000000000000306070706040000000000000000000000000000000000000000000000000000000003060708080808070604000000000000000000000000000000000000000000000000000000000007111b252d343a3e3f464646464646464646464c5865727f8b8f8376695c5046464646464646464643423e3830281e140a00000814212e3b4754616e7a8794897c6f6c6c6c6c6c6c6c6c6c676d6e6e6f717476797d81858b9195908981796f6a615a50483e352c22180c030000000000000000000000000000000000030c141c232830383f44464e535559545c6061616161605c545753514b46423b3441484d4e53535346413b32291e140800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000815212e3b4854616e7b879386796d6053463a2d201307000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006121f2b3844505c667784908d807367574d4232291d14101012141c2228333b444c555d686e7a8491978d8074675a4d4134271a0e0000010d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000000000000000000000000000030d151d24292c2d3939393635322d261e160c0000000000000000000000000000000000020c141c23282b2d3939393736332d271f170d00000000000000000000000000000000000000000000000000000000000000000000000000000815222e3b4855616e7b88968b7e7265544a3f34281c100300000000000000000000000000000000000000000000010d19242f3b4855626e7b88978b7e7165584b3e2e23180c00000814212e3b4754616e7a8793867a6d6053473a2d201407010c161f2b37434e58606d7984918f82756c61554b404b5865727e8b9084776a5d5144372a1e11000000000000000000000000000000000000000c18232e3a4653606d798592887b6e6255483c32261b0f0000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000a1724313d4a5764707d8a94877a6e6154473b2e21140800000000000000000000000000000000000000060c1012131312100c07000000000000000000000000000000000000000000000406060b101213141515141413100c070705010000000000000000000000000000000000000000000000000009131b23292e31323939393939393939393f4c5865727f8b8f8376695c504339393939393939393635322d261e160c0300000814212e3b4754616e7a8794897c6f635f5f5f5f5f5f5f555d606162626467666d7074797e848c92938e847c716c615a50473e342a1e150b00000000000000000000000000000000030c151e262e343d424a5053575f626668666d6d6e6e6d6d666864605d55524d443f4b53595b60605f524c443b3025190e02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000815212e3b4854616e7b879386796d6053463a2d20130700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000713202d3a4653606d7986928b7e7164584b3e3125170b0403060a11172129323a434c565e686e7b85928d8074675a4d4134271a0e0000010d1a2734404d5a6773808d8f8275685c4f4235291c0f02000000000000000000000000000000000000010b151f272f35393a46464643413e3830281e0c03000000000000000000000000000000000a141e262e34383a45464644423e3931291f0d04000000000000000000000000000000000000000000000000000000000000000000000000000b1825323e4b5865717e8b97887b6f6255483c2e23170c0000000000000000000000000000000000000000000000000814212e3a47535f697885928e817568544a4034281c1004000814212e3b4754616e7a8793867a6d6053473a2d20140708131e28313a47535f6a73808d92867b6e615a50433f4b5865727e8b9084776a5d5144372a1e110000000000000000000000000000000000000007121f2c3844505c6675818e8c7f7366584e43372b1b110600000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000a1723303d4a5663707d8994887b6e6155483b2e2215080000000000000000000000000000000000030a11171c1f20201f1c18120b03000000000000000000000000000000000001070c101314171c1f2021222221201f1c181413110d08020000000000000000000000000000000000000000000000010911181e2225252c2c2c2c2c2c2c2c323f4c5865727f8b8f8376695c5043362c2c2c2c2c2c2c292826211b140c040000000814212e3b4754616e7a8794897c6f63565353535353534b515354555658545c6063666d71797f85909591867e716c61594f463c30271d12070000000000000000000000000000030c151e2730383f444f545c60646a6e727578797a7b7b7a797774716d67615e57504a535d64686c6c6c5e564c41362a1e1105000000000000000000000000000000000000000000000000000000000000000000000000000000040404040404040404040404040404040404040815212e3b4854616e7b879386796d6053463a2d20130700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000815212e3b4854616e7b8799897c6f6256493c2f23160900000000060f172028313a434c565f6a75828e8d8074675a4d4134271a0e0000010d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000000000000000000000000007121d2731394045475353534f4e49423a301e150b00000000000000000000000000000006111c2630383f4446525353504f4a433b311f160c010000000000000000000000000000000000000000000000000000000000000000000000010e1b2834414e5b6774818e9285796c605346392d20130600000000000000000000000000000000000000000000000006121e2b37424d576875828f918477665c5144382c1f1206000814212e3b4754616e7a8793867a6d6053473a2d2014070b19242f3a43505a626f7c87928c8073695f53483e3f4b5865727e8b9084776a5d5144372a1e110000000000000000000000000000000000000003101c28343f4a5464717d8a9184776a5f5447382d22170b00000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f02000000000000000000000000091623303c4956636f7c8995887c6f6255493c2f22160900000000000000000000000000000000030c151c23282c2d2d2c28231c150c07000000000000000000000000000002080d12181d1f2023282b2d2e2e2f2e2d2c292321201d19130f0a040000000000000000000000000000000000000000000000070d121618192020202020202025323f4c5865727f8b8f8376695c504336292020202020201d1c1915100a03000000000814212e3b4754616e7a8794897c6f63564946464646464045474748494b4a5053545c60676d727b838e9392877e706b61584e42392e23180c04000000000000000000000000000a151e273039424a505960666d71777b7f828486878888878684817d79746e69605c5459646f74797976685e5246392d201407000000000000000000000000000000000000000000000000000000000000000000000004080a0a111111111111111111111111111111111111111115212e3b4854616e7b879386796d6053463a2d20130e0d0b0803000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000916232f3c4956626f7c899a877a6d6054473a2d2114070000000000050d161f28313b444e576875828e8d8074675a4d4134271a0e0000010d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000000000000000c18242f39434b51535f60605c5a544c4230271d120700000000000000000000000000000b17232e38424a50535f60605d5b554d4331281d1207000000000000000000000000000000000000000000000000000000000000000000000004101c2834404b556976838f908376665b5044382b1f1206000000000000000000000000000000000000000000000000020e1a2631404d596673808c9286796d6053463a2d201307000814212e3b4754616e7a8793867a6d6053473a2d20140a141d2935414c55616c76828f9184796d60574d42363f4b5865727e8b9084776a5d5144372a1e11000000000000000000000000000000000000000713202c38444f5965727f8b96887c6f6253493f33271b0f03000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000916222f3c4955626f7c8895897c6f6256493c2f231609000000000000000000000000000000000a151e262e34383a3a38342e271e191007000000000000000000000000040c13191d24292c2d2e34383a3b3b3b3b3a38342f2e2d2a251e1b150e0902000000000000000000000000000000000000000000000106090b0c1313131313131925323f4c5865727f8b8f8376695c504336291d1313131313100f0d09050000000000000814212e3b4754616e7a8794897c6f6356493c3939392f35393a3b3b3c3e3f44464a50555c60696e79818d9292877d706a5f544b40342820150a00000000000000000000000006111c263039424b545c606b70787e83888c8f91929291909192908e8a85807b736d665f5868748186867a6e6154473b2e211408000000000000000000000000000000000000000000000000000000000000000000050b101416171e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e212e3b4854616e7b879386796d6053463a2d201e1b1a18140f080100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1724303d4a5763707d8a9386796c605346392d201306000000000000040d161f2932424f5b6875828e8d8074675a4d4134271a0e0000010d1a2734404d5a6773808d8f8275685c4f4235291c0f02000000000000000000000000000000000004101d2935404b555d6a6c6c6c69665e5443392e23180c0000000000000000000000000003101c28343f4a545c606c6c6c6a665f5543392f24180d010000000000000000000000000000000000000000000000000000000000000000000006131f2c3845515c677884918e817468544a3f33281c0f0300000000000000000000000000000000000000000000000000091825313e4b5864717e8b99887b6e6155483b2e221508000814212e3b4754616e7a8793867a6d6053473a2d2014111b262f3845515d67717e8a938a7d70675c51453b313f4b5865727e8b9084776a5d5144372a1e11000000000000000000000000000000000000000916222f3b4854606b7784919a8d8073655b5044372b1f1207000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f02000000000000000000000000091623303c4956636f7c8995887c6f6255493c2f22160900000000000000000000000000000006111c2630383f444646444039302b22190f0400000000000000000001070e161e24292f35383a3e3f4446474848474745403e3a3936302b27201a140d05000000000000000000000000000000000000000000000000000006060606060c1925323f4c5865727f8b8f8376695c504336291d100606060603020000000000000000000814212e3b4754616e7a8794897c6f6356493c302c2c24292c2d2e2f2f2e34383a3f444b51575f676d74808d9392867c6f665c51453c32261b0f0400000000000000000000040d17232e38424b545c666d737d838b9095908c89868584848485888b90928d867f786f6a606975828f877a6e6154473b2e21140800000000000000000000000000000000000000000000000000000000000000000810171c2023242a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2e3b4854616e7b879386796d6053463a2d2a2a282724201a130b02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1724313e4a5764717d8a928579655b5044372b1f120500000000000000040d172835424f5b6875828e8d8074675a4d4134271a0e0000010d1a2734404d5a6773808d8f8275685c4f4235291c0f02000000000000000000000000000000000006131f2c3945515d6775797979767066554b4034281c100400000000000000000000000006121f2b3844505c666d787979777166554b4035291d1004000000000000000000000000000000000000000000000000000000000000000000000713202d3a4653606d7986938c807366594d402d22170b0000000000000000000000000000000000000000000000000000091623303c4956636f7c8996897d7063564a3d3023170a000814212e3b4754616e7a8793867a6d6053473a2d201417222d38414e58606d7a84918f82756b61554b4033323f4b5865727e8b9084776a5d5144372a1e1100000000000000000000000000000000000005111d2a36414c5663707c8995989184786c605346392e23180c000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000a1623303d495663707c8995887b6e6255483b2f2215080000000000000000000000000000000c17232e38424a505353514a423d342b21160a0000000000000000040c131820283035394045474a4a50535455555453514b4b4746413a37322a251f170e080000000000000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b8f8376695c504336291d100300000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c302320181d1f2021222323282b2e343940454d555d606c77818e949083796d60584e43372b20150a000000000000000000010c161f28343f4a545c666d78808890959089847f7c7a78777778797b7f83878e928c837c736c65768390877a6e6154473b2e2114080000000000000000000000000000000000000000000000000000000000000008111a22282d303137373737373737373737373737373737373737373737373b4854616e7b879386796d6053463a3737373433302b251d140b010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1824313e4b5764717e8a9185786b5e493f33271b0f0300000000000000000f1c2835424f5b6875828e8d8074675a4d4134271a0e0000010d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000000000000000000000000714202d3a4753606d798786868276675c5145382c1f13060000000000000000000000000713202d3a4653606d788586868377675d5145392c201306000000000000000000000000000000000000000000000000000000000000000000000815222f3b4855626e7b88998b7e7164584b3e3125180600000000000000000000000000000000000000000000000000000815212e3b4854616e7b87948b7e7265584b3f3225180c000814212e3b4754616e7a8793867a6d6053473a2d20141b27333f49535f6a74808d92867b6e61594f43392f323f4b5865727e8b9084776a5d5144372a1e110000000000000000000000000000000000000713202d3946525e6875818e918c91897c6f63544a4034281c10040000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000a1724313d4a5764707d8a94877b6e6154483b2e211508000000000000000000000000000003101c28343f4a545c60605c544f473d32271b0f03000000000000050d161d2429323a41454b515357545c6061616261605c555854524c47433d363029201a110a01000000000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b8f8376695c504336291d100300000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160c101314141516171c1f23282e343b434b515b656d78828f958d80736a5f53473c32261b0f02000000000000000007121d28313944505c666d78828d93928b837c77726f6d676a6a666d6f72767b818790908780776d778491877a6e6154473b2e21140800000000000000000000000000000000000000000000000000000000000005101a232c33393c3d4444444444444444444444444444444444444444444444444854616e7b879386796d6053464444444441403c362f261d13080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1824313e4b5764717e8a9184786b5e51452d22170b0000000000000000020f1c2835424f5b6875828e8d8074675a4d4134271a0e0000010d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000000000000000000000000a1623303d495663707c89999286796d6053463a2d2013080000000000000000000000000916232f3c4956626f7c899792867a6d6053473a2d20140600000000000000000000000000000000000000000000000000000000000000000000091623303c4956636f7c8996897d7063564a3d3023170a00000000000000000000000000000000000000000000000000000713202d3a4653606d7986988c7f7366594c403326190d000814212e3b4754616e7a8793867a6d6053473a2d2018222b3744505b656f7c87928c7f72695e53473e3127323f4b5865727e8b9084776a5d5144372a1e110000000000000000000000000000000000030f1b27333f4953616d7a8691847f8c8d8174665c5144382c1f12070000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000c1825323f4b5865727e8b97867a6d6053473a2d20140700000000000000000000000000040e18222c3844505c666d6d6660594f43382c1f13070000000000050e171f282f353f444c52555d606467666d6e6e6e6e6d676864615e56544e46423b332c231b130a010000000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b8f8376695c504336291d100300000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c302316090406070808060b1012171d232831394049535c666e7b859293877c6f62584e43372b1e140800000000000000010d18242f39434f59606d78818f9492877f786f6b6663605c55545c606265696e747c838c928c8179788592877a6e6154473b2e2114080000000000000000000000000000000000000000000000000000000000000b17222c353e44494a5151515151515151515151515151515151515151515151515154616e7b879386796d605351515151514e4c4841382f251a0f0300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1824313e4b5764717e8a9184786b5e5145382b1e060000000000000000020f1c2835424f5b6875828e8d8074675a4d4134271a0e0000010d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000000000000000000000030f1c28333f4a5466737f8c9998897c706356493d2f24190d010000000000000000000004101d2935404b5566737f8c9999897c706356493d2d22170b000000000000000000000000000000000000000000000000000000000000000000000a1723303d4a5663707d8995897c6f6256493c2f231609000000000000000000000000000000000000000000000000000006121f2b3844505c667985928d8073675a4d4034271a0d000814212e3b4754616e7a8793867a6d6053473a2d201d2935414c56606c7883909184796d60574d42352c25323f4b5865727e8b9084776a5d5144372a1e11000000000000000000000000000000000005121f2b3744505b65727f8c8c7f79869285796d6053463a2f24180c0000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000d1a2633404d596673808c928578675d5145382c1f1306000000000000000000000000000a15202a36414c56606d78796f6b6054483b2f22150900000000040d172029313a414550565d60676d717477797a7b7b7a7a7775716d68626058524d453e352d251c130a0000000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b8f8376695c504336291d100300000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c302316090000000000000003060c12181f272f38414a545e69717e8b948f82756a5f54473b3025190d0100000000000004101d2935404b55606b74808d9392857d726c6660595653514b4a505355575f626a6f787f87918e827a8792877a6e6154473b2e211408000000000000000000000000000000000000000000000000000000000004101c28333e475055575d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d616e7b879386796d605d5d5d5d5d5d5b58534a41362b20140800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1824313e4b5764717e8a9184786b5e5145382b1e120500000000000000020f1c2835424f5b6875828e8d8074675a4d4134271a0e0000010d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000000000006121f2b3844505b6676828f92918d807366564c4135291d1104000000000000000000000613202c3945515d6776839090918c7f736653493f33271b0f030000000000000000000000000000000000000000000000000000000000000000000b1724313e4a5764717d8a95887b6f6255483c2f221509000000000000000000000000000000000000000000000000000003101c28343f4a5f6b7885928d8174675a4e4134271b0e000814212e3b4754616e7a8793867a6d6053473a2d20262f3845525d68717e8b93897d70665c51453b312325323f4b5865727e8b9084776a5d5144372a1e1100000000000000000000000000000000000613202d394653606c788491867a75818e8a7d7063554b4035291d100400000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f02000000000000000000000004101d2935404b556875818e9083776a554b4035291d1004000000000000000000000000030f1b26313946525e68727f847d6f6356493c30231609000000010c161f29323b434b515a62686d73797e818486878888878684827e7a756f6a615e574f473f372e251c120900000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b8f8376695c504336291d100300000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000070d151d262f38424d57626c76828f93887c6f62564c41362a1e11050000000000000613202c3945515d67707d889392867c706b605b544f494745403f4446484d53585f666c727c849090849199877a6e6154473b2e21140800000000000000000000000000000000000000000000000000000000000814202d3944505a61646a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6e7b879386796d6a6a6a6a6a6a6a67645c53483c3024180b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1824313e4b5764717e8a9184786b5e5145382b1e120500000000000000020f1c2835424f5b6875828e8d8074675a4d4134271a0e0000010d1a2734404d5a6773808d8f8275685c4f4235291c0f02000000000000000000000000000000000613202d394653606c7985928584908376685d5245392c201306000000000000000000000714202d3a4753606d7a869083848f8276655b5044372b1f12050000000000000000000000000000000000000000000000000000000000000000000b1825313e4b5864717e8b94887b6e6155483b2e2215080000000000000000000000000000000000000000000000000000000b17232e45515e6b7884918e8174685b4e4135281b0e000814212e3b4754616e7a8793867a6d6053473a2d222d38414e58606d7a85928e81756b60544b4033291f25323f4b5865727e8b9084776a5d5144372a1e110000000000000000000000000000000005111e2a36414d5663707d898e8175707d8a8e8175675d5145392c1f130800000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000000000000613202c3945515d677784918e8275685b4f422f24180c0000000000000000000000000006121f2b37434e58616d7a858d8073675a4d4034271a0d00000008131e28313b444d555d606c717a80858a8e91929291909192918e8b86817c756e69615951493f372e241b1007000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b8f8376695c504336291d100300000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c302316090000000000000000000000030b141d26303b45505a63707d89958f8275685e5246392d201409000000000004111d2935414c56606d79849193887e706a6059504a423d3a383434383a3c42474e545b606a6f7a838f919694877a6e6154473b2e21140800000000000000000000000000000000000000000000000000000000000a1623303c4955616c70777777777777777777777777777777777777777777777777777777777b879386787777777777777777746f64584c4033271a0d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1824313e4b5764717e8a9184786b5e5145382b1e120500000000000000020f1c2835424f5b6875828e8d8074675a4d4134271a0e0000010d1a2734404d5a6773808d8f8275685c4f4235291c0f02000000000000000000000000000000000915222f3c4855626f7b888e81808c867a6d6054473a2d211409000000000000000000000a1724303d4a5763707d8a8c7f818e85796c605346392d2013060000000000000000000000000000000000000000000000000000000000000000000c1825323f4b5865727e8b94877a6e6154473b2e211408000000000000000000000000000000000000000000000000000000061e2b3744515e6a7784918e8275685b4f4235281c0f000814212e3b4754616e7a8793867a6d6053473a2d27333f49535f6a74808d92867b6e61594f42392e211725323f4b5865727e8b9084776a5d5144372a1e11000000000000000000000000000000000714202d3946525e6875828f897c6f6d79859285796d6053473a3024190d01000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f0000000000000000000000000714202d3a4753606d7a86938c7f7265594c3f32261907000000000000000000000000040f19232e3a47535f6a74818d857a6d6054473a2d2114070000010d19242f3a434d565e676d757e858d92928d8a878584838485878a8f928e89817b706b625b51493f362d22190d040000000000000000000000000000000000000000000000000c1925323f4c5865727f8b8f8376695c504336291d100300000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c30231609000000000000000000000000020b151e29333e4854606b76839092867a6e6154473b31251a0e02000000000613202c3945525d68727f8c968e81746c61584f443f382f2d2c29282c2d31373c424a505860686e79818e9394877a6e6154473b2e21140800000000000000000000000000000000000000000000000000000000000a1724313d4a5764707d8384848484848484848484848484848484848484848484848484848486929d918484848484848484848174675b4e4134281b0e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1824313e4b5764717e8a9184786b5e5145382b1e120500000000000000020f1c2835424f5b6875828e8d8074675a4d4134271a0e0000010d1a2734404d5a6773808d8f8275685c4f4235291c0f02000000000000000000000000000000000c1825323f4b5865727e8b8c7f7d898a7d7064574a3d30251a0e02000000000000000005111e2a36414d566774808d897c7f8b887b6f6255483c2f2215080000000000000000000000000000000000000000000000000000000000000000000b1825323e4b5865717e8b94877b6e6154483b2e211508000000000000000000000000000000000000000000000000000005111e2b3844515e6b7784918e8275685b4f4235281c0f000814212e3b4754616e7a8793867a6d6053473a2d2b3744505b656f7c87928c7f72695e52473d30271d1825323f4b5865727e8b9084776a5d5144372a1e11000000000000000000000000000000030f1c28333f4a54616e7b869184776b6674818e8a7e7164564c4135291d1104000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f42352919100903000000000000000000030f1b27333f495363707d8a98897c6f6356493c302316090000000000000000000000000b16212c38444f59626f7c878b7e71675d5145392c201306000004111d2935414c565e696e79818b92918b85817d7a78777777787b7e82868d928e857d726d635b51483f342b1f160c0100000000000000000000000000000000000000000000000c1925323f4c5865727f8b8f8376695c504336291d100300000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000030c17212c38444f5964707d8a978b7f7265574d42362a1e1205000000000714212d3a4754606d7a859291857a6d605a50463d332d26201f1c1c1f20262b2f383f444e565e676d78818e94877a6e6154473b2e21140800000000000000000000000000000000000000000000000000000000000b1825313e4b5864717e8b9090909090909090909090909090909090909090909090909090909298a09691909090909090908f8276695c504336291d1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1824313e4b5764717e8a9184786b5e5145382b1e120500000000000000020f1c2835424f5b6875828e8d8074675a4d4134271a0e0000010d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000000000000000000005111e2a36424d576875818e897c79868d817467574d42362a1e110500000000000000000714202d3946525e6877849085787c898b7e7165584b3e3025190d0100000000000000000000000000000000000000000000000000000000000000000b1824313e4b5764717e8a95887b6e6255483b2f221508000000000000000000000000000000000000000000000000000005121f2b3845525e6b7885918e8174675b4e4134281b0e000814212e3b4754616e7a8793867a6d6053473a2d35414c56606c7883909083786d60574d42352b1e151825323f4b5865727e8b9084776a5d5144372a1e1100000000000000000000000000000006121f2b3844505b66737f8c8b7f726563707d898f8275685d5245392c201409000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f42332b221a140c0700000000000000000a121f2b3744505b6574808d9286796d6053473a2d201407000000000000000000000003101b27323b4854606b76828f83786c60554b4135291d110400000613202c3945525d686e7b838f938e857f7974706d686a6a6b696e71757b80879092887f726d635a50463d31281d120700000000000000000000000000000000000000000000000c1925323f4c5865727f8b8f8376695c504336291d100300000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c302316090000000000000000000000000000050f1c27333d4653606d798592908376695e53463a2d21140700000006121f2b37434e5865727f8b978c7f72685d52483e3428221c1413101012131a1d262d333d444c555c666e7b8894877a6e6154473b2e21140800000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a84919d908a8686868686868686868686868686868686868686868686888e968c8786868686868686868276695c504336291d1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1824313e4b5764717e8a9184786b5e5145382b1e120500000000000000020f1c2835424f5b6875828e8d8074675a4d4134271a0e0000010d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000000000714202d3a46525e69788491867a7783908477695e52463a2d20140700000000000000000814212e3b4754616e7a878f827579868e817468564c41362a1e110500000000000000000000000000000000000000000000000000000000000000000a1724313d4a5764707d8a95887c6f6255493c2f221609000000000000000000000000000000000000000000000000000004101d2935404b556c7885928d8074675a4d4134271a0e000814212e3b4754616e7a8793867a6d6053473a2f3846525d68717e8b93897d70665c50453b30231a0c1825323f4b5865727e8b9084776a5d5144372a1e110000000000000000000000000000000613202d394653606c788491867a6d61606d798592867a6d6054473b3025190e020000000000000000000000000000000d1a2734404d5a6773808d8f827568554d453d342a251f18120b06000000000309111c2630394653606c7884918f8275675d5145382c1f130600000000000000000000000713202c38444f5963707d89897c6f655b50433a2f24180d0100000714212d3a4754606d7a8490938c817a726d6764615e565d575e6164696e747c838f938c7f726c62584e43392f24180d04000000000000000000000000000000000000000000000c1925323f4c5865727f8b8f8376695c504336291d100300000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c302316090000000000000000000000000000000b161f2c3845515c6674818e95877b6e6154483b2e2115080000000814212e3a47535f6a7783909285796d60564c41362c2217110a06040306090b141c2228323b434b54616e7b8894877a6e6154473b2e21140800000000000000000000000000000000000000000000000000000000000613202c3945525d68707d89928a7d797a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7c8893877a7a7a7a7a7a7a7a7a796d6053473a2d20140700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1824313e4b5764717e8a9184786b5e5145382b1e120500000000000000020f1c2835424f5b6875828e8d8074675a4d4134271a0e0000010d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000000000814212e3b4754616e7b8790837774808d877b6e6154473b2e21140a00000000000000000b1825313e4b5864717e8b8c7f727783908477685e5246392d20130700000000000000000000000000000000000000000000000000000000000000000a1723303d4a5663707d8996897c6f6356493c30231609000000000000000000000000000000000000000000000000000006131f2c3845515d677986928d8073665a4d4033271a0d000814212e3b4754616e7a8793867a6d6053473a38424e58616d7a85928e81756b60544a3f33291f110c1825323f4b5865727e8b9084776a5d5144372a1e11000000000000000000000000000005121e2a36424d5763707d8a8e8175685d5c6674818e8b7e7165564d42362a1e11050000000000000000000000000000000d1a2734404d5a6773808d8f8275675e574f473f363128231c17110e09060b0f141a232e38424e5863707d89968b7e7164554b4035291d100400000000000000000000000916222f3b4854606b76828f82756a6053493f31281d13070000000613202c3945525d6874818d887f756d68605c5554524c504d5354575e616a6f79828f918b7e716a60554b40352920150a000000000000000000000000000000000000000000000c1925323f4c5865727f8b8f8376695c504336291d100300000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000004101c2834404b5463707d8a998b7e7164584b3e3025190d0100000815222f3b4855626e7b88958d8073675d51443a2f241a1006000000000000020a11172029303b4855616e7b8894877a6e6154473b2e211408000000000000000000000000000000000000000000000000000000000004111d2935414c56606b74818e91847a6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6e7b879386796d6d6d6d6d6d6d6d6d675c5145382c1f130600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1824313e4b5764717e8a9184786b5e5145382b1e120500000000000000020f1c2835424f5b6875828e8d8074675a4d4134271a0e0000010d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000000000b1724313e4a5764717d8a8d8174707d8a8b7e7164584b3e31261a0f0200000000000006121f2b37434e586874818e897c6f74818d877a6d6154473a2e21140700000000000000000000000000000000000000000000000000000000000000000916232f3c4956626f7c89958a7d7063574a3d3024170a00000000000000000000000000000000000000000000000000000714202d3a4753606d7a86998c7f7366594c403326190d000814212e3b4754616e7a8793867a6d6053473a3f4a54606a74818d92857a6e61594f42382e20170d0c1825323f4b5865727e8b9084776a5d5144372a1e1100000000000000000000000000000714202d3a46525e6975828f897d7063565463707d8a8f8276695e52463a2d2014090000000000000000000000000000000d1a2734404d5a6773808d9083796e6960595146423b342e28231c1a1818171b1f252a343f4a54606a75828f92857a6d6054473a2f24180c000000000000000000000007131f2c38434f5963707d89897c6f62584e41382d1f160c0100000004111d2935414c56606d78827f726d605d56514b474641444246484d52585f676d78828f92867c6f675d51453c31261b0f030000000000000000000000000000000000000000000c1925323f4c5865727f8b8f8376695c504336291d100300000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c30231609000000000000000000000000000000000c18232e3a4653606d7986928e817467564c41362a1d110500000c1926323f4c5965727f8c96897c6f62554b4032281e1208000000000000000000060e17222e3b4855616e7b8894877a6e6154473b2e2114080000000000000000000000000000000000000000000000000000000000010d19242f3a434f59606d7984918e81756c606060606060606060606060606060606060616e7b879386796d60606060606060605c554b4034291c100400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1824313e4b5764717e8a9184786b5e5145382b1e120500000000000000020f1c2835424f5b6875828e8d8074675a4d4134271a0e0000010d1a2734404d5a6773808d8f8275685c4f4235291c0f02000000000000000000000000000004111d2935404b556774808d8b7e716d7a878e817568584e43372b1f12060000000000000815212e3a47535f6a78849185796d717e8b8a7d7064574a3d2e23180c00000000000000000000000000000000000000000000000000000000000000000815212e3b4854616e7b87988b7e7265584b3f3225180700000000000000000000000000000000000000000000000000000815222f3b4855626e7b88958b7e7164584b3e3125180b000814212e3b4754616e7a8793867a6d6053473a44505b666f7c87938b7f72685e52473d30261c0e050c1825323f4b5865727e8b9084776a5d5144372a1e110000000000000000000000000003101c28343f4a54616e7b879184786c605353606d798592877b6e6154473c31261a0e0200000000000000000000000000000d1a2734404d5a6773808d9590837b6f6b625b534d444039342e2a26252522272b31363f44505c666f7c89938d8073675d5145392c1d120700000000000000000000010b15222f3b4854606b76828f82766a6054463d2f261b0d0400000000010d19242f3a44505c666d78726d625b524c45403a393631363a3b42464e555d666d7983909184796d60584e43372b20150a0000000000000000000000000000000000000000000c1925323f4c5865727f8b8f8376695c504336291d100300000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c302316090000000000000000000000000000000007131f2c3845515c67768390918477685e5246392d2013070005121e2a36424d576875828f9184786c605346392f20160c00000000000000000000000815222e3b4855616e7b8894877a6e6154473b2e21140800000000000000000000000000000000000000000000000000000000000008131e28313d45515d67707d88938a7e71695e53535353535353535353535353535354616e7b879386796d6053535353535353514b43392f23180c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1824313e4b5764717e8a9184786b5e5145382b1e120500000000000000020f1c2835424f5b6875828e8d8074675a4d4134271a0e0000010d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000000000000000000613202c3945515d67778390887b6e6877849185786a5f53473a2e2114060000000000000915222f3c4855626f7b888f8276666f7b888d807367554b4034281c1004000000000000000000000000000000000000000000000000000000000000000613202d394653606c7986928d8073675a4d402f24180d01000000000000000000000000000000000000000000000000000a1724303d4a5763707d8a96897c6f6356493c30231609000814212e3b4754616e7a8793867a6d605347414c56606c7883909083786d60564c41352b1e150a000c1825323f4b5865727e8b9084776a5d5144372a1e110000000000000000000000000006121f2c3844505c6673808c8c7f73655b50515c6675818e8b7f7265574d42372b1e120500000000000000000000000000000d1a2734404d5a6773808d999290857d726d615e57514a443f38363132322d33373b4246515b606d78839092867b6e61554b4135291d0b010000000000000000000007121d2a36424d57636f7c89897d7063584e43342b1d140a00000000000008131e28343f4a545c666c66625b5145413a342e2d2a252a2d30363c434b545d676f7c86928d80736a5f53473c31261a0f0100000000000000000000000000000000000000000c1925323f4c5865727f8b8f8376695c504336291d100300000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c302316090000000000000000000000000000000004101c2834404b556773808d96877a6d6154473a2e211407000714212d3a46535e697885928e8175655b5044372b1f120400000000000000000000000815222e3b4855616e7b8894877a6e6154473b2e211408000000000000000000000000000000000000000000000000000000000000010c161f2935404b55606b74808d92857b6e655b504747474747474747474747474854616e7b879386796d605347474747474745403931271d12070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1824313e4b5764717e8a9184786b5e5145382b1e120500000000000000020f1c2835424f5b6875828e8d8074675a4d4134271a0e0000010d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000000000000000000714202d3a4753606d7a86928578696774818e887b6e6255483b2e23170c000000000004101c2834404a5465727f8b8c7f72666c7985908376675c5145382c1f13060000000000000000000000000000000000000000000000000000000000000006121f2b3844505b667784918e827568554b4035291d1004000000000000000000000000000000000000000000000000000c1825323f4b5865727e8b98877a6e6154473b2e211408000814212e3b4754616e7a8793867a6d60534746525e68727e8b93877c6f665c50443b3023190c03000c1825323f4b5865727e8b9084776a5d5144372a1e11000000000000000000000000000713202d3a4653606d798491877b6e6153494b5464707d8a908376695f53463a2d21150a00000000000000000000000000000d1a2734404d5a6773808d92868f91877f766e69605c54504a46423f3f3f403f44464d535b636d73808d958c7f73695e52433a2f24180d00000000000000000000000c18242f3a46535e6975828f83766b6054463d3222190b02000000000000010b17232e38424a545b605b5451493f35302823201d1a1e21252a313a424b555f6a727f8c92877c6f62584e43372b1d130700000000000000000000000000000000000000000c1925323f4c5865727f8b8f8376695c504336291d100300000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000c18232e3e4a5764717d8a96897c6f6356493c30231609000815212e3b4854616e7b87978b7f726553493f33271b0f0300000000000000000000000815222e3b4855616e7b8894877a6e6154473b2e21140800000000000000000000000000000000000000000000000000000000000000040d18242f3a434f59606d7984918f82776c60584e423a3a3a3a3a3a3a3a3a3b4854616e7b879386796d6053463a3a3a3a3a38342f271f150b010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1824313e4b5764717e8a9184786b5e5145382b1e120500000000000000020f1c2835424f5b6875828e8d8074675a4d4134271a0e0000010d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000000000000000000a1623303d495663707d898f82756964717e8b8b7f7265544a3f34281c10030000000006121f2c3844515c6675828f897c6f636676838f86796d6053463a2d20130700000000000000000000000000000000000000000000000000000000000000030f1c28333f4a546975828f908377675d5145392c20130600000000000000000000000000000000000000000000000004101c2834404b556773808d9285796c605346392d201306000814212e3b4754616e7a8793867a6d6053474e58616d7a85928e81746b60544a3f32291e110700000c1825323f4b5865727e8b9084776a5d5144372a1e1100000000000000000000000005121e2a36424d5764707d8a8f8276695e52414753606d798592887b6e6155483c32261b0f00000000000000000000000000000d1a2734404d5a6773808d8c7f828c928c827b726d66605c54534d4c4b4b4c495053575e616d727f8b929083786d60564d4231281d13070000000000000000000004101d2935404b55616e7b878a7e7164594f44342b201007000000000000000006111c263038424a5053504a423f3729241e1813110e12141a1f28303a434e58606d7884918e82756a5f53473a2f24180d01000000000000000000000000000000000000000c1925323f4c5865727f8b8f8376695c504336291d100300000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000715222f3c4855626f7b88958b7e7164584b3e3125180b000a1623303d495663707c8995897c6f6256493c2d22170b0000000000000000000000000815222e3b4855616e7b8894877a6e6154473b2e211408000000000000000000000000000000000000000000000000000000000000000007131d28313d45515d676f7c87928b7f726a5f544a40342d2d2d2d2d2d2e3b4854616e7b879386796d6053463a2d2d2d2d2c29231d150d03000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1824313e4b5764717e8a9184786b5e5145382b1e120500000000000000020f1c2835424f5b6875828e8d8074675a4d4134271a0e0000010d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000003101c28343f4a5466737f8c8c7f7366616e7b878f8275665c5044382c1f1206000000000713202d3a4653606d79859285796d606773808d897c6f6356493c3023160900000000000000000000000000000000000000000000000000000000000000000b17222d404d5a6773808d92867a6d6053473a2d20140800000000000000000000000000000000000000000000000006131f2c3845515c67768390908377655b5044372b1f1205000814212e3b4754616e7a8793867a6d60534a54606a74818e92857a6d61594f42382e20170d0000000c1825323f4b5865727e8b9084776a5d5144372a1e110000000000000000000000000714212d3a46535f6976828f8a7d7164574d4245515d6775818e8c7f7366584e43372b1b1106000000000000000000000000000d1a2734404d5a6773808d8c7f757f87918f867f79716d66615f5759585859535b6062696e757f8b9192857b6e665c51443b301f160c010000000000000000000006131f2c3845515d6773808d85796d6053473d3320190f000000000000000000000a141e262f383f4446443f382f2d2519130c07050205090d161e28313c44505c66707d8a93877c6e62554b4035291d1104000000000000000000000000000000000000000c1925323f4c5865727f8b8f8376695c504336291d100300000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000714202d3a4753606d7a86978c7f7366594c403326190d000b1825323e4b5865717e8b98877a6d6154473a2e2114060000000000000000000000000815222e3b4855616e7b8894877a6e6154473b2e2114080000000000000000000000000000000000000000000000000000000000000000010c161f2935404b55606a73808d92867c6e665c51443d3128202020212e3b4854616e7b879386796d6053463a2d2020201f1c18120b0300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1824313e4b5764717e8a9184786b5e5145382b1e120500000000000000020f1c2835424f5b6875828e8d8074675a4d4134271a0e0000010d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000006121f2b3844505c6676828f897d70635e6978849185796d6053463a2d20130700000000091623303c4956636f7c898f8276665c64717e8a8c7f7265594c3f31261a0e0200000000000000000000000000000000000000000000000000000000000000061724313d4a5764707d8a99897c706356493d3025190d0100000000000000000000000000000000000000000000000713202d3a4653606d7986928d81746753493f33271b0f03000814212e3b4754616e7a879386796d6053505b666f7c87938b7e72685e52463d30261c0e050000000c1825323f4b5865727e8b9084776a5d5144372a1e11000000000000000000000004101c2834404a54616e7b879285796d6053463b404b5564707d8a9184776a5f5347382d22170b000000000000000000000000000d1a2734404d5a6773808d8c7f73727d848d928c847e78726e69686665656667656c6f747b828c9192867d6f695f544a4032291f0d0400000000000000000000000714202d3a4753606d79858d8074675c5145382c1f130700000000000000000000020c141d262d33383938332d261d1b1208020000000000040c161f28343f4a54606c7884918e8174675d5145392c201308000000000000000000000000000000000000000c1925323f4c5865727f8b8f8376695c504336291d100300000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000613202c3945515d677885928e8174685b4e4135281b0e000d1a2633404d596673808c928579685e5246392d2013070000000000000000000000000815222e3b4855616e7b8894877a6e6154473b2e211408000000000000000000000000000000000000000000000000000000000000000000040d18242f39434e58606d7983909083786d60594f433a2f241815212e3b4854616e7b879386796d6053463a2d20141413100c07010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1824313e4b5764717e8a9184786b5e5145382b1e120500000000000000020f1c2835424f5b6875828e8d8074675a4d4134271a0e0000010d1a2734404d5a6773808d8f8275685c4f4235291c0f02000000000000000000000000000713202d3a4653606d798592867a6d60576874818e897c6f6256493c2f24180d01000004111d2935414c566673808c8c7f736654616e7b888f827568574d42372b1e1205000000000000000000000000000000000000000000000000000000000000000714212e3a4754616d7a86938c7f7366564c41362a1e11050000000000000000000000000000000000000000000000091623303c4956636f7c89988a7d7164574a3e2d22170b00000814212e3b4754616e7a879386796d605356606c7883909083786c60564c41342b1e140a000000000c1825323f4b5865727e8b9084776a5d5144372a1e11000000000000000000000006121f2c3844515c6673808d8d8074665c5145383a4653606d798592887c6f6253493f33271b0f030000000000000000000000000d1a2734404d5a6773808d8d80736b6f7980878f918a847f7b7774727272737376797c81868f9490857d6f6b60574d42392e20170d000000000000000000000005121e2b37424d5765717e8b887c6f62554b4034291c10040000000000000000000000020b141c22282b2d2b28221c140b090000000000000000040d17232e3844505b65727e8b92857a6d6053473a2f24190d010000000000000000000000000000000000000c1925323f4c5865727f8b8f8376695c504336291d100300000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c30231609000000000000000000000000000000000004101d2935404b556a7783908f8276695c4f4336291c10000e1a2734414d5a6774808d9184776b564c41362a1e11050000000000000000000000000815222e3b4855616e7b8894877a6e6154473b2e2114080000000000000000000000000000000000000000000000000000000000000000000007121d27313d45515c666f7c87928c80736b60554b4035292017212e3b4854616e7b879386796d6053463a2d20130706040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1824313e4b5764717e8a9184786b5e5145382b1e120500000000000000020f1c2835424f5b6875828e8d8074675a4d4134271a0e0000010d1a2734404d5a6773808d8f8275685c4f4235291c0f02000000000000000000000000000916222f3c4955626f7c88908377675d5864717e8b8c7f7366554b4035291d100400000613202c3945525d68768390897c6f63565f697885928578695f53463a2d211407000000000000000000000000000000000000000000000000000000000000000713202d3946525e687784908f8276685e5246392d20150a0000000000000000000000000000000000000000000006121f2b37434e5866737f8c93867a6d6154473a2e21140600000814212e3b4754616e7a879386796d60535d68727f8b93877c6f665b50443a3022190c02000000000c1825323f4b5865727e8b9084776a5d5144372a1e1100000000000000000000000713202d3a4653606d798591887c6f62544b40343845515c6674818e8d8073655b5044372b1f12060000000000000000000000000d1a2734404d5a6773808d8d807367676d737c828a90918c8884817f7e7e7f808285898e92918b837b6f6b60594f453c30271c0e0500000000000000000000000714212d3a46535f6976839083766a5f5343392f23180c00000000000000000000000000020a11171c1f201f1c17110a020000000000000000000006111c27333f4953606d7a85928b7e7164564c4135291d11040000000000000000000000000000000000000c1925323f4c5865727f8b8f8376695c504336291d100300000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c302316090000000000000000000000000000000000010d18242f43505c6976838f908376695d5043362a1d10000e1b2834414e5b6774818e9083776a5d50443025190d010000000000000000000000000815222e3b4855616e7b8894877a6e6154473b2e21140800000000000000000000000000000000000000000000000000000000000000000000010b151f2834404b545f6a737f8c92877c6f675d51453e32291e212e3b4854616e7b879386796d6053463a2d20130700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1824313e4b5764717e8a9184786b5e5145382b1e120500000000000000020f1c2835424f5b6875828e8d8074675a4d4134271a0e0000010d1a2734404d5a6773808d8f8275685c4f4235291c0f02000000000000000000000000000c1925323f4c5865727f8b8d8174675555616e7b88908376675d5145392c20130600000714212d3a4754606d7a869286796d6053576976838f887b6e6155483b2e2215080000000000000000000000000000000000000000000000000000000000000005111d2935414c566774808d92867a6d6154473c32261b0f040000000000000000000000000000000000000000000b15212e3a47535f6a778490908477685e5246392d20130700000814212e3b4754616e7a87998679665c58616d7a85928d81746a60544a3f32281e100700000000000c1825323f4b5865727e8b9084776a5d5144372a1e110000000000000000000006121e2b37424d5764717e8a9083766a5f5342392e34404b5463707d899184786c605346392e23170c0000000000000000000000000d1a2734404d5a6773808d8d8074675d606a6e767d83898e92918e8c8b8b8c8d8f92928f8a847e776e6960594f473d332a1e150b0000000000000000000000000815222e3b4855616e7b888b7f7265584e4331271d1207000000000000000000000000000000060b0f1213120f0b06000000000000000001010100000b17222d3845515d6775818e8f8276685d5245392c2013060000000000000000000000000000000000000c1925323f4c5865727f8b8f8376695c504336291d100300000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c30231609000000000000000000000000000000000000071c2935424f5c6875828f9083776a5d5044372a1d11000f1b2835424e5b6875818e9083766a5d5043372a1d08000000000000000000000000000815222e3b4855616e7b8894877a6e6154473b2e2114080000000000000000000000000000000000000000000000000000000000000000000000030d18232e39424e58606d7883909184796d60594f443a3025212e3b4854616e7b879386796d6053463a2d20130700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1824313e4b5764717e8a9184786b5e5145382b1e120500000000000000020f1c2835424f5b6875828e8d8074675a4d4134271a0e0000010d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000000000000005121e2a36424d576875818e8a7e716457535f69788491867a6d6053473a2d20140800000a1724313d4a5764707d8a8f8376675c515a6673808d8b7e7164584b3e2f24190d01000000000000000000000000000000000000000000000000000000000000010d1925303c4956636f7c89958b7f7265584e43372b20150a000000000000000000000000000000000000000007121d2935404b55626f7b88958c7f7366564c41362a1d110500000814212e3b4754616e7a879286796c5f5f6a74808d92857a6d60584e42382d20160c0000000000000c1825323f4b5865727e8b9084776a5d5144372a1e11000000000000000000000814212e3a47535f6976828f8b7e7165584e4330272e3a4653606d798592897c6f63544a3f34281c100300000000000000000000000d1a2734404d5a6773808d8e8174675b585f626c70777c8185888a8c8d8d8c8c8a8885827d79716c655e574f463d352b21180c03000000000000000000000006131f2b37434e5866737f8c877b6e6154483c3121150b010000000000000000000000000000000000030606060300000000040607090b0d0e0e0e0d0b06111b2935404b5564717d8a92867a6d6054473a2d2114080000000000000000000000000000000000000c1925323f4c5865727f8b8f8376695c504336291d100300000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c302316090000000000000000000000000000000000020f1b2835424e5b6875818e9184776a5e5144372b1e11000f1c2935424f5c6875828f8f8376695c504336291d07000000000000000000000000000815222e3b4855616e7b8894877a6e6154473b2e21140800000000000000000000000000000000000000000000000000000000000000000000000007121d27303c44505c666f7c86928e81746b61564c41362a212e3b4854616e7b879386796d6053463a2d20130700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1824313e4b5764717e8a9184786b5e5145382b1e120500000000000000020f1c2835424f5b6875828e8d8074675a4d4134271a0e0000010d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000714202d3a46525e69788491877b6e61544d576874818e8a7d7063574a3d3025190d0105121e2a36424d576774818d8c7f7366554b5764717d8a8e817467564c4135291d1104000000000000000000000000000000000000000000000000000000000000000815222f3b4854606b7784919083766a5f53473c31261b0e05000000000000000000000000000000000000020b18232e3845515d6773808d93877b6e6154483b3025190d0100000814212e3b4754616e7a879286796c5a626f7c87928b7e71685d52463d2f261c0e050000000000000c1825323f4b5865727e8b9084776a5d5144372a1e1100000000000000000004101c2934404b55626e7b8892867a6d6054473c31212c3844505c6674818d8d8174665c5044382c1f120700000000000000000000000d1a2734404d5a6773808d8e8174685b4e535a61646b7074797b7e7f8080807f7e7b7975706d66605b534d453d342b23190f060000000000000000000000000815222e3b4754606a7784908377695e53463a2d21140300000000000000000000000000000000000000000000000003070c10131316181a1a1b1b1a18151318242f3a4753606d7a86928a7d7164574a3e3024190d0100000000000000000000000000000000000c1925323f4c5865727f8b8f8376695c504336291d100300000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c302316090000000000000000000000000000000000010e1b2834414e5b6774818e9185786b5e5245382b1f12000f1b2835424e5b6875818e9083766a5d50432f23180c000000000000000000000000000815222e3b4855616e7b8894877a6e6154473b2e211408000000000000000000000000000000000000000000000000000000000000000000000000000b151e28343f4a545f6a727f8c938a7d70685e52463f33292e3b4854616e7b879386796d6053463a2d20130700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1824313e4b5764717e8a9184786b5e5145382b1e120500000000000000020f1c2835424f5b6875828e8d8074675a4d4134271a0e0000010d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000815212e3b4854616e7b87918578695e534b5865717e8b8d807367564c41362a1d11050714212d3a46535e69778491897c7063564955616e7b88908477685d5245392c2013070000000000000000000000000000000000000000000000000000000000000007131f2c38434f5966727f8c95887c6f62584e43372b20170c0300000000000000000000000000000000000a141d2834404b55606d7985918f8276695e52463a2d1e13080000000814212e3b4754616e7a879285796c616c76828f9083786c60564c41342b1d140a000000000000000c1825323f4b5865727e8b9084776a5d5144372a1e1100000000000000000006131f2c3845515c6773808d8e8174675d5145392c2028343f4a5463707c899285796d6053463a2f24180c00000000000000000000000d1a2734404d5a6773808d8e8275685b4f475055596063666c6e717373747372716e6c6564605c545049413b332b22191007000000000000000000000000000916232f3c4956626f7c898c807366574d42362a1e120500000000000000000000000000000000000000000000060b0f12181c1f20222526272827262522201f1f2c3945515d677683908e817468564c4135291d110500000000000000000000000000000000000c1925323f4c5865727f8b8f8376695c504336291d100300000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c302316090000000000000000000000000000000000020e1b2835414e5b6874818e9184786b5e5145382b1e12000e1b2734414e5a6774818d9084776a554b4034291c10040000000000000000000000000815222e3b4855616e7b8894877a6e6154473b2e21140800000000000000000000000000000000000000000000000000000000000000000000000000030c17232e38424e58606c78839092857a6d615a50453b302e3b4854616e7b879386796d6053463a2d20130700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1824313e4b5764717e8a9184786b5e5145382b1e120500000000000000020f1c2835424f5b6875828e8d8074675a4d4134271a0e0000010d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000b1824313e4b5764717e8a8e827568574d4855616e7b88908377685e5246392d2013070815212e3b4854616e7b879286796d605347535f69788592867a6d6054473a2d21140600000000000000000000000000000000000000000000000000000000000000030f1b27323d4754616e7b86928f82756a5f53473e32291e150b0200000000000000000000000000000006111b262f3845515c67727f8b958a7e7164574d42362a1e0c020000000814212e3b4754616e7a879285786c67717d8a92877c6f655b50443a3022190b02000000000000000c1825323f4b5865727e8b9084776a5d5144372a1e110000000000000000000714202d3a4753606d798592897c6f63554c4135291d232e394653606c788491897d7063554b4035291d1004000000000000000000000d1a2734404d5a6773808d8f8275685c4f4244494f54545b60626466676766656462605b5353504a443f382f29211910070000000000000000000000000005121e2a36424d576773808d887c6f6255493c31251a0e020000000000000000000000000000000000000000020a11171c1f23282c2d2f323334343433312f2d2b282935404b5566737f8c918477685d5246392d20130700000000000000000000000000000000000c1925323f4c5865727f8b8f8376695c504336291d100300000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c302316090000000000000000000000000000000000020f1c2835424f5b6875828e9184776a5e5144372b1e11000d1a2734404d5a6773808d918478675c5145382c1f13060000000000000000000000000815222e3b4855616e7b8894877a6e6154473b2e211408000000000000000000000000000000000000000000000000000000000000000000000000000006111c26303c44505b666e7b86928f82756c62574d42382e3b4854616e7b879386796d6053463a2d20130700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1824313e4b5764717e8a9184786b5e5145382b1e120500000000000000020f1c2835424f5b6875828e8d8074675a4d4134271a0e0000010d1a2734404d5a6773808d8f8275685c4f4235291c0f02000000000000000000000004111d2935414b556774818d8c7f7265594c46535f69788491877a6d6154473a2e2114090f1b27333f495365717e8b908376675c51454d576976828f8a7d7063574a3d2e23170c00000000000000000000000000000000000000000000000000000000000000000a16202d3946525e6874818d93877c6f625a50443b30271d140b0300000000000000000000000001071117222d38414d57606d7984919184786d6053463b30251a0e000000000814212e3b4754616e7a879185786b6d7984918d80746a5f53493f32281e100700000000000000000c1825323f4b5865727e8b9084776a5d5144372a1e11000000000000000006121f2b37434e5864717e8a9184776b6054433a2f24191f2b3844505b6674808d8e8174675d5145382c1f1308000000000000000000000d1a2734404d5a6773808d8f8275685c4f42393d44484a50535557595a5a5959575553504946443f38332d261d170f0700000000000000000000000000000714202d3a46525e6977849184786a5f54473b2e1f14090000000000000000000000000000000000000001070b141c22282b2e34383a3c3e40414141403e3c3938332d2f3d495663707c8996877a6d6154473a2e21140700000000000000000000000000000000000c1925323f4c5865727f8b8f8376695c504336291d100300000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c302316090000000000000000000000000000000000030f1c2936424f5c6975828f9083776a5d5044372a1d11000c1926333f4c5966727f8c93867a6d6053473a2d2014070000000000000000000000000815222e3b4855616e7b8894877a6e6154473b2e2114080000000000000000000000000000000000000000000000000000000000000000000000000000000a151e28333f4a545f69727f8b938b7e71695f544a3f343b4854616e7b879386796d6053463a2d20130700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1824313e4b5764717e8a9184786b5e5145382b1e120500000000000000020f1c2835424f5b6875828e8d8074675a4d4134271a0e0000010d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000000000000613202c3945515d67778390897c6f625649424d576875818e8a7e7164574b3e31261a0e121f2b3744505b6575818e8c807366554b404d5a6673808d8c807366544a3f34281c10030000000000000000000000000000000000000000000000000000000000000005111e2a36414d56616e7b86928f82756c61564c42392f261d150d0701000000000000000000040c12182327333f49535f69727f8c958a7d70665c504438291f1409000000000814212e3b4754616e7a8791847869737f8c91857a6d60584e41382d20160c0000000000000000000c1825323f4b5865727e8b9084776a5d5144372a1e1100000000000000000815212e3a47535f6a7683908c7f7266594f4431281e131c28333f4a54626f7c899285796d6053473a2f24190d010000000000000000000d1a2734404d5a6773808d8f8275685c4f42353238383f4446484b4c4d4d4d4c4b4846443f3a38342e27221b140b050000000000000000000000000000000815212e3b4854616e7b878e817568584e43372b1f0d03000000000000000000000000000000000000040c13181d262d333839404546494b4d4d4e4e4d4b4846443f38373a4754606d7a8693897d7063564a3d3023170a00000000000000000000000000000000000c1925323f4c5865727f8b8f8376695c504336291d100300000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c30231609000000000000000000000000000000000003101d293643505c6976838f908376695d5043362a1d10000a1724313d4a5764707d8a99887b6f6255483c2f22150a0000000000000000000000000815222e3b4855616e7b8894877a6e6154473b2e211408000000000000000000000000000000000000000000000000000000000000000000000000000000030c17222d38424d57606c77828f92867b6e665c50443c3b4854616e7b879386796d6053463a2d20130700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1824313e4b5764717e8a9184786b5e5145382b1e120500000000000000020f1c2835424f5b6875828e8d8074675a4d4134271a0e0000010d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000000000000714212d3a4754606d7a869286796d6053463e4b5864717e8b8e817467574d42362a1e1213202d394653606c788592897c706356493d4a5764707d8a8f8376665c5044382c1f120600000000000000000000000000000000000000000000000000000000000000020e1925303b46525e6873808d948a7e71685e544b41382f271f18120d08050300000205070c10161d2429363e44505b656e7b86929083776c61544a3f3428170d03000000000814212e3b4754616e7a879184776e7b86928a7e71685d52463c2f261b0e040000000000000000000c1825323f4b5865727e8b9084776a5d5144372a1e110000000000000004101d2935404b55626f7b8892867b6e6154473d3221160b17222d384754606a7784918a7d7164564c4135291d11040000000000000000000d1a2734404d5a6773808d8f8275685c4f4235272c2d3338393b3e404041403f3e3b3937332d2c28231c17110a02000000000000000000000000000000030f1c28333f4a5465717e8b8b7e7265584b3f32261b0f030000000000000000000000000000000000050d161d24292f383f44464b51535558595a5b5a59585553504a47433c45525d687784918c7f7366594c403326190700000000000000000000000000000000000c1925323f4c5865727f8b8f8376695c504336291d100300000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c30231609000000000000000000000000000000000005111d2a36414c566a7784908f8275695c4f4236291c0f000815222f3b4855626e7b88988a7e7164574b3e32261b0f0100000000000000000000000815222e3b4855616e7b8894877a6e6154473b2e2114080000000000000000000000000000000000000000000000000000000000000000000000000000000006111c262f3c44505b656e7b86929083786d60584e433b4854616e7b879386796d6053463a2d20130700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1824313e4b5764717e8a9184786b5e5145382b1e120500000000000000020f1c2835424f5b6875828e8d8074675a4d4134271a0e0000010d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000000000000a1723303d4a5663707d89908376665c51453b4854616e7b87918478695f53463a2d211416222f3c4955626f7c889285796d6053463a4754616d7a879285796d6053463a2d201307000000000000000000000000000000000000000000000000000000000000000008141f2a36414d56606d7a849192857a6e665c534941393129241d1913120f0b090e1114181c1f282f353f48505a606c77829093877c6f635a5042382e23170500000000000814212e3b4754616e7a8790847775818e8f82766c61564c41342a1d140a000000000000000000000c1825323f4b5865727e8b9084776a5d5144372a1e110000000000000006131f2c3945515d6774808d8f8275685e5246392d201406111c2b38434e586673808d8f8275685d5245392c2014080000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c22282b2d2f313334343332312f2d2b27221f1c17110b06000000000000000000000000000000000006121f2b3844505b6675828e887c6f6255483c2f22150a0000000000000000000000000000000000050e161f282f353e424a5053555c60626566676767666462605b54534e47434c566875828f8e8175685b4e422f24180d01000000000000000000000000000000000c1925323f4c5865727f8b8f8376695c504336291d100300000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000713202d3946525e687985928d8174675a4e4134271b0e000713202d3a4653606d7986928e817467584e43372b1d130700000000000000000000000815222e3b4855616e7b8894877a6e6154473b2e21140800000000000000000000000000000000000000000000000000000000000000000000000000000000000a141d27333f49535e69717e8b948c7f726a5f554b404854616e7b879386796d6053463a2d20130700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1824313e4b5764717e8a9184786b5e5145382b1e120500000000000000020f1c2835424f5b6875828e8d8074675a4d4134271a0e0000010d1a2734404d5a6773808b8b8275685c4f4235291c0f020000000000000000000003101c28343f4a546673808c8d807467544b403a46525e69778491887b6e6155483b2d22171c2934404b5566727f8c8f8275665c51453946525e68778491887c6f6255493c2f2216090000000000000000000000000000000000000000000000000000000000000000020e1925303b45525d68707d88938f82786d655b534b433c352f2a25201f1b171c191e2023282c31394045515a626c73808c948d80736b6054483e30261c110600000000000814212e3b4754616e7a879083767c8992877c6e625a50433a2f22180b02000000000000000000000c1825323f4b5865727e8b9084776a5d5144372a1e11000000000000000714202d3a4753606d7985928a7d7064564d41362a1e11050f1b27323d4955626f7c8892867a6d6054473b3025190d0100000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c171c1f20222426272726262422201f1b1712100c06000000000000000000000000000000000000000613202d394653606c79859285796c605346392d20130600000000000000000000000000000000040e162028313a404550545b6064676d6f717374747473716f6c66625f58534e4d5a6673808d9083766a554b4035291d1104000000000000000000000000000000000c1925323f4c5865727f8b8f8376695c504336291d100300000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000714212e3a4754616d7a87988c7f7265594c3f3226190c0006121f2c3844505c6676838f9184786a5f53473a2f24180d02000000000000000000000815222e3b4855616e7b8894877a6e6154473b2e2114080000000000000000000000000000000000000000000000000000000000000000000000000000000000020b17222d38414d57626d76828f92877c6f675c51454854616e7b879386796d6053463a2d20130700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1824313e4b5764717e8a9184786b5e5145382b1e120500000000000000020f1c2835424f5b6875828e8d8074675a4d4134271a0e000000091623303c4956636f7d7f7f7d7063574a3d3024170a000000000000000000000006121f2b3844505c6676828f8a7e7164574a3e36424d576774818d8b7e7265544a3f33281c1f2c3845515c6776828f8b7f7265544b4036414c566875818e8b7f7265584c3f30251a0e02000000000000000000000000000000000000000000000000000000000000000008141f2935414c56606b74808d948e81776c655d554d45403936302d2b272228252a2d2e34383e434b515b626c717e8b929083786d60594f43362c1e140a0000000000000814212e3b4754616e7a8790837983908d80736a5f53483e31281e100600000000000000000000000c1825323f4b5865727e8b9084776a5d5144372a1e1100000000000006131f2b37434e5865717e8b9185796d6053463b3025190e020a16212e3b47535f6a7784918b7e7164564c41362a1e110500000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0b0f12131518191a1a1a19181513120f0b06030000000000000000000000000000000000000000000915222f3c4855626f7b888f8276665b5044382b1f1206000000000000000000000000000000020c162028323a434b515a61666c7075797c7e80808181807e7b79746f6a625f58515865727e8b928578675d5145392c201306000000000000000000000000000000000c1925323f4c5865727f8b8f8376695c504336291d100300000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000916232f3c4956626f7c89958a7d7164574a3e3124170b0003101c28343f4a5465727f8c96887c6f62554b4035291e1308000000000000000000000815222e3b4855616e7b8894877a6e6154473b2e21140800000000000000000000000000000000000000000000000000000000000000000000000000000000000006111b262f3b45505a616e7b85929183796d60594f4854616e7b879386796d6053463a2d20130700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1824313e4b5764717e8a8b84786b5e5145382b1e120500000000000000020f1c2835424f5b6875828b8b8074675a4d4134271a0e0000000915222f3b4854606b6f7272706b6155483c2f23160a00000000000000000000000713202d3a4653606d798592877b6e6154483b303d4a5764707d8a8e8275665b5044382b1f202d3a4753606d798692887b6f6255483c303f4c5865727f8b8e817568574d42362a1e12050000000000000000000000000000000000000000000000000000000000000000020d19242f3a444f59606d798390938d80776d675f57514b46413c3937332d3530363a3b40444650555d606d727e879292857b6e665c51473d32241a0c020000000000000814212e3b4754616e7a878f827e8b9184796d60584e43362c1f160c0000000000000000000000000c1825323f4b5865727e8b9084776a5d5144372a1e110000000000000815212e3b47535f6a7683908d8073665c504438291f14080006131f2b37434e586673808c8f8276685e5246392d20140900000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f030606080b0d0d0e0d0c0b080605030000000000000000000000000000000000000000000000000b1825313e4b5864717e8b8c807366544a3f33281c0f0300000000000000000000000000000008131e28323a444c555d606c70787d8285888b8c8d8e8d8c8b8885817c756f6a605d5563707d8a97867a6d6053473a2d201407000000000000000000000000000000000c1925323f4c5865727f8b8f8376695c504336291d100300000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000b1825323e4b5865717e8b99887c6f6255493c2f22160900000c17232e3b4855626e7b88958d8174675d51453a30251910060000000000000000000815222e3b4855616e7b8894877a6e6154473b2e211408000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a141d29333f46525e69717e8b938d80746b60564c54616e7b879386796d6053463a2d20130700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000815222f3b4855626e7c7f7f7e7165584b3e3225180b0000000000000000000a1724303d4a5763707d7f7f7c706356493d3023160a00000007131f2c38444f59606365656361594f44382c20140700000000000000000000000916222f3c4955626f7c88918578695e53463a2d3a4754606d7a869285796c605346392d2023303d4a5663707d899185786a5f53473a2f3c4955626f7c88918478695e52463a2d20140700000000000000000000000000000000000000000000000000000000000000000008131e28323d45515c676d7a8391928d81796e69605d55524c4846443f4242434246474a51535a61676d747f879292867c6f695f544a40342b211208000000000000000814212e3b4754616e7a87918485918a7e71675d51463c31241a0d040000000000000000000000000c1825323f4b5865727e8b9084776a5d5144372a1e11000000000004111d2935414b55626f7c8894887b6e62544a3f3428170d0200030f1b26323c4855626e7b8892867a6e6154473b31261a0e02000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000101000000000000000000000000000000000000000000000000000000000000010e1a2734414d5a6774808d8a7d7164574a3e2d22170b000000000000000000000000000000040d1924303a444c565e676d747d838a8e928f8d8a8988898a8c8f928d87827c746d6760626f7b8895887b6e6255483b2f221508000000000000000000000000000000000c1925323f4c5865727f8b8f8376695c504336291d100300000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c302316090000000000000000000000000000000005111d2a36414c566874818e92867a6d6053473a2d20140700000614212e3a47535f6a77839092857a6d60564c41362a22180f0600000000000000000715222e3b4855616e7b8894877a6e6154473b2e21140800000000000000000000000000000000000000000000000000000000000000000000000000000000000000020b17212a36424d57616c75828f93887d70685d5254616e7b879386796d6053463a2d20130700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3a47535f6a6e7272716c6256493d3024170b0000000000000000000916232f3c4855616b707272706b6054483b2f221609000000030f1b27323d474f5456585857554f473e33281c100400000000000000000000000c1925323f4c5865727f8b8f827568574d42362c3945515d67768390887c6f6255493c2e232a36414c566673808d8e817468584e43372d3a4653606d798592877b6e6154483b2e211507000000000000000000000000000000000000000000000000000000000000000000010c16202934404b555e686e7b8490938f837b736d67615e56555350494f4f504d5254545c60646c7179818c9392877d706a60574d42392e22190f00000000000000000814212e3b4754616e7a879691918f82766c61554b40342a201209000000000000000000000000000c1825323f4b5865727e8b9084776a5d5144372a1e1100000000000613202c3945515d6774818e908376695f5342382e2317050000000a15212e3a47535f6a7783908b7f7265574d42362a1e1205000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000000000000000000000000000000000000000000000000000000000000000005121e2a36424d576976838f887b6f6255483c2f2215060000000000000000000000000000010c161f2935414c565e686d79818a90928c8783807d7c7c7c7d7f82868b918f8881796f6b616d7a8794897c6f6256493c2f231609000000000000000000000000000000000c1925323f4c5865727f8b8f8376695c504336291d100300000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c30231609000000000000000000000000000000000713202d3946525e68778491908376675d5145382c1f1306000006121f2b37434e5864717e8a968c7f73685e52463e342a211810080200000000060b1218222e3b4855616e7b8894877a6e6154473b2e2114080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050f1a25303b45505a616d7a859291847a6d605a54616e7b879386796d6053463a2d201307000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006121e2b37424e575f62656565625a5045392d2115090000000000000000000714202c38444f59616365656360594f44382c201307000000000a16212b353d4448494c4c4a48443e352c21170b000000000000000000000005121e2a36424d576875828e8c7f7266594c3f312935414c556673808c8c7f7266554b4034282d3946525e687783908a7e7164574b3e312c3844505c667683908a7e7164574b3e2f24180d01000000000000000000000000000000000000000000000000000000000000000000040d18232f39434c565e696e7b838e9390868079726d686562605b535c5b5c565e6164666d71767e848e9390857d706b60584e453c30271c100700000000000000000814212e3b4754616e7a87949e92867b6e625a50433a2f22180e00000000000000000000000000000c1825323f4b5865727e8b9084776a5d5144372a1e1100000000000714212d3a4754606d7a85928b7e7164574d4230261c110600000006121e2b37424e5766727f8c908376695f53463a2d21150a000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f02000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a46535e6978859286796d6053463a2d201307000000000000000000000000000007131d28313a45525d686d7a838e939086807b767371706f6f7073767a7f848b928d847d716c6d7986988a7d7063574a3d3024170a000000000000000000000000000000000c1925323f4c5865727f8b8f8376695c504336291d100300000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c30231609000000000000000000000000000000000714212e3a4754616d7a87968d807367554b4035291d10040000020f1a26313c4653606d79849192867a6d615a50463c332a2219140f0a0b090e11171d2328313b4855616e7b8894877a6e6154473b2e21140800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009141f29333e46525e68717e8a938e81756c6157616e7b879386796d6053463a2d2013070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020e1a26313c454e53555858585650483f34291d110500000000000000000004101c28333e474f5557585856544f473d32271b100300000000040f19232b32383b3c3f3f3d3c38332c231a100500000000000000000000000714212d3a46535e69788491897c6f6356493c30242f3c4956636f7c898f8276675c5145382c2e3a4754616d7a8793877a6e6154473b2e28343f4a546773808d8d807467554b4035291d10040000000000000000000000000000000000000000000000000000000000000000000007121d27313a444d565e696e79818b92928c847f7a75716f6c65696868696a696e7174797d828a91938e837b706b60594f463d332a1e150b0000000000000000000814212e3b4754616e7a8794968d8073695f53483e31281d0f0600000000000000000000000000000c1825323f4b5865727e8b9084776a5d5144372a1e110000000006131f2b37434e5865727e8b92857a6d6053473c3120150a00000000020e1a26313c4855616e7b8895887b6e6155483c31261b0f030000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f02000000000000000000000000000000000000000000000000000000000000000000000000000815212e3b4854616e7b87918477665c5145382c1f130600000000000000000000000000010d18242f3a43505a606d7a8390938e827b736e6966646362626366686d72797e858e91877e736d7985928b7e7164584b3e3125180b000000000000000000000000000000000c1925323f4c5865727f8b8f8376695c504336291d100300000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000005111e2a36414c5665717e8b988a7d7064574a3d2f24180c000000000a151f2c3844515c66717e8b958e81756c61584e453c342a251e1b1918191a1c22282e343c434b54616e7b8894877a6e6154473b2e211408000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020d17202a36414c56616c75818e938a7e71695e616e7b879386796d6053463a2d2013070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000915202a333c4247484c4c4b49453f362d22170c01000000000000000000000b16212c353e44484a4c4c4948443d352b21160b00000000000007111921272c2f303333302f2c28211a110a0100000000000000000000000815212e3b4854616e7b8792867a6d6053473a2d202d3a4653606d79859286796d6053463a2d313e4b5764717e8a908477685e5246392d232e3d4a5764707d8a908377675d5145392c20130600000000000000000000000000000000000000000000000000000000000000000000010b151f28323b444d575e676d757f868e93918c86827e7b79777675757677787a7d80858a8f94908781796e6960594f473d342b21180c030000000000000000000814212e3b4754616e7a878a8a84796d60574d42362c1f160c0000000000000000000000000000000c1825323f4b5865727e8a8a83776a5d5144372a1e11000000000815222e3b4754606a7783908e8174675d5145392c20130300000000000915212d3a46535f697683908c7f7266584e43372b1f12060000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f02000000000000000000000000000000000000000000000000000000000000000000000000000a1723303d4a5663707d898f827568544b4034281c10040000000000000000000000000004111d2935414b55626d75818f948e81796e69615e575756555657565d61666d727a818b928b7f737884918c7f7265594c3f3226190c000000000000000000000000000102040c1925323f4c5865727f8b8f8376695c504336291d100300000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c302316090000000000000000000000000000020c14202d3946525e6876828f92867a6d6054473a2d2114070000000004101c2834404a54606c788390938a7e716a5f574e463e36302b26262525262b2d333940454e555d666e7b8894877a6e6154473b2e21140800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050e1925303a44505a616d7a849192857b6e61616e7b879386796d6053463a2d201307000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030e18212a31373a3b3f3f3e3d39342d241b1106000000000000000000000005101a232c33383c3d3f3f3d3b38322b23190f040000000000071019212a31363a3b3f403c3b38322b231c130a00000000000000000000000b1824313e4b5764717e8a908377675d5145392c1f2c3844515c6675828f897c706356493d2f37424d576774818e8d807367564c41362a212e3b4754616e7a8792867a6d6053473a2d2014060000000000000000000000000000000000000000000000000000000000000000000000030d162029323b454d555d606d727b81878e92928e8b888584838282838385878a8d91938f8a837c746d675e574f473d352b22190f06000000000000000000000714202d3a4753606d797e7e7e7c6f675d51453c31241a0d040000000000000000000000000000000815222e3b4855616e7b7e7e7d7063564a3d3023170a00000004111d2935414c56626f7c8995897c6f62554b4035291d1004000000000005121e2a36424d5765727f8c9084776a5f53473a2e21160a0000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f02000000000000000000000000000000000000000000000000000000000000000000000000000b1825313e4b5864717e8b8d8074675a4d412e23180c00000000000000000000000000000613202c3945515d67717e8b938f82786d675f57524d4a4949494a4c52545c60686d757f87928c807784918c7f7266594c3f3326190c0000000000000000000004080c0e0f10101925323f4c5865727f8b8f8376695c504336291d100300000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c30231609000000000000000000000000000008131e2935404b55616e7a86928e8275675d5145392c20130600000000000c18232e3944505b656f7c869292857c6f695f584f46413b37323232323137383f444b51585f676d78808d94877a6e6154473b2e211408000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008131e29323e46525d68707d8a938f82766c616e7a879386796d6053463a2d20130700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060f1820262b2e2f323232302d29221b12090000000000000000000000000008111a21282c2f303232302f2c27211911070000000000040f19222b333b4246484c4d4948443d352d251c0f0500000000000000000004111d2935414c566774818d8d817467554b4035291d2834404a5465727f8b8d807366564c41353a47535f69788491897d7063564a3d3025202d3946525e68788491897c706356493d2d22170b000000000000000000000000000000000000000000000000000000000000000000000000040e172029333b434b515b62696e757c81868b8e91979290908f8e8f909196928f8c87827d766f6b605d554d453d352b23191007000000000000000000000006131f2c3845515c676d7171716f6a5f554b40332a1f1208000000000000000000000000000000000714212d3a46535f696e7171706b6155483c2f2316090000000713202c3945525d6874818e9084776a605443392f24180d010000000000020e1a26313b4754616e7b8793887c6f6255483d32271b0f0000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f02000000000000000000000000000000000000000000000000000000000000000000000000000d192633404c5966737f8c8c7f7266594c3f332619070000000000000000000000000003101c28343f4a54606d7a859291847a6d665c554d46423e3d3c3c3d41464a51565e616d727d86928c7f83908c807366594d4033261a0d000000000000000002090f14181b1c1d1d1d25323f4c5865727f8b8f8376695c504336291d100300000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c302316090000000000000000000000000007101925303945515d67727f8c978a7d7064554c4135291d1104000000000007121c27333f49535f6a727f8b9391847b6f6a6159524c4743403f3e3f4042464a50545c606a6f79818d9294877a6e6154473b2e2114080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020d17202935414c56616b74818e948a7e71676d7a879386796d6053463a2d2013070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060e151a1e212225252524211d1711090000000000000000000000000000000810161c20232425252322201b160f070000000000000a16212b343d454d5355595a56544f473f372d21170d0200000000000000000613202c3945525d687784908b7e7164584b3e2f2418232e3c4855626f7b88908376685d5245393b4855626e7b8892867a6d6053473a2d201e2a36414c566875818e8c7f736653493f33271b0f03000000000000000000000000000000000000000000000000000000000000000000000000050e1721293139404551575e616a6f747a7e818587898b8c8c8c8c8b8a8885827f7b76706b636059514b433b332b2319110800000000000000000000000004101c2934404b555c60646464625f584e43392f21180e000000000000000000000000000000000005121e2a36424d575f6164646361594f44382c2014070000000714212d3a4754606d7a86928c7f7265584e4331281d1207000000000000000914202d3a46525e697683908d807366584e43382c1c110600000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f02000000000000000000000000000000000000000000000000000000000000000000000000010e1b2734414e5a6774818d8b7e7164584b3e3125180b0000000000000000000000000006121f2b3844505c66737f8c958a7e71685d544b433b3630302f2f30353940444c525b626b707d86928c90958d8073665a4d4033271a0d00000000000000030c131a202527282a2a2a2a323f4c5865727f8b8f8376695c504336291d100300000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c30231609000000000000000000000000071019222a36414c56606d7985929285796d6053463a2f24190d010000000000000b17222d38414e58626d74818e9391847c706b615e56544e4d4c4b4c4d4d53545b60666d737c848f929298877a6e6154473b2e211408000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050e1924303a444f59606d7a849191847a6d6d7a879386796d6053463a2d20130700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003090e1214151919181715110c060000000000000000000000000000000000050b101416171919161613100b04000000000000030f1b27323d474f575f61666663605951493f33291f140900000000000000000714212d3a4754606d7a8693887b6e6255483b2f2215212e3a47535f6a788591867a6d6054473a3f4a5465727e8b8f8376675d5145392c1f1925303f4c5865727f8b8f8276655b5044372b1f120500000000000000000000000000000000000000000000000000000000000000000000000000050f171f272f353f454d53585f62676d7175787a7c7e7f7f807f7e7d7b7976726e69636159544f45403931292119110800000000000000000000000000000c18232f39434b515357575755534e463c31271d0f060000000000000000000000000000000000020e1a26313b454d5355575756554f473d33271c1004000007131f2c38444f5965727f8b92867a6d6154473d3221160c010000000000000005111e2a36424d5765727e8b9184786a605448382e23170b00000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f02000000000000000000000000000000000000000000000000000000000000000000000000030f1c2936424f5c6975828f897d7063564a3d3023170a000000000000000000000000000713202d3a4653606d7984919083776c61564c4239302a2523222324292e343a41465159616b707d87929d9a8d8073675a4d4034271a0d000000000000020c151e252c31343537373737373f4c5865727f8b8f8376695c504336291d100300000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c302316090000000000000000000002081019222b343d46525e68727f8c978c8073665c514538281e13080000000000000006111b262f3c46515b606d78818e9391867d756e68625f585a59585859575f61666c71797f869191858692877a6e6154473b2e2114080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008131e28323e45515d67707d88938d80746d79869986796d6053463a2d2013070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020608080c0c0b0b09050100000000000000000000000000000000000000000407090a0c0c0a090703000000000000000007131f2c38434f5960696e72736f6b635b51453b30251a0e02000000000000000a1723303d4a5663707d89928578695f53473a2e21141f2b37434e586875818e8a7d7064574a3d44505c6675828f8c7f7266554b4035291d16232f3c4956626f7c899285796c605346392d2013060000000000000000000000000000000000000000000000000000000000000000000000000000050d151d2429333b42464e53555d606468686e70717273737271706e6c6565615e57554f48433d352f271f170f0700000000000000000000000000000007121d2731394045474b4b4b4847433c342a1f150b0000000000000000000000000000000000000009141f2a333b4246484b4b4a48443d352c21160b0000000915222f3b4854606b7784908e8275685e5246392d2013040000000000000000020e1a25303b4754616d7a8692897c6f62544a3f34281c1003000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000000000000000000000000000000000000000000000000000000000000004111d2a3744505d6a778390887b6f6255483c2f221509000000000000000000000000000a1724303d4a5763707d8a978a7e71645a50443a30271e1a161616191c232830363f474f59606b717e8a929a8d8074675a4d4134271a0e00000000000009131e272f373d40424343434343434c5865727f8b8f8376695c504336291d100300000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c30231609000000000000000003080d1319222b343d46505a616d7a859292857a6d60544b403428160c0100000000000000000a141d2a343f44515c666d78818c92928a817a746f6a68666565656668696e73787e848c928d847c8591877a6e6154473b2e21140800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020c16202935414c55606b74808d92877c6f79869286796d6053463a2d2013070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000915222f3b4854606b6f7b7f807d726d63574d42362a1e120500000000000003101c28343f4a546673808c8f827569574d42372b1e121b26313e4b5864717e8b8d817467574d424653606d798592887c6f6255493c2f241813202d3a4653606d798692887b6f6255483c2f221508000000000000000000000000000000000000000000000000000000000000000000000000000000030b1218212931363c43474b515458565e61636465666666656361605b5354524d48443e383229241d150d0500000000000000000000000000000000010b151f272f34383a3e3e3e3c3a37312a22180d0300000000000000000000000000000000000000030e18212a31363a3b3e3e3d3c38332c231a1005000005111d2935414c56636f7c89958a7d7063564c41362a1d11050000000000000000000914202d3946525e6876828f8d8074665c5044382b1f1206000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000000000000000000000000000000000000000000000000000000000000005121e2b3845515e6b788491877a6d6154473a2e21140700000000000000000000000005111e2a36414c566774818e9286796d6053473e32281e150c0909080d12181e252a353e474f59616c74808d9a8d8074675a4d4134271a0e0000000000040f1a252f3941484d4f505050505050505865727f8b8f8376695c504336291d100300000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c30231609020200010406060b0f13191e252a343c464e58626c75818f968c7f73685d5242392e231804000000000000000000020b18222834404a545c666d777f8790938e86817c7875737271727375787b7f848a9191888079788592877a6e6154473b2e2114080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040e19242f3a434f59606d79849190827678859286796d6053463a2d201307000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003101c28343f4a54636f7d868c8d897f72695e52463a2d20140700000000000006121f2c3844505c6676838f8c7f7366594c4031261a0e14212e3b4754616e7b87918477695e52464956626f7c899285796c605346392d2013121f2c3844515c667683908b7e7165584b3e3025190d0100000000000000000000000000000000000000000000000000000000000000000000000000000001070f171f252a31373a4145474b4c52545658595959595857555350494846423b38332c272118120b03000000000000000000000000000000000000030d151d23292c2d3131312f2e2b2620181006000000000000000000000000000000000000000000060f181f262a2d2e3131302f2c27211a11080000000713202d3946525e6875818e9184786c6053463a3025190d0100000000000000000005111d2a36414c5665717e8b9285796d6053463a2d201307000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f0200000000000000000000000000000000000000000000000000000000000000000000000005121f2c3845525f6b788592867a6d6053473a2d2014070000000000000000000000000714202d3946525e687784918f8275675d5145382c20160c0300000000070c1319232c353d47505a606d7986958d8073665a4d4033271a0d00000000000814202c37414b53595b5d5d5d5d5d5d5d5d65727f8b8f8376695c504336291d100300000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160e0e0f070d101314171b1f242930363f464e58606a717e8b939184796d60564c4130271d120700000000000000000000071018232e39424a545c656c727c838a91928e888582807f7e7f808284888c91918b837d746d798592877a6e6154473b2e21140800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008131e28313d45515d676f7d87938a7e77849186796d6053463a2d201307000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006121f2b3844505c66768390989992867b6e6154483b2e2115080000000000000713202d3a4653606d798592897d7063564a3d3023170914202d3a46525e69778491877b6e6154484b5566737f8c8e8275665b5044382b1f12101c2834404a546773808d8e817468564c41362a1e11050000000000000000000000000000000000000000000000000000000000000000000000000000000000050d141a20262b2f35393a3e414647494b4c4c4d4c4b4a4846443f3b3a36302c28211b160c07010000000000000000000000000000000000000000030b12181c1f2024242422211f1b150e060000000000000000000000000000000000000000000000060e141a1e212224242323201c161008000000000714212e3a4754616d7a86928c8073665b504438281e130800000000000000000000010d1925303a4754606d7a8692897d7063564a3d3023170a000000000d1a2734404d5a6773808c8c8275685c4f4235291c0f0200000000000000000000000000000000000000000000000000000000000000000000000006131f2c3946525f6c79859286796c605346392d2013060000000000000000000000000814212e3b4754616e7a87968b7f7265554b4035291a0d040000000000000208111a232c353e44505c667784918c807366594d4033261a0d00000000000c1825313d48535d65686a6a6a6a6a6a6a6a6a727f8b8f8376695c504336291d100300000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c30231b1b1b1b1c181d202022272b2f353a41465158606a6f7c869293877d6f675d51433a2f1e150b00000000000000000000000007121c273039424a535b606a6f787e84898e92928e8d8c8b8b8c8e91928f8a847e78706b66798693877a6e6154473b2e211408000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010c161f2935404b55606b73808d91847a839086796d6053463a2d20130700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000713202d3a4653606d7986929fa3998a7d7064574a3d3124170a0000000000000916232f3c4956626f7c8993867a6d6054473a2d211407111e2a36424d566774808d8b7e7164584b515d677683908b7e7165544a3f33281c0f0c18232e3d4a5764707d8a918477685e5246392d20130700000000000000000000000000000000000000000000000000000000000000000000000000000000000003090e151b1d24292c2d3036393b3d3e3f40403f3e3d3b3937332d2d2a251f1c160f0a04000000000000000000000000000000000000000000000001070c1013141818181515120f0a030000000000000000000000000000000000000000000000000003090e1214151818171614100b0500000000000c1926323f4c5965727f8b8b887b6e61544a3f3328160c0200000000000000000000000813202c3945525d6875828b8b8174685b4e4135281b0e000000000a1623303d495663707d7f7f7e7064574a3d3124170a0000000000000000000000000000000000000000000000000000000000000000000000000006131f2c3845515c667986928679655b5044372b1f12050000000000000000000000000a1623303d495663707d8996897c6f6356493c2f24180900000000000000000008101a232935404b556b7784918c7f7266594c3f3326190c00000000010e1b2734404d59656f75767676767676767676767f8b8f8376695c504336291d100300000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3028282828282924292c2d2d33373a41454c525b626a6f7c8592948c80736b60554b4131281e0c03000000000000000000000000000b151e2730384149505860656c71787d8185888a8c8d8d8d8c8b8985827d79726d66606d798699877a6e6154473b2e21140800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040d18242f39434f59606d7984918c80828f86796d6053463a2d20130700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000713202d3a4653606d7986929fa3998a7d7164574a3e3124170b0000000000000c1925323f4c5865727f8b918477685d5245392c2013060e1925303d4a5763707d8a8e817568574d53606d7a8692877b6e6154483b2d22170b0714212e3b4754616e7a8796877a6d6154473a2e2114070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030a0f13181d2021252a2d2e30313233333332302e2d2b2722201e1a14100b05000000000000000000000000000000000000000000000000000000000406070b0b0b090806030000000000000000000000000000000000000000000000000000000000020507080b0b0a090704000000000000000a1724313d4a5764707e7f7f7e71695f5342382d22170b00000000000000000000000004111d2935414c56626f7c7f7f7e7165584b3e3225180b000000000916222f3b4854606b707272706c6155493c3023160a000000000000000000000000000000000000000000000000000000000000000000000000000713202d3a4653606d79869285786c5f493f33271b0f030000000000000000000000000b1825323e4b5865717e8b97877a6d6054473a2d211407000000000000000000000613202c3945515d677985928b7e7165584b3e3225180b00000000020f1c2835424f5b6875818383838383838383838384918f8376695c504336291d100300000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c353535353535362f35393a3c3f44464c52565e616d727c8592948f82786d60594f433a2f1f160c0000000000000000000000000000030c151e262f383f444e535b60666c7074787b7e7f8080807f7e7c7975716d66605c606d7a8793877a6e6154473b2e211408000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007121d28313d45515c676f7c879286869286796d6053463a2d201307000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006131f2c3845515c66768390979992867b6e6154483b2e211508000000000005121e2a36424d576875828e8e817467564c4135291d11040914212d3a4754606d7a86918578695f535763707d8a918477695e53463a2d1c11060714202d3946525e687884918a7d7064574a3d2e23180c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001070d111314191e2021232526262626252422201f1b1714120e090300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1623303c4955616c707272716c62574d422f261c1106000000000000000000000000010d19242f3a47545f6a6f7272716c6256493d3024170b000000000713202c38444f596063656564615a5044392d201408000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a879185786b5e52452d22170b000000000000000000000000000d1a2733404d5a6673808d928578675d5145392c201306000000000000000000000714202d3a4753606d7a86988a7d7064574a3d3124170a0000000004111e2b3744515e6a77849090909090909090909091968f8376695c504336291d100300000000000000000000000000000814212e3b4754616e7a8794897c6f63564941414141414142424340454749495053565d60686d757f8692948f82796d665c50473d31281d0d04000000000000000000000000000000030c151d262d333d414950545b606368696e717273747373716f6d6664605c5454616d7a8794877a6e6154473b2e2114080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010c161f2934404b55606a73808d92929886796d6053463a2d201307000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004101c2834404b54626f7c858b8c877f72695e53463a2d21140700000000000714212d3a46535f697885918b7e7165584b3e2f24190d010613202c3945515d67768390887b6e6155556673808d8d817467574d42362a1e0a0005111e2a36414d566875818e8d807367554b4034281c10040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010406080e111414161819191a1918171513120f0b0605020000000000000000000000000000000000000000000000000000000000000106090b0c0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0b0a0805000000000000000000000814202d3944505a6164656564625a50453b311d140a000000000000000000000000000008131e2b37434e585f62656565625a5045392d2115090000000003101b27323d474f54565959575550473e33281c1004000000000000000000000000000000000000000000000000000000000000000000000000000714212e3a4754616d7a879184786b5e5145382b1e06000000000000000000000000000e1b2734414e5a6774818d9184776a554c4135291d1104000000000000000000000815222e3b4855616e7b8894897c6f6256493c2f23160900000000010d1a2734404d5a6773808486898c9092999d9d9d9e9c8f8376695c504336291d100300000000000000000000000000000814212e3b4754616e7a8794897c6f63564e4e4e4e4e4e4e4e4f504b515356535b6063686d737a818b92938e82796d675d544a3f352b1f160c0000000000000000000000000000000000030b141b22272f383f444a505356575f616465666767666462605c5453514b54616e7b8794877a6e6154473b2e211408000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040d18232f39434e58606d798390999386796d6053463a2d2013070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c18232e394754606a6f7b7e7f7c726d62574d42362a1e120500000000000815222e3b4855616e7b8897887b6f6255483c2f2215080004111d2935414b556673808c8b7e7165585c677683908a7d7064574a3d31251a0e00020e1925303f4c5865727f8b908376675c5145382c1f1306000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020507080a0b0c0d0d0c0b0a08060503000000000000000000000000000000000000000000000000000000000000000000070d121618191c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c181715110c06000000000000000004101c28333e485055575858585650483e33291f0b020000000000000000000000000000010f1b26323c464e54555858585650483f34291d110500000000000b16212b353d4448494c4c4a49443e352c22170b00000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a879185786b5e52452d22170b000000000000000000000000000e1b2835414e5b6874818e9083766a5d50432f24190d01000000000000000000000a1623303d495663707c8998877a6d6154473a2e21140700000000000d1926333f4b58646e73777a7c7f83868b90959b9f9c8f8376695c504336291d100300000000000000000000000000000814212e3b4754616e7a8794897c6f635b5b5b5b5b5b5b5b5b5c5d555d606265656c6f747a80868e93928a81796d675d554b42382e23190d04000000000000000000000000000000000000020a11171d262d33383f4446494d535557595a5a5a59585653514b46454855616e7b8894877a6e6154473b2e2114080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007121d27313d45515c666f7c87929386796d6053463a2d20130700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007121d2b37434e5860686e71726f6a625b51453b31251a0e0200000000000b1825313e4b5864717e8b9285796c605346392d20130600010d18242f3c4956636f7c898e81746857606d798692867a6d6054473a2d21140900000816232f3c4956626f7c899286796d6053463a2d2013070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010911181e2225262828282828282828282828282828282828282828282828282828282828282828282828282828282524211d17110900000000000000000b17222c363e44494a4c4c4b49453e362d21170d000000000000000000000000000000000a15202a343c4347494c4c4b49453f362d22170c010000000000040f19232b32383b3d3f3f3d3c39332c231a100500000000000000000000000000000000000000000000000000000000000000000000000000000713202d3a4653606d79869285786c5f493f33271b0f030000000000000000000000000f1c2835424f5b6875828e8f8376695c504336291d0800000000000000000000000c1925323f4c5865727f8b928578685e5246392d20130700000000000b17232f3b47525c6467676d6f73767a7e83888e92998f8376695c504336291d100300000000000000000000000000000814212e3b4754616e7a8794897c6f6868686868686868686869696a676d6f7174787c80858c92938f857e746d675d554b433930261c1107000000000000000000000000000000000000000000060b141b22272d3338393d4246484b4c4d4d4d4c4b494645403a3b4855616e7b8894877a6e6154473b2e21140800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010b151f2834404b545f6a737f8c9586796d6053463a2d201307000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f1b27323d464e565e616565625f5851493f33291f1409000000000004111d2935414c566774818e8f8276665b5044382b1f120600000713202d3a4653606d7985918477695f636f7c89908376685d5245392c20130700000713202d3a4653606d798692897c6f6356493c3023160900000000000000000002070b0d0d13130f0e0c09040000000000000000000000000000000000000306080913131212100c08020000000000000000000000000000000001070b0f111213130a0907040000000000000000000000000000000000000009131b23292e313235353535353535353535353535353535353535353535353535353535353535353535353535353531302d29221b12090000000000000005101a242c33393c3d3f3f3e3d39342d241b0f0600000000000000000000000000000000040e19222a32373b3c3f3f3e3d39342d241b11060000000000000007111921272c2f30323231302d28221a110800000000000000000000000000000000000000000000000000000000000000000000000000000006131f2c3845515c677986928579655b5044372b1f12050000000000000000000000000f1c2835424f5b6875828e908376695d50432e23180c0000000000000000000004101d2935404b556774818e9083776a564c41362a1e1105000000000007131f2a36404a5258555d606366686d71767b81868a8a8276695c504336291d100300000000000000000000000000000814212e3b4754616e7a8794897c7474747474747474747475757677787a7c7e8184898d92938f89827b716c605d554b433931271e150a0000000000000000000000000000000000000000000000020a11171c22282b2d31363a3b3e3f404140403e3c3a38342e3b4855616e7b8894877a6e6154473b2e2114080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030d18232e39424e58606d78838a86796d6053463a2d201307000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a16202b343d444d5254585955534e463f372d21170d0300000000000713202c3945525d687784908c807366544a3f33281c0f03000006121f2c3844505c6675828f887b6e6166737f8c8c807366564c4135291d1104000006131f2c3845515c667683908c7f7265594c3f31261a0e0200000000000001080e1317191a20201c1b19151009020000000000000000000000000000040a0f13151620201f1e1c18130d060000000000000000000000000000050c12171b1d1e2020171614100b050000000000000000000000000000000007111b252d353a3e3f4242424242424242424242424242424242424242424242424242424242424242424242424242423e3d39342d241b11060000000000000008121a22282d3031323231302d29221b120900000000000000000000000000000000000007101920262b2e2f323232302d29221b1209000000000000000000070f161b20222326262423201c1710080000000000000000000000000000000000000000000000000000000000000000000000000000000004101c2834404b5f6c79859286796c605346392d2013060000000000000000000000000e1b2834414e5b6774818e9083776a544b4034281c100400000000000000000006131f2c3945515d677683908d8174675a4e413025190d010000000000020e19242e3840474b4b515356565d61656a6e747b7e7e7d706356493d3023160a0000000000000000000000000000000814212e3b4754616e7a87948f8281818181818181818181818283838486898b8d9196918c87827c756e69615a514b433931271f150c0300000000000000000000000000000000000000000000000000060b11171c1f20262a2d2e313233343433312f2d2c282e3b4855616e7b8894877a6e6154473b2e21140800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007121d27303c44505c666e7b7e7e776c605346392d20130600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040f19222b323b4146474b4c4847433c342d251b0f050000000000000714212d3a4754606d7a86938a7d7063574a3d2d22170b00000003101c28343f4a5465727f8b8b7e72656676828f897c6f6356493c2f24190d01000004101c2834404b546773808d8f827568574d42372b1e12060000000000020a12191f2326272d2d292825211b140c03000000000000000000000000070f151b1f22222d2d2c2b28241f181007000000000000000000000000060f161d23272a2b2d2d2323201c1610080000000000000000000000000000010d18232d373f464a4c4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4b49453e362d22170c00000000000000000810171c20232425252524211d1710090000000000000000000000000000000000000000070e151b1f222225252524211d1711090000000000000000000000040b101316161919171614100b050000000000000000000000000000000000000000000000000000000000000000000000000000000000000c18232e45525f6b788592867a6d6053473a2d2014070000000000000000000000000d1a2734404d5a6773808d918478665c5145382c1f13060000000000000000000714202d3a4753606d7a86928b7e7164584b3e312518080000000000000008121c262e363b39404547494c5254585f62696e7171706b6054483b2f2216090000000000000000000000000000000814212e3b4754616e7a8794948f8e8e8e8e8e8e8e8e8e8e8e8f9090919392908d8b8884807b756f6b615e575045403931271f150d0300000000000000000000000000000000000000000000000000000000060b0f12131a1e21222426272727262523201f222e3b4855616e7b8894877a6e6154473b2e211408000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b151e28343f4a545e696e71716c655b5044372b1f1205000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007101920293036393b3e3f3c3b37322a221b1309000000000000000a1724303d4a5763707d8a96877a6d6154473a2e211406000000000c17232e3b4855626e7b888e8275666d79859285796d6053463a2d201308000000000c18232e3e4a5764717d8a928578695f53473a2d21140800000000010a141c242b2f333439393534312c261e150c020000000000000000000007101920272b2e2f393939383530292219100600000000000000000000050f1820282f3337383939302f2c27211a11080000000000000000000000000006121e29353f495157595b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b585650483e34291d11050000000000000000050b101416171919181715110c0600000000000000000000000000000000000000000000040a0f1315161919181715110c0600000000000000000000000000000307090a0c0c0a0a08040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000071f2b3845525e6b788591877a6d6154473a2e2114070000000000000000000000000c1925323f4c5865727f8b9286796d6053463a2d2013070000000000000000000a1723303d4a5663707d8996887b6e6255483b2f22150800000000000000000a141c242a2f2f35393a3c4146474e53575f6164646360594f44382c2013070000000000000000000000000000000814212e3b4754616e7a878a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8988878583817e7b77736e69636059534d453e352f271f150d03000000000000000000000000000000000000000000000000000000000000000306090e12141518191a1a1a1918161315222e3b4855616e7b8894877a6e6154473b2e21140800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030c17232e38424d575e616464605b53493f33271b0f03000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070e171f252a2d2e32322f2e2b26201810090100000000000004101c2834404a546673808d918477685e5246392d201307000000000614212e3a47535f6a78849185796d6f7c898f8275665c5144382c1f1206000000000714212e3b4754616e7b8796887b6e6155483b2e2215080000000008121c262e363b3f40464642413d3730271e1409000000000000000000040f19222b32373b3c46464544413b342b22180d020000000000000000010c16202a323a3f434546463d3c38332c231a10050000000000000000000000000916222e3a46515b626568686868686868686868686868686868686868686868686868686868686868686868686868686864625a5045392d2115080000000000000000000004080a0a0c0c0b0a08050000000000000000000000000000000000000000000000000000030608090c0c0b0b090501000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004111e2a3744515d6a778490887b6e6255483b2f2215080000000000000000000000000a1723303d4a5663707d8999887b6e6255483b2f24180c000000000000000006131f2b37434e586673808d918477695f53473a2e2114080000000000000000020a12191f1d24292c2d3035393c43474d5355575756544f473d32271b10040000000000000000000000000000000714202d3a4753606d797e7e7e7e7e7e7e7e7e7e7e7e7e7e7d7d7d7c7b7a787674716e6966615f57544f46423b3329241d150d030000000000000000000000000000000000000000000000000000000000000000000000020507080b0c0d0e0d0d0b090815222e3b4855616e7b8894877a6e6154473b2e211408000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006111c26303b454d5354575753504941382d22170b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050d14191e2021252622211f1b150e06000000000000000006121f2c3844515c667683908e817568564c41362a1d11050000000006121f2b37434e586874818e897c6f727f8c8b7f7265544a4034281c1004000000000714202d3a46525e697884918b7e7164584b3e2f24190d010000020e19242e3840474c4d53534f4d49423930261b100400000000000000000a15202b343c434749535352514c463d34291f1308000000000000000007121d28323c444b505153534a48443d352c21160b0000000000000000000000000b1825313e4a57626d72757575757575757575757575757575757575757575757575757575757575757575757575757575716c6256493d3024170a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000306070808080807070604000000000000000000000000000000000000000000000000000000030f1c2936424f5c6975828f897c706356493d3023160a0000000000000000000000000814212e3b4754616e7a87958b7e7165554b4035291b1106000000000000030c15222e3b4754606a7784918d807467574d42372b1e120600000000000000000000080e1312181d1f2024292d31373c4246484b4b4948443d352b21160b0000000000000000000000000000000006131f2c3845515c676d71717171717171717171717171717170706f6e6d686a6765615f5755534d48433d3631292118120b030000000000000000000000000000000000000000000000000000000000000000000000000000000000000001010000000815222e3b4855616e7b8894877a6e6154473b2e2114080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a151e29333b4246484b4b46443f382f261b110600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002080e11141418191515120f0a040000000000000000000713202d3a4653606d7985928b7f7265584c3f3025190d0100000000020f1a26313e4b5864717e8b8c7f7376828f887b6e6255483b2e23180c000000000005111e2a36424d576875828e8e817467564c4135291d1104000007131f2b36404a52585a60605c59544b42372c21150900000000000000030f1b27323c464e545560605f5d574f463b3024180c00000000000000000b17232f3a444e565c5e606056554f473d33271c100400000000000000000000000c1926323f4c5965727f8282828282828282828282828282828282828282828282828282828282828282828282828282827e7164584b3e3125180b00000000000000000000000000000000000000000000000000010406070808080807060400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040607060b10121314151515141312100c0707050200000000000000000000000000000000000000000000010e1b2834414e5b6774818e8a7e7164574b3e3124180b0000000000000000000000000714202d3946525e687784908e8175675d5145382d22170b0100000000000b151e2a36424d56626f7c8996897c6f6356493c31261a0e0200000000000000000000000201070c101314191d20262b31373a3b3e3e3d3b38322b23190f040000000000000000000000000000000004101c2934404b555c6064646464646464646464646464646464636362615d565a5855534d4847423c38322a251f170f0701000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000815222e3b4855616e7b8894877a6e6154473b2e211408000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030c17212931363a3b3e3e3937332d261d140a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020507080b0c0908060300000000000000000000000916232f3c4956626f7c8998887c6f6255493c2f2216080000000000000a14212e3b4754616e7a8790837679859184786a5f53473a2e1c12070000000000020e1a25303f4c5965727f8c908477685d5245392c20130700000b17232f3b47525c64676c6c68655d54493d3125190c0000000000000006131f2b37434e5860626c6c6c6961574c4135281c1003000000000000020f1b27333f4b5660686b6c6c6361594f44382c20140700000000000000000000000f1c2835424f5b6875828e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8d8074675a4d4134271a0e000000000000000000000000000000000000000001040707080d111314141515141413100c07070603000000000000000000000000000000000000000000000000000000000000000000000000000000070c10131317171c1f202122222221201f1c181514120e09030000000000000000000000000000000000000000000d192633404c5966737f8c8c7f7265594c3f3226190700000000000000000000000005111e2a36414c566773808d9285796d6053493f33271d1308010000040b121d27303946525e6974818d9184776b6054483b2f201509000000000000000000000000000000000406080d11151a1f262b2d2e3131302f2c27211911070000000000000000000000000000000000000c18232f39434b51535757575757575757575757575757575757565554524c4e4b4846423b3a37312c27211a140d050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000815222e3b4855616e7b8894877a6e6154473b2e21140800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050f171f252a2d2e31312d2b27221b140b020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c1926323f4c5965727f8c9285796d6053463a2d2013070000000000000714202d3946525e6877849086797c898e817468584e43372b1f0b000000000000000916232f3c4956626f7c8993867a6d6054473a2d21140600000d1926333f4c58646e737979756f65594d4134281b0e020000000000000815222e3b4754606a7679797873695d5144382b1e120500000000000004111d2a3743505c6872787979706b6155483c2f23160900000000000000000000000f1c2835424f5b6875818888888888888888888888888888888888888888888888888888888888888888888888888888888074675a4d4134271a0e00000000000000000000000000000000000001080d11131417191d202121222221201f1c18161312100b060000000000000000000000000000000000000000000000000000000000000000000003090e12181c1f202323282b2d2e2e2f2e2e2d2c282321211e1a14100b06000000000000000000000000000000000000000b1825323e4b5865717e8b8d8073675a4d402e23180c000000000000000000000000020e1925303c4955626f7c88958a7e71655b50443a2f2419130c070c10151d232e39424e58616e7b86928c7f7266594f44382c1f0e030000000000000000000000000000000000000001050a0f141a1e212224242322201b160f070000000000000000000000000000000000000007121d2731394045474b4b4b4b4b4b4b4b4b4b4b4b4b4b4a4a4a4948474641413e3b3a36312d2b261f1b160e0903000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000815222e3b4855616e7b8894877a6e6154473b2e2114080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050d141a1e21212424201f1b17110a0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003060707080808070706040000000000000000000000000000000000000000000000000000000000000000000000000000000005121e2b37424d576875828f908376665c5144382c1f120600000000000005111e2a36414d566774808d897d7f8c8a7e7164574b3e31261a0f000000000000000713202d3a4653606d7986928a7d7063574a3d2e23170c00000d1a2734404d5a67738086868175685c4f4235291c0f020000000000000916222f3c4955626f7c868685786c5f5245392c1f120600000000000005121e2b3845515e6b788486867d7063564a3d3023170a00000000000000000000000815222e3b4855616e7b7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7b6e6154483b2e21150800000000000000000000000000000000050b1013191d20212424292c2d2e2f2e2e2d2c292323201f1c17110e08020000000000000000000000000000000000000000000000000000000000040a0f151a1d23282c2d302e34383a3b3b3b3b3a3a38342e2e2d2a251f1c17110a0200000000000000000000000000000000000a1723303d4a5663707d898e827568544a4034281c10040000000000000000000000000815222e3b4754606a7683909083786c60554b413529241e1818181c1f272e34404b545f6a74808d92857a6d6054473d32271b0f000000000000000000000000000000000000000000000003090e1214151818161613100b040000000000000000000000000000000000000000010b151f272f34383a3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3d3d3c3b3a393530322e2d2a26211e1a150f0a040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000815222e3b4855616e7b8894877a6e6154473b2e21140800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003090e121415181813120f0b06000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030606060b10121314151515141313100c0707060400000000000000000000000000000000000000000000000000000000000000000000000714212d3a46535f697885918d807367544a4034281c1004000000000000020e1925303d4a5763707d8a8c80828f877a6d6154473a2e2114090000000000000006131f2c3845515c667683908c807366544a3f34281c1003000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000916222f3c4955626f7c889285786c5f5245392c1f120600000000000005121e2b3845515e6b788491897d7063564a3d3023170a00000000000000000000000714212d3a46535f696e6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6e695e52463a2d2014070000000000000000000000000000040a0f161c1e24292c2d312f35393a3b3b3b3b3a38342f302d2b28231c19140c07010000000000000000000000000000000000000000000000000001080d161b20262b2e34383a3d403f444647484848474644403f3b3a36312b28231c140c07010000000000000000000000000000000815222e3b4855616e7b88918477665c5144382c1f120600000000000000000000000006131f2b37434e5864717e8a958a7d71675d51453f352f29242523282c30394045515c666f7c86928c8073675d5145392b21160a00000000000000000000000000000000000000000000000000020507080b0b0a0907040000000000000000000000000000000000000000000000030d151d23292c2d3131313131313131313131313131313130302f2e2d29242522211e1a14120e090300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000815222e3b4855616e7b8894877a6e6154473b2e2114080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020507080b0b060503000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060b0f121316171c1f202121222121201f1c18161312100c070000000000000000000000000000000000000000000000000000000000000000000815222e3b4855616e7b88978a7d7164574a3e2e23180c00000000000000000814202d3a4753606d7a86918486908377685e5246392d2013070000000000000004101c2834404b546773808d8f8376665c5044382c1f1206000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000916222f3c4955626f7c889285786c5f5245392c1f120600000000000005121e2b3845515e6b788491897d7063564a3d3023170a000000000000000000000005121e2a36424d575f61626262626262626262626262626262626262626262626262626262626262626262626262626262615e574d42362a1e120500000000000000000000000001070d161b21272c2f35393a3e4141454747484847474540403c3a38342e2a251f18120b030000000000000000000000000000000000000000000000040c131921272c3137394045464a4d4a5053545555555453514a4c4846423b38342e261e18120b0300000000000000000000000000000613202d394653606c79859286796d6053463a2d201307000000000000000000000000030f1b27323c4653606c7883909184796d605b5145413a352f322e34383c424b515c606d7983909184796d60554c413529190f040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b12181c1f202424242424242424242424242424242424232221201d19181514120e090602000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000815222e3b4855616e7b8894877a6e6154473b2e2114080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030a0f11171c1f202323282b2d2d2e2f2e2e2d2c282323201f1c18120f0a030000000000000000000000000000000000000000000000000000000000000b1825313e4b5864717e8b96877b6e6154473b2e21140700000000000000000613202c3945515d6776839091928d807367564c41362a1e110500000000000000000c18232e3e4a5764717d8a9285796d6053463a2d201307000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000916222f3c4955626f7c889285786c5f5245392c1f120600000000000005121e2b3845515e6b788491897d7063564a3d3023170a0000000000000000000000020e1a26313b454d535555555555555555555555555555555555555555555555555555555555555555555555555555555554524d453b30251a0e020000000000000000000000040c131821272c33383a4145474a4e4c51545455555453514b4d4946443f38363029241d150d07000000000000000000000000000000000000000000080d161e242932383c42474b5153565a545c606161626161605c545854534d46443f383029241d150d050000000000000000000000000005121f2b3744505b65768390887b6e6255483b2f221506000000000000000000000000000a151f2b3744505b656f7c87938e81746d635b514c45403f3f404045464e545c606e74808d928a7d70675d51433a2f2419070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001070c101314181818181818181818181818181817171716151413110d0808070502000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000815222e3b4855616e7b8894877a6e6154473b2e211408000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040a0f151a1c22282b2d2f2e34383a3a3b3b3b3a3a38342e302d2c28231c1a150e0903000000000000000000000000000000000000000000000000000000010e1b2834414e5b6774818e918478695e52463a2d201407000000000000000004111d2935404b5566737f8c9798897d7063564a3d3025190d0100000000000000000715212e3b4854616e7b8796887c6f6255493c2f221609000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000916222f3c4955626f7c889285786c5f5245392c1f120600000000000005121e2b3845515e6b788491897d7063564a3d3023170a00000000000000000000000009141f29333b4246484949494949494949494949494949494949494949494949494949494949494949494949494949494846423b33291f14090000000000000000000000060d161d242932383d44484c5254575b555d6061626161605c555a5653504a46413b352f271f1910090000000000000000000000000000000000000007111a1f282f353d43484d53545c60636669666d6e6e6e6e6d6d666865615e5753504a423d352f271f170e05000000000000000000000000030f1b27333f49536774808d8a7d7164574a3e2d22170b00000000000000000000000000030f1b27333f4953606a73808c938c7f726d605d55514b4c4b4c4b5153585f666d74808c928d80746b61554b4031281e1308000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000406070b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0a0a0908070705010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000815222e3b4855616e7b8894877a6e6154473b2e2114080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002080d151b20262b2d3338393c403f44464748484847464540403d3a38342e2b26201a140b06000000000000000000000000000000000000000000000000000004111e2b3744515e6a77848a8a817568574d42362a1e11050000000000000000010d18242f3c4956636f7c898a8a86796d6053473a2d2014080000000000000000000714202d3a46525e6978848a8a7f7265584c3f3225190c000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000916222f3c4955626f7c889285786c5f5245392c1f120600000000000005121e2b3845515e6b788491897d7063564a3d3023170a000000000000000000000000030d18212931363a3b3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3b3a36302921170d0300000000000000000000060f181f282f353d44484f54565d6064676a676d6e6e6e6e6d67696663605c54524d454039312b221b120900000000000000000000000000000000030b1218232c313a41454e54575f62666d70737678797a7b7b7b7a797775726e6964605c544f454039312920170e050000000000000000000000000b17222d3e4b5865717e8b8c7f736653493f33271b0f03000000000000000000000000000b17222d38414e58606d78828f93887f746d67605d55585859545c60636a6f79808c929082786d60594f43392f1f160c010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000815222e3b4855616e7b8894877a6e6154473b2e211408000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040c131920262b3137383f4446494c4a5053545455545453514b4d494644403937312a261f17110a02000000000000000000000000000000000000000000000000000b1724313e4a5764717e7e7e7c6f6255483c30251a0e020000000000000000000713202d3a4653606d787e7e7e7d70675d5145382c1f130600000000000000000005121e2a36424d5763707d7e7e7c6f6255493c2f221609000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000916222f3c4955626f7c889285786c5f5245392c1f120600000000000005121e2b3845515e6b788491897d7063564a3d3023170a00000000000000000000000000060f181f262a2d2e2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2e2d2a251f170f0500000000000000000000061018212a313a40454f54596063686d717476787a7a7b7b7a7a7876736f6d66615e56514b433d342d241b12090000000000000000000000000000030c151c2328353e434c52586062696e74797d8082848687888888878684827f7b76716d666059514b433b322920160c0300000000000000000000000616222f3c4955626f7c888f8275655b5044372b1f12050000000000000000000000000006111b262f3d44505c666d7a8390938c817a726d676665656667666d70757c838d928f83796d665c51473e31271d0d0400000000000000000000000004080a0b1313130908060300000000000000000000000000000000000000000004080a0a1313130b0a08050000000000000000000000000002050708131313090907030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000815222e3b4855616e7b8894877a6e6154473b2e2114080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070e161e242932373c43474a50535659545c606061626161605c545a5653514a47433c363128231c140c050000000000000000000000000000000000000000000000000a1723303c4955616c7171716f6a5f53473a2e1f14090000000000000000000006121f2c3844505c666d717171706b61554b4035291d1004000000000000000000020e1a25303b4854606b7071716f6a6054473b2e221508000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000916222f3c4955626f7c889285786c5f5245392c1f120600000000000005121e2b3845515e6b788491897d7063564a3d3023170a0000000000000000000000000000060d141a1e212222222222222222222222222222222222222222222222222222222222222222222222222222222221201e1a140d0500000000000000000000060f18222a333c434b515960636b70757a7e8183858787888887868482807c79736e68605d554e463e362d241b1108000000000000000000000000030d151e272e343f474f565d606a6f757b8185898d8f9192929190909192918e8b87837e78706b605d554d443b32281e150b00000000000000000000000713202d3a4653606d79859285796c605346392d20130600000000000000000000000000000a141d28343f4a545d686d7a838d928e847e7975737272737476797d828790928c82796d675d544a40352c1f150b0000000000000000000000050b101416172020201615130f0a040000000000000000000000000000000000050b10141617202020181715110c0600000000000000000002080e1114142020201615130f0a04000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000815222e3b4855616e7b8894877a6e6154473b2e21140800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000061119202830353c43474e53545b60626668666d6d6e6e6e6d6d66696763605c54534e46423b342e261e170e0700000000000000000000000000000000000000000000000814212d3945505a61646464625f584e43372b1f0d020000000000000000000003101c28343f4a545c606464646361594f43392f24180c000000000000000000000009141f2c38444f59606364646260584e43372b1f1306000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000916222f3c4955626f7c889285786c5f5245392c1f120600000000000005121e2b3845515e6b788491897d7063564a3d3023170a00000000000000000000000000000003090e1214151616161616161616161616161616161616161616161616161616161616161616161616161616161514120e090300000000000000000000030d18212a343c464e555d606b6f777d82868a8e9092929190909192918f8d8985807b736d67605850483f362d231a0e0500000000000000000000010b151f2730394044515961686d747c82878d92918d8a8886858484848485888b8e92908a847d746d675e564d443a30271d12070000000000000000000006121f2c3844515c6675828f887b6e6255483b2f22150a0000000000000000000000000000020b17232e38424c565e686d78808990918b8582807f7e7f808386898f928e867f776d675d554b42392e231a0d03000000000000000000000810171c2123242d2d2c22211f1b150e060000000000000000000000000000000810171c2023242d2d2d2524211d17100900000000000000050d14191e20212d2d2d23221f1b160f070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000815222e3b4855616e7b888c877a6e6154473b2e2114080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020a1117232b323a41464e54585f62666c6f737577797a7b7b7b7a79787673706d66625f58534d443f383029201910080000000000000000000000000000000000000000000005111c28333e48505557575755534e463c31261b0f0000000000000000000000000c17232e38424a505357575756554f473d31271d1207000000000000000000000003101c27323d474f5456575755544e463c32271b0f03000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000916222f3c4955626f7c889285786c5f5245392c1f120600000000000005121e2b3845515e6b788491897d7063564a3d3023170a000000000000000000000000000000070e1317191a1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d191816120d07000000000000000000010b151f2a333c464e585f676d747d83898f92908d8987858484848485878a8d91928c8680796f6a625a50483f352c20170d0200000000000000000007121d273139424a515b636b707a81878f938e8884807d7b797877777778797b7e82868c92918981796e695e564c43392e23180c0400000000000000000004101c2834404a5465727f8b8b7e7265584b3f31261b0f03000000000000000000000000000006111c26303a434c565e666d747d838a8f928f8c8b8b8c8d8f92908c86817b726c655d554c433a30271c11080000000000000000000008121a22282d30313939392f2e2b26201810060000000000000000000000000008111a22282d303139393931302d29221b12090000000000050e171e252a2d2e393939302f2c272119100700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a7f7f7f796d6053473a2d20140700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020b141b2227353d444c52585f626a6f74797c7f8284868787888787868482807d79746e6a615f57504a423b322b221a1108000000000000000000000000000000000000000000000c17222c363e45494a4b4b4847433c342a20150a00000000000000000000000006111c2630383f44464b4b4b4a48443d352c1f150b010000000000000000000000000b16212b353d4448494b4b4947433c342b20150a00000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000916222f3c4955626f7c889285786c5f5245392c1f120600000000000005121e2b3845515e6b788491897d7063564a3d3023170a00000000000000000000000000020a12191f2326272a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2525221e181109010000000000000007121d27313c454e585f6a6e79818990938e8983807c7a7877777778797b7d81848a90928d847c716c625a50473d32291f14080000000000000000000c18232f39434b545c606d727d848e939087817c7874716e6d666b6a6a666c6e71757a7f868f938e837b6e685e554b40342821160a000000000000000000000c18232e3b4855616e7b888e817568584e43372b1f12060000000000000000000000000000000a141e28313a444c545c606b70787d8286898b8c8c8c8b8986837f7b756e69605b534c433a31281e150b0000000000000000000005101a242c33393c3e4646463c3b37322a22180b020000000000000000000000040d1a232c33393c3d4646463e3d39342d241b1006000000020d1720293036393b4646463c3b38322b23190f04000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000713202c3945525d686d7272726d675d5145392c1f1306000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a141d262d333f474f565d616a6f767c8085898c8f9192999a939a9a93918f8d8985817b756e69605c544d443d342c231a110800000000000000000000000000000000000000000005101a242c33393c3e3e3e3c3a37312a22180e04000000000000000000000000000a151e262e34383a3e3e3e3d3c38332c231a0d0300000000000000000000000000050f19232b32383b3d3e3e3c3b37322b22190e0400000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000916222f3c4955626f7c889285786c5f5245392c1f120600000000000005121e2b3845515e6b788491897d7063564a3d3023170a000000000000000000000000000a141c242a2f323337373737373737373737373737373737373737373737373737373737373737373737373737373732312e29231b1309000000000000000c18242f39434d575f6a6f7c838e939087817c7773706d686b6a6a656c6e7074797e838c9291867e716c62594f443b3025190e040000000000000004101c2934404b555c666d747f8791928c837c756f6a676462605c545d545b606264686d737b828d9290837a6d675c51453d32271b0f050000000000000000000714212d3a47535f6977849184786a5f53473a2e211509000000000000000000000000000000020c161f28323a424b515960666d7075797c7e7f7f7f7e7c7a77736e69615e575049413a31281f160c03000000000000000000000b17222c363e44494a5353534947433c342a1d140a00000000000000000000010c161f2c353e44494a5353534b49453e362d22170c00000008141e29323b4146535353534948433d352b21160a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004111d2935414c565d60656565605d554b4035291d100400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006111b262f383f44515960686d747c82888d9293908e8b898887868687888a8c9092928e87827b736d665e564e463e352c231a100700000000000000000000000000000000000000000008121a22282d303131312f2e2b26201810060000000000000000000000000000030c151c23282c2d313131302f2c27211a110800000000000000000000000000000007111921272c2f3031312f2e2b27201910070000000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000916222f3c4955626f7c889285786c5f5245392c1f120600000000000005121e2b3845515e6b788491897d7063564a3d3023170a00000000000000000000000007121c262e353b3f404343434343434343434343434343434343434343434343434343434343434343434343434343433f3e3a342d251b1107000000000004101d2935404b555f696f7c8591928d837c756f6a6663615e565d535b606164666d71787f879192887e716b61564d41362a20150a0000000000000006131f2c3845515c676d78818c9391867f786f6a626058575553514a514a505355565e61696e77808c929083796d60594f43382c21160b00000000000000000006121e2b37424d576774818d887b6f6255483c30251a0e02000000000000000000000000000000040d162028303940454f545c6064676d6f71727372716f6d6866615e57534d443f382f281f160d040000000000000000000004101c28333e4850555760605f55534e463c2f261c110600000000000000000008131e28313e47505557606060585650483e34291d110500020e1925303b444c525f60606056544f473d32271b0f03000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010d19242f3a444c525459595953514b43392f24180c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000071117222d384149505b626b707a81878f94918c8784817e7c7b7a79797a7b7d7f83868b91938f867f786e6960584f473e352c23190f040000000000000000000000000000000000000000000810171c212324242422211f1b150e0600000000000000000000000000000000030a11171c1f202424242323201c1610080000000000000000000000000000000000070f161c202223242422221f1b150e07000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000916222f3c4955626f7c889285786c5f5245392c1f120600000000000005121e2b3845515e6b788491897d7063564a3d3023170a0000000000000000000000020e19242e3840474b4d5050505050505050505050505050505050505050505050505050505050505050505050505050504c4a463f372d23180d01000000010c16202c3845515d676e7b8592918c80786f6a6260585654524c5149505354545c60666d727c859193877d70685e52463c32261b0f010000000000000714202d3a4753606d79828e938f847c726c665f58544e4a48464440443f4446484c52575e656c73808c938d80736b6054483d33271c10000000000000000000020e1a26313d495663707c898c7f7366574d42362a1e110500000000000000000000000000000000040e161e272e343d424a5053555c6063656566656463605d5654524d46423b332d261d160d0400000000000000000000000814212d3944505a61646c6c6c625f584e42382d22170b0200000000000000030d19242f3a43505a61646c6c6c64625a5045392d2115080005111e2a36414c565e6c6c6c6c6360594f43382c1f13070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008131e28323a4145474c4c4c4745403931271d12070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040e192327333f49535b606d727d848e93928b84807b7774716f6e6d6c6d6d6e7073767a7f848b91928c827b6f6a61594f473e352b21160a00000000000000000000000000000000000000000000050c1114171718181515120f0a0400000000000000000000000000000000000000060c101213181818171614100b0500000000000000000000000000000000000000050b1013161618181615130f0a0400000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000916222f3c4955626f7c889285786c5f5245392c1f120600000000000005121e2b3845515e6b788491897d7063564a3d3023170a000000000000000000000007131f2a35404a52575a5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d585651493f34291e120600000008131e2b37424d57606d798390928c7f746d666058544e49474641443f4446484a50545c606a6f7c859292857a6e61584e43372b1d1307000000000003101c2936434f5c6976828f938e827a6f6a605b544e47433e3b3a38342e3338393b41464d535b606e75818e93877c6f63594f44382c1d12070000000000000000000913202d394653606c7884908376695e52463a2d2015090000000000000000000000000000000000040c151d232830383f44464b51535658595959585654524c4846423b363127221b140b040000000000000000000000000a1623303c4955616c717979796f6a5f544a3f33281f1409000000000000010b151f2935414c56616c70797979716c6256493d3024170a000714202d3946525e68767979796f6b6054483b2f22150900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010c1620282f35393a3f3f3f3a39352f271f150b0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020c16202b353d44505b656c737f8791928d857e78736e696765626160606061626466686d72787e858e9390857c706b61594f473d32271b0f03000000000000000000000000000000000000000000000005080a0b0b0b0908060300000000000000000000000000000000000000000000000306070b0b0b0a09070400000000000000000000000000000000000000000000000407090a0b0b09080603000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000916222f3c4955626f7c889285786c5f5245392c1f120600000000000005121e2b3845515e6b788491897d7063564a3d3023170a00000000000000000000000a17232f3b47525c63666a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a65625b51463a2e2216090000010d19242f3a47535f6974808d948c80736d605c544e47433d3a3936303337393b3f444a5058606a707d87938e81756a5f54473a2f24180d0100000000000b1824313e4b5764717e888e81786d685f58504a423c37322f2d2c2823282b2d30353b4149505c616d7a85919083766b605448392e23180c00000000000000000005121f2b3744505b6573808d877b6e6154473c31261a0e000000000000000000000000000000000000030b12181e262e34383a404546494b4c4c4c4b494745413b3a36302a251f17110a02000000000000000000000000000b1724313e4a5764717d8686877c6f665b50443b30251a0d04000000000007121d27313945525d68707e8686867e7164584b3e3125180b000814212e3b4754616e7a8686867d6f6356493c302316090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040d161e24292c2d3232322d2c29241d150d03000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008131e28323d47515b606c77808b93928a817a716d66615e57585655545353545557565d60656c7179818a9292867d706b61594f43382c1f1307000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000916222f3c4955626f7c889285786c5f5245392c1f120600000000000005121e2b3845515e6b788491897d7063564a3d3023170a00000000000000000000000c1926323f4b57636e73767676767676767676767676767676767676767676767676767676767676767676767676767676726d62564a3e3125180b000004111d2935414c56626e7b87928f82786c605b514a423d37322e2d2a25272b2d2e34383f444e58606b74808d93877c6f62554b4035291d110400000000000a1724303d4955616c727f81786d665d564e443f382f2b2722201f1c181c1f2025292f383f46525d68717e8b94897d7063554b4034281c10040000000000000000030f1b27333f4953626f7c888b7e7265574d42372b1c120700000000000000000000000000000000000000070c141c23282b2e34383a3c3e3f403f3e3c3a39352f2d2a251f1a140b060000000000000000000000000000000a1623303c4955616c75818e9083786c60574d42362a1f160c01000000030c18242f39434f59606d7a84918f82756c6256493d3024170a000814212e3b4754616e7a8793897c6f6356493c30231609000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040c13191d2021262626201f1d18120b030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020c1924303a444f59626d73808d9292867e746d68605c54534d4b494847464647484a4c52535b60676d747e869292877d706b6054483b2f221509000000000000000000000406070604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001040607080808080706040000000000000000000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000916222f3c4955626f7c889285786c5f5245392c1f120600000000000005121e2b3845515e6b788491897d7063564a3d3023170a00000000000000000000000d1a2733404d5a6673808383838383838383838383838383838383838383838383838383838383838383838383838383837f7265584c3f3225190c00000713202c3945525d6875818e92867b6e665b50444039302b2721201e191b1f2023282e343d464f59616d7a85928e8174675d5145392c20130600000000000815212d3945505a636d72786c665c544c443c332d261d1b151312100c0f1213191d262d35414c56606d7984918e8174675c5145382c1f13060000000000000000000b17222d3847535f6a7784908376695f5347392e23180c0000000000000000000000000000000000000000020a11171c1f23282c2d303232333231302d2c2924201e1a140e0903000000000000000000000000000000000814212d3944505a616d7a85928b7f72695e52463e31281d13070000000b151e2935404b55606b74818e92857b6e615a5045392d211508000814212e3b4754616e7a8794897c6f6356493c302316090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001080d1113141919191413100c07010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a141e2935414c56606b727f8b9292857c716c605d56504a46423e3c3b3a393a3a3b3d41454950555d606c717c859192867c6f6356493c302316090000000000000001070c10131413100c070100000000000000000000000000000000000000000000000000000000000000000000000002060808080d111314151515141313100c07070401000000000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000916222f3c4955626f7c889285786c5f5245392c1f120600000000000005121e2b3845515e6b788491897d7063564a3d3023170a00000000000000000000000f1c2835424f5b6875828e909090909090909090909090909090909090909090909090909090909090909090909090908d8074675a4d4134271a0e00000714212d3a4754606d7a86928d8074695f544a3f342e271e1b1413110d0f1213171c2328343d46525d6874808d92857a6d6053473a2d201407000000000005111d28343e48515b63656c655b544a423a3228221c140b0a070604000306080b141b24303a45515c6673808d9285796d6053463a2d20130700000000000000000006111b2b37434e5865727f8c887b6e62544a4034281c1004000000000000000000000000000000000000000000060b1012181c1f202325262626252321201d1914120e090300000000000000000000000000000000000004101c28333e46525e68717e8a92867b6e615a50433a2f24180c030007121c27303945515d67707d89938b7e71695e52483e34291d1105000814212e3b4754616e7a8794897c6f6356493c30231609000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010407070c0c0c070604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006111c26303846525d68707d879392867c6f6a615a524c443f3836312f2e2d2d2d2e2f2f35383f444b515a616a6f7b8491877e7164574b3e3124180b000000000000030b12181d1f201f1d18120b0300000000000000000000000000000000000000000000000000000000000000000104090f12141519191d202121222221201f1c181413110d080200000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000916222f3c4955626f7c889285786c5f5245392c1f120600000000000005121e2b3845515e6b788491897d7063564a3d3023170a00000000000000000000000f1c2835424f5b6875818686868686868686868686868686868686868686868686868686868686868686868686868686868074675a4d4134271a0e00000b1825323e4b5865717e8b95887b6e62574d42382d231c150c0a0705010305060c1117222935414c56626f7c8998897d7063564a3d3023170a0000000000000c17222c363f4951535b605b534a423930282017110a020000000000000000020a131e2834404b54636f7c8998897c6f6356493c30231609000000000000000000000f1b26323c4754606d7a868d8073665c5144382c1f160a000000000000000000000000000000000000000000000003070c101313161819191918161413110d0805020000000000000000000000000000000000000000000b17222a36414c56616c75828f8f82756c61554b4135291e150a020b18232e39424e58606d7984918f82766c62574d42362d22170c00000814212e3b4754616e7a8794897c6f6356493c302316090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b17232e38424f59616d7a849192877d706a60585045413a342e2a252322212020212224292d333a4145505860696e7b857f726c6155493d3024170a0000000000080d151d24292c2d2c29241d150d08000000000000000000000000000000000000000000000000000000000001070d11151a1f21222624292c2d2e2f2f2e2d2c282321201d19130f0a040000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000916222f3c4955626f7c889285786c5f5245392c1f120600000000000005121e2b3845515e6b788491897d7063564a3d3023170a00000000000000000000000613202d394653606c78797979797979797979797979797979797979797979797979797979797979797979797979797979796c605346392d20130600020e1b2835414e5b6874818e9083776a5f53453b2f261c120b03000000000000000006101924303a4653606d7985928c7f7366594c403326190d00000000000006101a242e373f41495053504941382f271e160d060000000000000000000000020c18232e3a4653606d7986928b7e7265584b3f3225180c000000000000000000000a15202c3945525d6874818e85796d6053463d32271b0f0400000000000000000000000000000000000000000000000000040607090b0c0d0c0b0907070401000000000000000000000000000000000000000000000000050d1925303a44505a616e7b85928a7d70675d51453d30261c110a141d2834404a54606a73808d92857b6e615a50453b30241b100600000814212e3b4754616e7a8794897c6f6356493c30231609000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003101c28343f4a54606b75818e948b7e726b60584e463e353028231c1a16151413131415191b22272f353e464e575f696e7a726d625a5045392d2115080000000008121a1f272f35383a38352f271f1a1208000000000000000000000000000000000000000000000000000002080d13181d20262b2e2f322f35393a3b3b3b3b3a38342e2d2c29241e1b150e0903000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000916222f3c4955626f7c889285786c5f5245392c1f120600000000000005121e2b3845515e6b788491897d7063564a3d3023170a000000000000000000000006121f2b3844505b666c6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6c665b5044382b1f120600030f1c28333f4a546a7784908d817467574e4233291d140a000000000000000000000008131f2b3844505c667783908e8174685b4e4135281b0e0000000000000009121c252e2f383f4446443f382f261d150c040000000000000000000000000007131f2c3845515c677784918d8174675a4e4134271b0e0000000000000000000004111d2935414c56626f7c888a7d7164584e43382b20150a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008131e29323e46525e68717e8b9184796d60584e42382e2317111c262f3844515c666f7c87928b7e71695e52483f33291f12090000000814212e3b4754616e7a8794897c6f6356493c30231609000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006121f2b3844505c66707d89938f82766d62594f463d3429241e17110e090807060707080d11171d2429343d454d575f686d68625b51483e34281d110500000005101a242c3139404547454039312c241a0d04000000000000000000000000000000000000000000000000060b13191d24292c31373a3b3f42414547484848474645403e3a3935302b27201a140b060000000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000916222f3c4955626f7c889285786c5f5245392c1f120600000000000005121e2b3845515e6b788491897d7063564a3d3023170a0000000000000000000000030f1c28333f4a545b60606060606060606060606060606060606060606060606060606060606060606060606060606060605b544a3f33281c0f030006121f2b3844505b667885928b7e7265584b3f3125170b02000000000000000000000003101c28343f4a546976828f8f8275695c4f4236291c0f00000000000000000a131c1d262d33373937332d261d140b03000000000000000000000000000004101c2834404b556976838f8e8275685b4f4235281c0f00000000000000000000010d19242f3a47535f6a76838f82766a6054473c32261b0f04000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020d17202a36414d56626c76828f8d80746a60544a3f34281f17222d38424e58606d7883908f82766c62574d42362d20170d000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000713202d3a4653606d78839092867b6e615b51473d342b2219130b06000000000000000000060b1318222b333c454d565d605d5651493f362c22170c000000000c17222c363e434b5153514b433e362c1f160c01000000000000000000000000000000000000000000020a11171e252a2f35393c4347484c4e4c52545455555453514b4b4745413a37322a261f17110a02000000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000916222f3c4955626f7c889285786c5f5245392c1f120600000000000005121e2b3845515e6b788491897d7063564a3d3023170a0000000000000000000000000b17222d38424a505353535353535353535353535353535353535353535353535353535353535353535353535353535353504a42382d22170b00000613202d394653606c7986938a7d7164574a3e3124170b000000000000000000000000000b17232e424f5c6875828f8f8276695c4f4336291c100000000000000000010a0b141b22272b2d2b27221b140b02000000000000000000000000000000000c18232e424f5c6875828f8f8276695c4f4336291c10000000000000000000000008131e2b37434e5864707d8a897c6f62584e43372b20150a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050e1925303b44505a616e7b8592877c6f665c50443b31261c28333f4a545f6a737f8c92867b6e615a50453b30241b0e05000000000814212e3b4754616e7a8794897c6f6356493c30231609000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000713202c38444f5964717e8a958c7f72695e53483f352b2219100802000000000000000000000001071019212a333c444c5254524c443f372d241b100600000004111c28333e4850555d605d5550483e31281d12070000000000000000000000000000000000000000050b141b222730363a4045474e5355595b565d6061626261605c545854524c47433d363127221b140b030000000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000916222f3c4955626f7c889285786c5f5245392c1f120600000000000005121e2b3845515e6b788491897d7063564a3d3023170a00000000000000000000000006111c262f383f444646464646464646464646464646464646464646464646464646464646464646464646464646464646443f382f261c110600000713202d3a4653606d7986998a7d7064574a3d3124170a00000000000000000000000004101c2934404b556976838f8f8275685c4f4235291c0f00000000000000000000020a11171b1f201f1b17110a020000000000000000000000000000000000071c2935424f5c6875828f8f8376695c504336291d100000000000000000000000010f1b26313c4653606c78838f82756a5f53473c31261b0d030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008141f29323f46525e69727e8b9083786d60574d42362a242b3844505b666f7c86928b7e72695e53483f33291f120900000000000814212e3b4754616e7a8794897c6f6356493c30231609000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000916222f3c4854606b7783909285796d60574d42362d23191007000000000000000000000000000000070f18212a323a41454745413a322d251b1209000000000814212d3945505a61676d67615a5043392f24180d03000000000000000000000000000000000000080f171d262d333a41464b5153585f6265686a686d6e6e6e6e6d666865605d56544e46423b332d261d150c0300000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000916222f3c4955626f7c889285786c5f5245392c1f120600000000000005121e2b3845515e6b788491897d7063564a3d3023170a000000000000000000000000000a141d262d3338393a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3938332d261d140a00000006131f2c3845515c677986928b7e7165584b3e3225180900000000000000000000000006131f2c3845515c677784918e8174685b4e4135281b0e000000000000000000000000060b0f1213120f0b0600000000000000000000000000000000000004111d2935414c56697683908f8275685c4f4235291c0f0000000000000000000000000a151f2b3744505b65717d8a887c6f62584e43372b1f150b01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020d17202a36424d57606c77828f8c7f72695f53463e322a36424d57606c7883908f82776c60574d42362d21170d0000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004111d2935404b5563707d89958c7f72675d51453b31241b11080000000000000000000000000000000000060f1820283035393a39353028201b120900000000000a1723303c4955616c717a716c61554b4035291f1409000000000000000000000000000000000109111921292f383f444c52555d60656a6e727577797a7b7b7b7a797775716d68626058534d443f382f271e150d03000000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000916222f3c4955626f7c889285786c5f5245392c1f120600000000000005121e2b3845515e6b788491897d7063564a3d3023170a00000000000000000000000000020b141c22282b2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2b28221c140b0200000004101c2834404b556b7885918c7f7266594c3f31251a0e0100000000000000000000061018202d3a4753606d7986928c7f7266594c3f3326190c0000000000000000000000000000030506050300000000000000000000000000000000000000000613202c3945525d687784918e8174675b4e4134281b0e000000000000000000000000030f1b27333f4953606c78838e81756a5f53473e31271d120700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050e1a25303b44505b656e7b8692867b6e615a50443a313a46535f69727f8c92867b6e655b50453b31241b0f050000000000000814212e3b4754616e7a8794897c6f6356493c302316090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613202c3945515d6775818e92857a6d60554b4033291f120900000000000000000000000000000000000000060e161e24292c2d2c29241e160e090000000000000b1724313e4a5764717e847e71675d51453b31251a0e040000000000000000000000000000010a131b232b333b414950565e61676d72777b7f81848587878888878684817e7a756f6a615f575049413930271f150b020000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000916222f3c4955626f7c889285786c5f5245392c1f120600000000000005121e2b3845515e6b788491897d7063564a3d3023170a0000000000000000000000000000020a11171c1f20202020202020202020202020202020202020202020202020202020202020202020202020202020201f1c17110a0200000000000c18232e43505c6976838f8e817468574d42362a1d1207000000000000000002081018222a36424d5663707d89998a7d7063574a3d3024170a0000000000000000000000000000000000000000000000000000000000000000000000000000060e17212d3a4754606d7a86938c7f7265594c3f3226190c000000000000000000000000000b17222d3844505b65717e8a877c6f625a5043392f24180c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009141f27333f49535f69727f8b8f82766c61564c413a43505a616e7b86928b7f72695e53493f33291f1209000000000000000814212e3b4754616e7a8794897c6f6356493c302316090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714202d3a4753606d7a86928e8174675d5143392f21170d000000000000000000000000000000000000000000040c13191d2021201d19130c0400000000000003101c2936434f5c6976828f84796d60574d42362a20150a00000000000000000000000000000a141c252d353d454d535b60686d737a7f84888c8e9092929190909192918e8b86827c756e69605b534b423931271d140a0000000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000916222f3c4955626f7c889285786c5f5245392c1f120600000000000005121e2b3845515e6b788491897d7063564a3d3023170a00000000000000000000000000000000060b0f121313131313131313131313131313131313131313131313131313131313131313131313131313131313120f0b0600000000000000071a2734404d5a6773808d918477695e5346392f23180c03000000000000040c1319222a343c46525e6974818e92867a6d6053473a2d20140700000000000000000000000000000000000000000000000000000000000000000000000002090f18202a36414c5663707d8a97897c706356493d3023160a0000000000000000000000000006111b27333f4953606c78838f82766c61554b4035291d100400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b17222d38414d57606c7782908a7e71685d5245414c55616c76828f8f82776c60574d41382d21170d00000000000000000814212e3b4754616e7a8794897c6f6356493c302316090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030f1b27333f495364717e8a978a7d7063554c4131281d0f050000000000000000000000000000000000000000000002080d11131413110d080200000000000000000815222f3b4855626e7c878c8073695e53463c32271b0f04000000000000000000000000060f1c262e373f474f575e656c717a80858b91928f8b8987858484838485888b8f928f89827b726c655c544b43392f261c110600000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000916222f3c4955626f7c889285786c5f5245392c1f120600000000000005121e2b3845515e6b788491897d7063564a3d3023170a0000000000000000000000000000000000000306060707070707070707070707070707070707070707070707070707070707070707070707070707070606030000000000000000000a1723303d4a5663707d8996877b6e61554b4034291e150b00000000050b0e161e2429343c46505a616e7b86928f8275675d5145392c20130600000000000000000000000000000000000000000000000000000000000000000104060a0f141a212a333b46525e6875818e9285796d6053463a2d20130700000000000000000000000000000b17222d3844505b65707d898a7e71675d5145382c1f1306000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006111b262f3b44505b656e7b8692857a6d60594f45515d67717e8a92867b6e655b50453b2f261b0f0500000000000000000814212e3b4754616e7a8794897c6f6356493c30231609000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005121f2b3744505b6575818e9285796d6053463a2f20160c0000000000000000000000000000000000000000000000000001040707070401000000000000000000000814212e3a47535f6a74808d867b6e61584e43372b20150a0000000000000000000000030e18212e384049515960696e777e858d92918c86827f7c7a7877777777797b7e82878e928f867f776d665d554b42382d22170d04000000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f020000000000000916232f3c4956626f7c899285786c5f5245392c1f120600000000000005121f2b3845525e6b788591897d7063564a3d3023170a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000713202d3a4653606d7985928d8073675c51453c30271d120700040b10161c202830353e464e58616c74818e94897d7063554b4035291d11040000000000000000000000000000000000000000000000010507070a0a0b0b080d1113141b1f252a333b454f59616e7a86928e8174665c5145382c1f1306000000000000000000000000000006111b27333f4953606b75828f84796d6053473a2d2014070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a141d27333f49535f69727f8c8e81746b60554e58606d7a84918b7f72695f53493f33291d140a0000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613202d394653606c7885928e8174665c5044382c1f120400000000000000000000000000000000000000000000000000000000000000000000000000000000000006121f2b37434e58606d7a858e81756a6054473c32271b0f04000000000000000000000915202a33404a525b626b707b828b92918a847f7a75726f6d676b6a6a6b696e71767b818791928b81786d675d544a3f33281f160c010000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4235291c0f000000000000000a1723303d4a5663707d899285786c5f5245392c1f120000000000000004101d2935404b556c788592897c706356493d3023160a000000000000000000000000000000000000000000010407071313130e0e0b080300000000000000000000000000000000000000000000000000000000000000000000000000000006131f2c3845515c6673808d9285796d60574d43392e2318120d11161c21272c323a414550585f6a707e8a938f82766b6054433a2f24180d0100000000000000000000000000000000000000000002080d1113141617171819191d2021262b30363d454d57606b74818d93877c6f62544b4034281c10040000000000000000000000000000000b17222d38414f59616e7b868c7f7366594c403326190d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020b17222d38414d57606c788390897d70675c545f6a74808d9082776c60574d41382d21170b020000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000915222f3c4855626f7c88978b7e7265544a3f34281c1003000000000000000000000000000000000000000000000000000000000000000000000000000000000000020f1a26313c45525d68727e8b887c6f62584e43372b20150a000000000000000000020e1a26313c45525c636d727d8590938d857e78726d686563605d555d5d575f6164696e747c848e938e82796d665b50443d31281e13080000000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f423529150c030000000000000a1724313d4a5764707d8a9285786c5f5245392c180f0600000000000006131f2c3945515d67798693897c6f6256493c2f2316090000000000000000000000000000000000000002080d1113142020201b1a18140f08010000000000000000000000000000000000000000000000000000000000000000000000000004101c2834404b54616e7b86928c7f72695f554b403428231d191d20272c33383e444c525a616a6f7c869292867b6e61594f4431281d1307000000000000000000000000000000000000000000050c13191d2021232424252624292c2d31373b42464f575f696f7d87928e81756a5f5342392e23180c0000000000000000000000000000000006111b262f3d46535f697380857e7064574a3d3124170a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006111b262f3c44505b666e7c869184796d605c666f7c8792867b6e655b50453b2f261b0f05000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c1825323f4b5865727e8b97887b6f6255483c2e23170c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a15202935414c56606d78848f82756a6054473c32271b0f02000000000000000006121e2b37424e57636e737f87929288817a716d66605d565654514c51504d5355575e616a6f79818e938f81786c60594f433a2f24190d0100000000000000000000000000000d1a2734404d5a6773808d8f8275685c4f4231271e150d0400000000000b1825313e4b5864717e8b9285786c5f5245342a2118100700000000000714202d3a4753606d7a8699887b6e6255483b2f221508000000000000000000000000000000000000040c13191d20212d2d2d282724201a130b02000000000000000000000000000000000000000000000000000000000000000000000000000c18232e3946525e68737f8c92867b6e675c514540342e2724292c33383d444850565d606c707c8592928c7f72695e53473d331f160c010000000000000000000000000000000000000000050e171e252a2d2e30303131332f35393a3d43474d525961696e7b859192857b6e61584e4330271d120700000000000000000000000000000000000a141d2a36424d57606d797a706c6155493c3023160a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a141d28333f4a545f6a727f8c8d80736a606d7883908b7f72695f53493f33291d140a00000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010e1b2734414e5a6774818d9285796c605346392d2013060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030d19242f3a44505c66727e8b887c6f62584e43372b1f140800000000000000000814212e3a47535f6a73808b9291867d746d68605c54524c4947454144444247484d53585f676d78818e938d80746b60554c4135291e130800000000000000000000000000000d1a2734404d5a6773808d8f827568564c433930271f160e06000000000d1a2633404d596673808c9285786c584e463c332a22191107010000000915222f3c4855626f7b8898877a6d6154473a2e2114070000000000000000000000000000000000040e161e24292c393939393433302b251d140b0100000000000000000000000000000000000000000000000000000000000000000000000007121d2a36414d56606d7984919083796d605c52454039302f35393d44484f545a61686d747e8692938e80746d62574d42352b210d040000000000000000000000000000000000000000020c1720293036393a3d3d3e3e3f41414547494e53575e616b707b849193887e71685e52463c311e150b000000000000000000000000000000000000020b1a26313b45515d676d6d68615a5044392d2014080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020b17222d38424e58606d788390877c6f6a73808c9083786c60574d41382d21180b0200000000000000000000000814212e3b4754616e7a8794897c6f6356493c302316090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004101d2935404b5569768390908376665b5044382b1f120600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008131e28343f4a54606d79848f82756a6054473b3025190e00000000000000000815222f3b4855626e7b869291847c706c605d56504a45413c3a39352f31373a3b42464e555d666d78828f92897d70675d51453a2f24190d01000000000000000000000000000d1a2734404d5a6773808d8f8275685d554b4339312820180f09030005111d2a36414c566875828e9285786a60584e453c342b2318130c0400000b1724313e4a5764717d8a928579685e5246392d20130700000000000000000000000000000000020c1620283035394646464641403c362f261d1308000000000000000000000000000000000000000000000000000000000000000000000000000e1925303b45515d676f7c87928e81756e645c514b423b3a4145474f545960636c717a818a92938e81786c605b51453b31231a0f00000000000000000000000000000000000000000008131e29323a414647494a4a4b4c4e4c525456585f62696e757d8591928c7f736c61564d41342a200c030000000000000000000000000000000000000009141f2935414b555d60615e5650483e33281c100400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006111c262f3c44505c666f7c879183796f7c8792867b6e665b50453c2f261b0f060000000000000000000000000814212e3b4754616e7a8794897c6f6356493c302316090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006131f2c3945515d677885928e817468544a3f33281c0f03000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010c17232e3845515c67727f8c887c6f62564d41362a1c1207000000000000000814212e3a47535f6a717e8a837b6f6a615a524c443f38352f2d2c2924262b2d31363c434b545c666d7a849191847a6d60564c4135291d1104000000000000000000000000000d1a2734404d5a6773808d91847a6d675d554b433a322a211a150f0a0c13202d3946525e6877849092877c6f6a5f574e463d3529241d16100b0b111e2a36414c5666737f8c9083776a564c41362a1d11050000000000000000000000000000000008131e28323a4145535353534e4c4841382f251a0f0300000000000000000000000000000000000000000000000000000000000000000000000008141f2935404b55606a727f8b928d80736e605c544d45474c51545960636b70767e858e93928b81786d665b50493f33291f11080000000000000000000000000000000000000000010d1925303a444c525456575758595a565d6063666a6f747b818992928b80736d635a50443b3022180e0000000000000000000000000000000000000000030d18242f3a434b515454524c443e362c22170b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a141d28343f4a545f6a73808c8d807a84918c7f72695f544a3f332a1d140a000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c30231609000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714202d3a4753606d7a86978c807366594d402d22170b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006111c2834404b55606d79858e8175685e5246392e23180c0000000000000006121e2b37424e57616c717e7a6e695f585045413a342e292421201d191a1e21252a3139424a545e68707d8a948c8073685d5245392c201409000000000000000000000000000d1a2734404d5a6773808d969082796d675d554c443c332b26201b18181d262f3a4754616d7a86929292857c6f6a5f584f473f352f281f1c17171b242d3946525e687683908e8174675b4e413025190d01000000000000000000000000000000010d1924303a444c525f6060605b59534b41362b201408000000000000000000000000000000000000000000000000000000000000000000000000020c18242f39434e58626d73808d928d80746d665e575053555d60656b70767d838a919691877f746d665c544a3f372d21170d00000000000000000000000000000000000000000005111d2a36414c565e6163636464666768686d7073777c81868e9390867e736d635b51483e32291f100600000000000000000000000000000000000000000007131d28313a4145474746413a322c231a10050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020b17232e38424e58606d7883908783909083786c60574d42382d21180b02000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c30231609040404040404040404040404040404040202000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000815222e3b4855616e7b88948b7e7164584b3e312518060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c18232e3945515d6773808d867b6e61544a4034281c1004000000000000020e1a26313c45505a626d716d685e564e463e352f28231c191413110d0e12141a1f283038424c56616c75828f92857a6d6054473b31261a0e020000000000000000000000000d1a2734404d5a6773808d98928f82796d675d564e463f37312b272523292f38424f5965717e8b92868691857c6f6a60595045403a312b282322272b35404b55616e7a86938b7e7164584b3e312518080000000000000000000000000000000004111d2935414c565d6c6c6c6c67645d53483c3024180b0000000000000000000000000000000000000000000000000000000000000000000000000007121d27313d46515b646e74808c938d81786e69615a5f62676d72777d82899094938d847d726d605c544a42382d251b0f050000000000000000000000000000000000000000000713202d3946525e686d70707171727475777a7c8084888e92908a827c716c635b524940362c20170d00000000000000000000000000000000000000000000010c161f282f35393a3a39363028201a11080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006111c26303c44515c666f7c87929092867b6e665b50453c2f261c0f0600000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c30231610101010101010101010101010101010100f0e0c0904000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1623303d495663707c8996897d7063564a3d3023170a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007121d2935404b55616e7b878c8073665c5144382c1f1409000000000000000915202a333e48505a6265615e564d443c3429241e17110d080604010206090d161e26303a444f59626f7c89948c7f7266574d42362a1e12050000000000000000000000000d1a2734404d5a6773808d92868d8f82796d685f585047433c3732322f3439404a54606b76828f8f817d8791857c706b625a514b433e38342e2d33373e45515d67727f8b93867a6e6154473b2e211408000000000000000000000000000000000713202c3945525d6876797979746f64594c4033271a0e01000000000000000000000000000000000000000000000000000000000000000000000000010b151f2b343f49525c646e747f88928e837b716c656a6f747a7f84898f949c938880796f6b625b504a42382f261c1309000000000000000000000000000000000000000000000714212e3a4754616d7a7d7d7d7e7f81828486898d91928e89837e766e6a625a524940372e241a0e050000000000000000000000000000000000000000000000040d161d24292c2d2e2d2a251e160e080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a151e2834404a545f6a74808d9a8d81746a5f544a3f332a1d140a0000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c30231d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1c1b191510090200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1724313d4a5764707d8a95897c6f6256493c2f231609000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c18242f3946535f6976828f85796d6053463b30251a0e02000000000000030e18212c363f4850565854524c443b322a2219130b060000000000000000040c141e28323e4754606a768390908377695f53463a2d2114070000000000000000000000000d1a2734404d5a6773808d8e81808d8f827a6e6a625a534e47433f3e3f40454b515b666f7c89948a7e717e8792857d716c605d554f46443f3f3f3f4446505a606d7984918f8276685e5246392d201407000000000000000000000000000000000714212d3a4754606d7a8686868174675b4e4134281b0e0100000000000000000000000000000000000000000000000000000000000000000000000000030d19222d37404a525c646d727e869090857e7671767c81858b9195928f939083796d67605951443f3830261d140a01000000000000000000000000000000000000000000000b1824313e4b5764717e898a8a8b8c8d8f91939a918b85817d78716c625f58504840372e251c120800000000000000000000000000000000000000000000000000040c13181d202121201d19130c05000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020b17232e38424e58606d7983909692857a6e615a50443a3024190d0400000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a292825211b140c03000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1824313e4b5764717e8a95887b6f6255483c2f2215090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007121d2b37424d5764717e8a8a7e7164574d42362a1e120500000000000000060f1b242d363f454a4b4746413a3229201810080100000000000000000000020c16202b37434e5865727e8b95887b6e6155483b2e2215080000000000000000000000000d1a2734404d5a6773808d8d8074808d90847c716c625f58544e4c4b4c4b51555c606c7883909184796d707e8692877e746d67615953504a4b4c4950535a616c73808c958a7d7064564c41362a1e1105000000000000000000000000000000000713202d3a4653606d7986988e8275685b4f4235281c0f02000000000000000000000000000000000000000000000000000000000000000000000000000007101b252e38404a525b636c717c838c928b827e83888d9296918c868288928e81786d665b50443f342b20160b0200000000000000000000000000000000000000000000000b1824313e4b5764717e8a9298939596989b9e988b7e7874706c65615a534e463e362e251c130a00000000000000000000000000000000000000000000000000000001070d1113141413110d0802000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a141d28343f4a545f6a73808c8f8a8f8f81756c61564c4135291f160c01000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c37373737373737373737373737373737373737373534312c261e150c020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1825313e4b5864717e8b94887b6e6155483b2e22150800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010e1a26313c4653606d79858f8376695e52463a2d201509000000000000000009121b242d343a3d3e3a3936302920170e0600000000000000000000000000040e1b27323d4854616e7b87968b7e7265584b3f322518060000000000000000000000000d1a2734404d5a6773808d8c807374808b91867e766e6a626058595859555c60676d74808d958b7f72676c707d86918b8179706b64605c545858535b60636c717e87939083786c6053463b3025190d010000000000000000000000000000000006121f2c3844505c667985928f8275695c4f4236291c0f0300000000000000000000000000000000000000000000000000000000000000000000000000000009121c262f384049515a616a6e787f86928f8b909495908a847f7a757e86928e81786c605b51473d32281e130800000000000000000000000000000000000000000000000a1724313d4a5764707d85868687888a8b8e9196918b837e78706b605c544c443a32291f150b0100000000000000000000000000000000000000000000000000000000000104060707070501000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006111c262f3844505c666f7c87928a7d828f8a7e71685d52453d31281d1307000000000000000000000000000814212e3b4754616e7a8794897c6f63564943434343434343434343434343434343434343434342413d3730271e14090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c1825323f4b5865727e8b94877a6e6154473b2e211408000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009141f2c3845515c6774818d877b6e6154483c31261a0f02000000000000000009121b22292e31322e2d2a251e170e050000000000000000000000000000000a15202d3a46525e697784918e8174675b4e412d22170b0000000000000000000000000d1a2734404d5a6773808d8b7f726e737f87928b827b746f6a6866656567676d7179808d929083786d60616b707c848f8e847d76706d6666656566656c6f767e879292867c6f655b504437291e1408000000000000000000000000000000000003101c28343f4a546b788591908376695d5043362a1d0600000000000000000000000000000000000000000000000000000000000000000000000000000000000b141d262f37404850575f666d737d8a9798948f89837e78726d6c717d86928d80746d63594f443a2f24190d04000000000000000000000000000000000000000000000a1623303c4955616c707879797a7b7d7f8184888c91908b837d746d665e564c443a31271d12070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b17222d38424d57606d7883908e81747b8691857a6d60594f433a2f24180c030000000000000000000000000814212e3b4754616e7a8794897c6f6356505050505050505050505050505050505050505050504f4d49423930261b100400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c1825323f4b5865727e8b94877b6e6154483b2e211508000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004101c2834404b5563707d8a8c7f7265584e43372b1f12060000000000000000000911181d21242521201e19130d050000000000000000000000000000000005121e2a36424d576875828e9083766a53493f33271b0f0300000000000000000000000d1a2734404d5a6773808d8a7e71646d727d858f8f87817c77747271727375797d848d9292857b6e665c59606a6e7a828c918a827d79757372727374787c828b92928b7e716a5f53493f3327170d020000000000000000000000000000000000000c17232e44515e6b7784919083776a5d50442d22170b0000000000000000000000000000000000000000000000000000000000000000000000000000000000050f17232e38424a545c666d747e8692949089827d77716d6661616b707d86928c7f726b60564c41352920150a000000000000000000000000000000000000000000000814202d3944505a61646c656c6d6f707275787b80848b91908980786d685e564c43392f24180c0500000000000000000000000002050708131313130604010000000000000000000000000000000000000000000000000000000000000000000002080c10121213130c0b090501000000000000000000000000000000000000000000000000000000000000000000000000000000000000050f1c28333f4a545f69727f8c9184796d727f8c8e81746b60554b4035291e150b0000000000000000000000000814212e3b4754616e7a8794897c6f635d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5c59544b42372c21150900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1825313e4b5864717e8b95887b6e6255483b2f2215080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c18232e3a4653606d79859083776a5f53473a2e21140800000000000000000000060c111517181413110d08020000000000000000000000000000000000020e1a2530404d596673808c928578655b5044372b1f120500000000000000000000000d1a2734404d5a6773808d8a7d7063626b707a828a918e8984817f7e7f8082858a919490857c6f695f544f585f686d777f868f8f8a85827f7e7f808185898f9491877f726c62584e41382d22170500000000000000000000000000000000000000061d2a3743505d6a7683909184776b544a3f33281c0f03000000000000000000000000000000000000000000000000000000000000000000000000000000030d172128343f4a545c666d78808b92928a837c76706b64605c5459606b707e8892877d6f685d52453c31261b0f0400000000000000000000000000000000000000000004101c28333e485055575f5b606062636568696e73787e848e928d837a6d685e554b40352921160b0000000000000000000002080e1114142020202013110d070100000000000000000000000000000000000000000000000000000000000000060d13181c1e1f2020181815110c0600000000000000000000000000000000000000000000000000000000000000000000000000000000050e1b242b3844505b666e7b8692887d70676d788390897d70675d51453d30271d120700000000000000000000000814212e3b4754616e7a8794897c6f6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a68655d54493d3125190c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1724313e4a5764717d8a95887c6f6255493c2f22160900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007131f2c3845515c6675828e887b6e6255483b3024190d01000000000000000000000105090b0b070705010000000000000000000000000000000000000000091825323f4b5865727e8b9386796c605346392d20130600000000000000000000000d1a2734404d5a6773808b897c6f625960686d757d848a90918e8c8b8c8d8f92928f8a827b6f6a5f574d464e565d656c727b82898e928f8c8b8b8d8e9193908b847d726d625a50463c2f261b1106000000000000000000000000000000000000030f1c2936424f5c6975828f928578665b5044382b1f120600000000000000000000000000000000000000000000000000000000000000000000000000000009141f29333b44505c666d78818d928f857e766f6b63605953504a4f59616c737f8c91847a6d60584e43372b21160a000000000000000000000000000000000000000000000b17222c363e44494a49505354555758575f61666d7179818b9390837a6d675d51453e33281c10040000000000000000050d14191e20212d2d2d2d201d18130c0400000000000000000000000000000000000000000000000000000000000710181f24282b2c2d2d2524221d1811090000000000000000000000000000000000000000000000000000000000000000000000000000020d17202a36424d57606c7883908d81746b60666f7c879184796d60594f43392e23180c02000000000000000000000814212e3b4754616e7a8794897d76767676767676767676767676767676767676767676767676756f65594d4134281b0e02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1724303d4a5763707d8a96897c6f6356493c3023160900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004101c2834404b5464717e8a8c807366564c4135291d11040000000000000000000000000000000000000000000000000000000000000000000000000000000b1824313e4b5764717e8a9a877a6d6054473a2d2114070000000000000000000000091623303c4956636f7d7f7f7a6d6154565e616c70797e83878a8c8d8d8c8b8986827d786e695f584e453c444c535b60696e757c8186898c8d8d8d8c8a87837e796f6b625b51483f342a1d140a00000000000000000000000000000000000000020e1b2835414e5b6874818e9386796c605346392d2013060000000000000000000000000000000000000000000000000000000000000000000000000000020e1a25303b45505a606d78818e928d827a716c636059544f46443f47505a606c7782908e81746a5f53473d32271b0f0000000000000000000000000000000000000000000005101a232c33393c3d3f444647484a4c4d53545c60676d747f88939083796d60594f44382c21160a00000000000000050e171e252a2d2e393939392c29241d160d04000000000000000000000000000000000000000000000000000000061019222930353839393932312e29231b12090000000000000000000000000000000000000000000000000000000000000000000000000009141f29333b46535f69727f8b9184796d6059606a73808d8d80746b60554b4034281e140a000000000000000000000814212e3b4754616e7a87949183838383838383838383838383838383838383838383838383838175685c4f4235291c0f02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000916232f3c4956626f7c89958a7d7063574a3d3024170a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c18232e3a4754606d7a86908376685d5245392c2013070000000000000000000000000000000000000000000000000000000000000000000000000000000a1724313d4a5764707d8a94877a6e6154473b2e21140800000000000000000000000915222f3b4854606b6f72726d685e524c525a61666d71767a7d7f80807f7e7c7a76706c665e574e463c333a414950575f616a6f75797c7f8080807f7d7a76716d66605951493f362d22180b0200000000000000000000000000000000000000010d1a2734404d5a6773808d99877a6d6054473a2d211407000000000000000000000000000000000000000000000000000000000000000000000000000005121e2a36424d57626c74808d928d80786e68615a544f48443d38343e44505b656e7b8692877c6f62594f43382c1d12070000000000000000000000000000000000000000000008111a22282d302d3337393a3c3d3f42474a50555d606d727f8b938d81746b6155483d32271b0f030000000000020d1720293036393b4646464639352f281f160c0100000000000000000000000000000000000000000000000000020d18222b343b41444546463f3d3a342d241b11060000000000000000000000000000000000000000000000000000000000000000000000050e1a25303b45505a616e7b8692897d70675d5158606d798391877c6f675c51453c30261c11060000000000000000000814212e3b4754616e7a879495919090909090909090909090909090909090909090909090909084786b5e5145382b1e1205000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a87998b7e7265584b3f32251807000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000713202c3945515d67778390867a6d6054473a2d2114090000000000000000000000000000000000000000000000000000000000000000000000000000000b1724313e4a5764717d8a94877a6e6154473b2e211408000000000000000000000007131f2c38444f5960636565615e564c414650545c6064686d7072737373726f6d6764605b544d453c342a2f383f444d53586062676d707273747372706d6865605c544f473f372d241b10060000000000000000000000000000000000000000000c1926333f4c5966727f8c94887b6e6155483b2e22150800000000000000000000000000000000000000000000000000000000000000000000000000000714202d3a46525e69717e8b928d80746d665e565048433d38332b28333f49535f6973808d8f82766b605448392e23180c00000000000000000000000000000000000000000000000810171c202322272b2d2d2f303137383f444b515b626d75818e928a7d7063594f43382c1f1307000000000008141e29323b4146535353535345403a31281d13070000000000000000000000000000000000000000000000000008131f29343d464c515253534b4a453f372d23180c01000000000000000000000000000000000000000000000000000000000000000000020d17202a36424d57626c76828f8e81746b60554b515c676f7c879184796d60584e42382e23170b0200000000000000000814212e3b4754616e7a8794908a8787878787878787878787878787878787878787878787878784786b5e5145382b1e1205000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000713202d3a4653606d7986928d8073675a4d402f24180d0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004111d2935414c556773808d8a7d7164574a3e30251a0e0200000000000000000000000000000000000000000000000000000000000000000000000000000b1825313e4b5864717e8b9a867a6d6053473a2d2014070000000000000000000000030f1b27323d474f5456585854524c443a3e424a5153565e6164666767666563605d5553504a423b332a22262d333c42464e54555c6063656667666563615e5653514a423d352d251b1209000000000000000000000000000000000000000000000b1825313e4b5864717e8b96897c6f6356493c302316090000000000000000000000000000000000000000000000000000000000000000000000000005121e2a36424d57616e7b86928e81756e605c544c443e38322c271f222d38414d57616d7a8592897c6f63544b4034281c10040000000000000000000000000000000000000000000000050b101416171b1f20212224262b2e343a4045515b616d7a85929083766b6054483b2f22150800000000020e1925303b444c525f6060605f514b433a2f24180d010000000000000000000003030300000000000000000000000c1824303b464f575d5f6060585651493f34291d110500000000000000000000000000000000000000000000000000000000000000000008131e29323a46525e69717e8b91857a6d60594f434b55606a74808d8c80736a5f544a3f34281d140a00000000000000000814212e3b4754616e7a87948a7e7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a6d6154473a2e211407000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006121f2b3844505c667884918e827568554b4035291d1004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010d19242f3d4a5764707d8a8e817467574d42362a1e120500000000000000000000000000000000000000000000000000000000000000000000000000000c1926323f4c5965727f8c9386796c605346392d2013060000000000000000000000000a16212b353d4448494c4c4746413a3230394044464c525457595a5a59585653514b46443f382f2921191b222731373d43484b515356595a5a5a595754524c46444039302b231b130900000000000000000000000000000000000000000000000a1723303d4a5663707d89968a7d7064574a3d3124170a000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a46535e6975828e91847a6d605c504a423b322c27211c161b262f3b46525e6874818e8e8175665c5145382c1f1306000000000000000000000000000000000000000000000000000408060b0f12131415171a1c23282f353f46525e6873808c95897c6f6356493c3025190d0100000005111e2a36414c565e6c6c6c6c6c5d554b4035291d1104000000000000030608090f0f0f0b0a080500000000000003101c2835414c5761696c6c6c65625b51453a2e2215090000000000000000000000000000000000000000000000000000000000000000040e1925303a44505a616e7b85928a7e71685d52473d434e58606d798491877c6f665c50443c2f261b1106000000000000000814212e3b4754616e7a8794897c6f6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6d685e5246392d201307000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003101c28343f4a546875828f908377675d5145392c201306000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3a4754616d7a87918477695e52463a2d2014070000000000000000000000000000000000000000000000000000000000000000000000000003101c28343f4a546774808d928578655b5044372b1f1205000000000000000000000000040f19232b32383b3c3f3f3a39353028272e34383a4146474a4c4d4d4c4b494745403938332d261d170f11171f262b323839404547494c4d4d4d4c4a4746413a38342e271e1911090000000000000000000000000000000000000000000000000915222f3c4855626f7b88958b7e7265584b3f3225180c000000000000000000000000000000000000000000000000000000000000000000000000000815212e3b4854616e7b87938a7e71675d51443f383029201b16100a141d2935414c5663707d899285796d6053463a2d20130700000000000000000000000000000000000000000000000000000000000305060709090e11171d242935414c56616e7a87938e817467564c4135291d11050000000714202d3946525e687679797976675d5145392c20130600000000040a0f1315161c1c1c171714110c050000000005121e2b3844515d6973787979726d62564a3d3124180b00000000000000000000000000000000000000000000000000000000000000020c16202a36414c56616c75828f8f82756c61564c41353d45515d67717e8a9083786d60574d41382d22170b030000000000000814212e3b4754616e7a8794897c6f636161616161616161616161616161616161616161616161615e564c41362a1d11050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b17232e404d596673808c92867a6d6053473a2d201408000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000713202d3946525e68778491877b6e6154483b2e211508000000000000000000000000000000010406070c080705020000000000000000000000000006121f2b3844505c6676838f9083766953493f33271b0f030000000000000000000000000007111921272c2f3032322e2d29251e1c23282c3036393a3d3f4040403f3c3a39352f2b28221c140b05060b141a21272c2f34383a3d3f4041403f3d3a3935302c28231c150c07000000000000000000000000000000000000000000000000000714212e3a4754616d7a87988c7f7366594c403326190d00000000000000000000000000000000000000000000000000000000000000000000000004101c2934404b556673808c9184796d60554c41342e261e170e0a04020b1925303a4653606d798692897c706356493d3023160a000000000000000000000000000000000000000000000000000000000000000000000000060b131925303a46525e68768390918477685e5246392d2013070000000814212e3b4754616e7a868686796d6053473a2d201407000000070e151b1f22222929292423211d17100800000006121f2c3945525f6c788586867f7265584b3f3225180c0000000000000000000000000000000000000000000000000000000000000008131e28323a46525e68717e8a92867b6e615a50443a3035414b55616c75828f8c7f72695f53493f33271f14090000000000000814212e3b4754616e7a8794897c6f63565454545454545454545454545454545454545454545454524c443a3025190d01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000061724313d4a5764707d8a99897c706356493d3025190d0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005111d2a36414c566874818e8a7d7063574a3d302417070000000000000000000000000001070d111314191514120e090300000000000000000000000713202d3a4653606d7985928e8174685b4e412d22170b000000000000000000000000000000070f161b1f2223252521201d191312181c1f252a2d2e313334343332302d2c29241f1c17110a02000003090e161b1d23292c2d303233343332302e2d29251f1c18120b0300000000000000000000000000000000000000000000000000000713202d3946525e687985928e8174675b4e4134281b0800000000000000000000000000000000000000000000000000000000000000000000000006131f2c3845515c677683908d8174665c51433a2f231c140c0500000008131f2c3845515c677783908c7f7265594c3f3226190c000000000000000000000000000000000002050708070604000000000000000000000000000108131e2a36414c5666737f8c93867a6d6154473a2e2114070000000814212e3b4754616e7a8793867a6d6053473a2d201407000007101920272b2e2f36363631302d28221a1208000006121f2c3945525f6c7885928b7e7265584b3f3225180c000000000000000000000000000000000000000000000000000000000000040d1924303a44505a616d7a85928b7f72695e53483e32282f3a43505a616e7b8692867b6e655b50443b30251a0e0500000000000814212e3b4754616e7a8794897c6f6356494747474747474747474747474747474747474747474746413a32291e1308000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212e3a4754616d7a86938c7f7366564c41362a1e1105000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010d1925303f4c5966727f8c8c7f7366594c402f24180d010000000000000000000000040c13181d20212621211e1a140c0600000000000000000009101c2834404b54626f7c89978c7f7265594c3f3226190600000000000000000000000000000000040a0f13151619191413110d08070c1013191d20212426272726252320201d18120f0b06000000000000040a0f12181c1f202326272727262421201d1913100c070000000000000000000000000000000000000000000000000000000005111d2935414c566a7784918f8276695c4f433025190d0100000000000000000000000000000000000000000000000000000000000000000000000714202d3a4753606d7986928a7e7164544a4031281e110a020000000004101c2834404b556875828e8d8174675a4e4134271b0e01000000000000000000000000000003090e1214151313100c07000000000000000000000000020e1925303d4a5764707d8a9a897c6f6356493c302316090000000814212e3b4754616e7a8793867a6d6053473a2d20140700040e19222b32373b3c4242423e3d39332c241a10050006121f2c3945525f6c7885928b7e7265584b3f3225180c0000000000000000000000000000000000000000000000000000000000010c161f2935414c56616c75818e9083786c60574d42362c2028313e46535e69727f8c9082776c60574d42362a20170c02000000000814212e3b4754616e7a8794897c6f6356493c3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3a3936302920170c02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000713202d3946525d687783908f8276685e5246392d20150a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000081724303d4a5763707d8a8e827568554b4035291d100400000000000000000000080d161d24292c2d332e2d2a251f17110b0600000000000309121b242c3845515c6673808d96887b6e6255483b2f221508000000000000000000000000000000000000030709090c0c0707050100000004080d11131417191a1a1918161413100d07030000000000000000000001070c10131416191a1a1a19171413110d0804000000000000000000000000000000000000000000000000000000000000010d192530424f5c6975828f9184776a564c41362a1d110500000000000000000000000000000000000000000000000000000000000000000000000815222e3b4855616e7b8899887c6f6255493c2e22160c000000000000000c18232e414e5b6774818e8e8175685b4e4235281b0f0200000000000000000000000000050d141a1e2121201f1c18120b0300000000000000000000000815222f3c4855626f7b88958a7d7063574a3d3024170a0000000814212e3b4754616e7a8793867a6d6053473a2d201407000a15202b343c4347494f4f4f4a49453e362c22170c0006121f2c3945525f6c7885928b7e7265584b3f3225180c000000000000000000000000000000000000000000000000000000000007131d28313a45525d68707e8a92877c6f665b50453b31241a1f2a36424d57606d7883908b7f72695e52463e32291e1308000000000814212e3b4754616e7a8794897c6f6356493c302e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2d2a251e170e05000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005111d2935414c566673808c92867a6d6154473c32261b0f040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000815212e3b4854616e7b87918477675d5145392c20130600000000000000000008121a1f282f35393a3f3b3a363128231c17110d080a060b0f151a242935414c56606d7985929184786a5f53473a2e211408000000000000000000000000000000000000000000000000000000000000000000010507070a0c0d0d0d0c09070604010000000000000000000000000000000406070a0c0d0e0d0c0a07070501000000000000000000000000000000000000000000000000000000000000000000081a2734414d5a6774808d928578685e5246392d20130700000000000000000000000000000000000000000000000000000000000000000000000916232f3c4956626f7c8994877b6e6154483b2e21150800000000000000071b2734414e5a6774818d8e8275685b4f4235281c0f02000000000000000000000000050f171f252a2d2e2d2c28231d150c03000000000000000000000815212e3b4854616e7b87948b7e7164584b3e3125180b0000000814212e3b4754616e7a8793867a6d6053473a2d201407030f1b27323c464e54555c5c5c575550483e33281d110306121f2c3945525f6c7885928b7e7265584b3f3225180c00000000000000000000000000000000000000000000000000000000010d18242f3a434f59606d7a85918d80736a5f544a3f33291f121a25313b44505c666f7c8892867b6e615a50443a3025190d010000000814212e3b4754616e7a8794897c6f6356493c302321212121212121212121212121212121212121201d19130c05000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010d1924303c4855626f7c88958b7f7265584e43372b20150a0000000000000000000000000000000000000000000003060809070603000000000000000000000000000000000000000000000613202d394653606c798592867a6d6053473a2d2014070000000000000000030d1a242c313a4145474c4846423b342e28231c19181717171c1f262b363e45525d68727e8b978d807367584e43372b1f120600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b98877a6d6154473a2e21140700000000000000000000000000000000000000000000000000000000000000000000000a1623303d495663707c8994877a6d6154473a2e211407000000000000000f1b2835424e5b6875818e8e8174675b4e4134281b0e010000000000000000000000050e17212931363a3b3a38342e271e150c040000000000000000000815222e3b4855616e7b88948b7e7165584b3e3225180b0000000814212e3b4754616e7a8793867a6d6053473a2d20140706131f2b37434e58606269696964615a5045392d20150900121f2c3945525f6c7885928b7e7265584b3f3225180c0000000000000000000000000000000000000000000000000000000004111d2935414b55616b74818e9184796d60584e42382d21170d141f28343f4a54606b74818e8f82756c61564c41362a1d13070000000814212e3b4754616e7a8794897c6f6356493c30231614141414141414141414141414141414141413110d080200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000815212e3a47535f6a7783909083766a5f53473c32261b0f0500000000000000000000000000000000000000040a0f1315161312100b06000000000000000000000000000000000000000005121f2b3744505b65768390887b6f6255483c2f22150900000000000000010b151f2c363e434b51545954534d443f38342e292424242422282b31373f48505a606d7a849192867b6e6154483c31261a0f020000000000000000000407090a0e0706040000000000000000000000000000000000000000000000000000000000000000000000000000000000040607080808070604010000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1723303d4a5663707d8995897c6f6256493c2f23160900000000000000000000000000000000000000000000000000000000000000000000000916222f3c4955626f7c8895887b6e6255483b2f22150800000000000006121f2b37434e586976838f8d8073675a4d4034271a0d0100000000000000000000030d172029333b4246484645403930271e160e0701000000000000000916232f3c4956626f7c89958a7d7164574a3e3124170b0000000814212e3b4754616e7a8793867a6d6053473a2d2014070815222e3b4754606a6f757575716c6155493c31261a0e00121f2c3945525f6c7885928b7e7265584b3f3225180c000000000000000000000000000000000000000000000000000000000613202c3945515d67707d8993897d70675c51463c2f261c0f050c17232e38424f59606d7a85928a7e71685e52463a2f24180d0100000814212e3b4754616e7a8794897c6f6356493c3023160908080808080808080808080808080808070705010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006121f2b37434e5865727f8c95887c6f62584e43372b21170d040000000000000000000000000000000000070f151b1f2223201f1c17110a02000000000000000000000000000000000000030f1b27333f49536875828e8a7d7063574a3d3024170a0000000000000007121d27313e4850555d6066615e57504a443f38352f3131312d33383c4247515a626d74818e978e8174695e52463a2a20150a0000000000000000050b101416171a1413100c0701000000000000000000000000000000000000000000000000000000000000000000010507070c1013141415151413110d0706040000000000000000000000000000000000000000000000000000000000000000000000000000000815212e3b4854616e7b87988b7e7164584b3e3125180800000000000000000000000000000000000000000000000000000000000000000000000815212e3b4854616e7b8798897c6f6356493c2f24190c0300000000020c15212e3a47535f6a7885928b7e7165584b3e3225180b00000000000000000000010b151f29323b454d535453514b423930282018130c07030000000308111924313d4a5764707d8a96897c706356493d3023160a0000000814212e3b4754616e7a8793867a6d6053473a2d201407101c2834404b54626f7c8282827e7164574e42372b1b1106121f2c3945525f6c7885928b7e7265584b3f3225180c00000000000000000000000000000000000000000000000000000004101c2934404b55606d7984918e81746b60554b40342a1d140a0006111c26303d45525d68717e8a92857a6d61554b4135291d110400000814212e3b4754616e7a8794897c6f6356493c30231609000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030f1b26313c4754606d7a85928f82756a5f53473f33291f160c0300000000000000000000000000000007101920272b2e2f2d2b28231c140c020000000000000000000000000000000000000b17222d414d5a6774808d8b7e7165584b3e3225180b000000000000000c18242f3943505a61676d726e69605c54504a45413f3e3d3e3e3f44464d535b636c717e8b9392857b6e61574d42362a180e0300000000000000080f161c20222327201f1d18120b0300000000000000000000000000000000000000000000000000000000000002080d111314181c1f2021222120201d181413100c07010000000000000000000000000000000000000000000000000000000000000000000000000613202d394653606c7985928c807366594d402f24190d01000000000000000000000000000000000000000000000000000000000000000000000613202d394653606c7985928b7f7265564c4135291e150b060203060b141e28333f4a54626f7b8897897c6f6256493c2f2316090000000000000000000007121d27313b444d575e61605c544b423a3229241d18120f0b060b0f1319232b38434e586773808d96877a6d6154473a2e2114070000000814212e3b4754616e7a8793867a6d6053473a2d201407131f2c3845515c6674818d8f8f83776a5f5347382d22170b121f2c3945525f6c7885928b7e7265584b3f3225180c00000000000000000000000000000000000000000000000000000006131f2c3845515c6774818b8b857a6d61594f43392f22180b0200000a151e2935414c56616c76828b8b8275675d5145392c20130600000814212e3b4754616e7a8794897c6f6356493c30231609000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a15202c3945525d6873808d93877c6f625a50453b31281e150c0500000000000000000000000000061119222b32373b3c3a38342e261e140a000000000000000000000000000000000000061926333f4c5966727f8c8c7f7366594c403326190d00000000000004101d2935404b55616c717a7f7b726d66605c54524c4c4b4a4a4b4a5053575f626d727e8792938b7e71685e52453b30251a060000000000000008111a21272c2f30342d2c29241d150d0600000000000000000000000000000000000000000000000000000003090e13191d202123292c2d2e2f2e2d2c2924201f1d18120c07010000000000000000000000000000000000000000000000000000000000000000000005121f2b3744505b657683908f827568554c4135291d11040000000000000000000000000000000000000000000000000000000000000000000005121f2b3744505b657683908f8275685d52453a30261d15120e0f12161d262f3844505b66727f8c9285796d6053463a2d201307000000000000000000000c18242f39434c565e696e6d665c544c443d352f29231f1b1719171b1f2429353d4754606a778491918478685e5246392d2013070000000814212e3b4754616e7a8793867a6d6053473a2d20140713202d3a4653606d7985929995887b6e6253493f33271b0f121f2c3945525f6c7885928b7e7265584b3f3225180c0000000000000000000000000000000000000000000000000000000714202d3a4753606d797f7f7f7d6f685d52473d31271d1006000000030c1924303a44505a616e7b7f7f7f7a6d6054473a2d21140700000814212e3b4754616e7a8794897c6f6356493c302316090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004111d2935414c56616e7b86928f82766c62574d433930271e170e0903000000000000000000020a1117232b343d43474946443f3830261c110600000000000000000000000000000000000b1825313e4b5864717e8b8e8174675b4e4134281b0e00000000000006131f2c3845515d67717e848c867f78716d66605d565857575758545b6063696e767f8792948e81746c62564d4133291f1409000000000000050f1a232b33383c3d413a38352f271f180f0700000000000000000000000000000000000000000000000000070c151a1e252a2d2e2f34383a3b3b3b3a39352f2d2c29241d18120b03000000000000000000000000000000000000000000000000000000000000000000030f1b27333f49536774818e918477675d5145392c20130600000000000000000000000000000000000000000000000000000000000000000000030f1b27333f495365727f8c92867a6d60564c42382f27211e1a1c1f20282f38414c55606c7884918e8275665c5144382c1f120600000000000000000004101d2935404b555e686e7b796d665e564e45403a342f2b27222622272b2f353e47505a626f7c89958d807367564c41362a1d11050000000814212e3b4754616e7a8793867a6d6053473a2d2014111d2935414c5664707d8a928c928c8073655b5044372b1f12071f2c3945525f6c7885928b7e7265584b3f3225180c00000000000000000000000000000000000000000000000000000006131f2c3845515c676d7272726f6b60564c41352b1f150b000000000008131e28323e46535e696e7272726d675d5145392c20130600000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010d1924303a46525e6973808c948b7e71695e554b42393029201a140f0a07050100000205090c141c2328353d464e545653504a42382e23170b07000000000000000000000000000000000a1723303d4a5663707d898f8275695c4f4236291c0f0000000000000714202d3a4753606d79869196928c847e78726d6867656464646566666c70757b828c93938e82786d605a50443b3021170d020000000000000b16212b353d44484a4d47454039312a2119110700000000000000000000000000000000000000000000030b121820262b3036393a3e4045474748484745403e3a38352f29241d150d070000000000000000000000000000000000000000000000000000000000000000000b17222d3e4b5865717e8b93867a6d6054473a2d21140700000000000000000000000000000000000000000000000000000000000000000000000b17222d3b4854616e7b87938c8073685e544a4139312e2b26282b2d313a4149515d67717e8b95897d7063544a4034281c100400000000000000000006131f2c3945515d676e7a8482786d686058514b45403937332d332d33373a41455059626c76828f93887c6f6255483c3025190d010000000814212e3b4754616e7a8793867a6d6053473a2d201413202d3946525d6875828f8c80859184786c605346392e23180c1f2c3945525f6c7885928b7e7265584b3f3225180c00000000000000000000000000000000000000000000000000000004101c2934404b555c606565656360594f443a3023190d030000000000020c16202a36424d575e61656565605d554b4135291d110400000814212e3b4754616e7a8794897c6f6356493c30231609000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008131e2a36424d56606d79849192857b6e675d544b423b322a251f1b1413110d08090e12151a1e262e343e474f586062605c544a3f342823180d020000000000000000000000000000000915222f3c4855626f7b889083766a5d5043372a1d1000000000000006131f2c3845515d67798592938e92918a847e7a767472717071717375797d81878f94928b81786d665c50483f32291f0f0500000000000004101c27333d474f54565a53514b433c332b231911070000000000000000000000000000000000000000050c151d232831373a4146474b4b515354555453514b4b47454039352f271f19110901000000000000000000000000000000000000000000000000000000000000000616222f3c4955626f7c8898897c6f6356493c3023160900000000000000000000000000000000000000000000000000000000000000000000000614212d3a46535e6975818e92857a6d665c534b433e3a37313338393e434c535b606d7a84919184786c605346392e23180c000000000000000000000714202d3a4753606d7983908f827a6f6a605d55514b46443f403f403f44464c525a616b717e8b948e81756a5f53473a2e1e1308000000000814212e3b4754616e7a8793867a6d6053473a2d201414212e3a4754616d7a8692867a818e897c6f63554b4034281c101f2c3945525f6c7885928b7e7265584b3f3225180c000000000000000000000000000000000000000000000000000000000c18232f39434b515358585856544f473d32281e110700000000000000040e1a25313b454d535458585854514b433a2f24180d0100000814212e3b4754616e7a8794897c6f6356493c302316090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020e1925303b45515d67707d88939083796d665c544c443d36302b2721201e191c1c1a1e21262b30383f445059606a6f6d665c50443f352a1e12060000000000000000000000000000000815222e3b4855616e7b889084776a5d5144372a1e1100000000000004101d2935404b556b7884918e81868e92918b8683807f7e7d7d7e808285898e92928d857e746d665c544a3f362d20170d000000000000000714202c38444f59606367605d554e463d352b23191006000000000000000000000000000000000000060e171e272e343c42474c525458555c60616261605d555853514b454039312b231b130a020000000000000000000000000000000000000000000000000000000000000713202d3a4653606d7986928c7f7265594c3f30251a0e020000000000000000000000000000000000000000000000000000000000000000000005121e2a36424d57616e7b86928f82786d655d554f484742433f44464850555d656c75818f938a7d70655b5044372b1c1207000000000000000000000713202d3a4653606d78808b928f847c736d67605c555350494d4c4d495053565d606c707d879292857b6e61584e43372b1f0c02000000000814212e3b4754616e7a8793867a6d6053473a2d20141e2b37424d5765727e8b8f82757d898e8174675c5145382c1f131f2c3945525f6c7885928b7e7265584b3f3225180c0000000000000000000000000000000000000000000000000000000007121d2731394045474c4c4c4948433d342b20160c00000000000000000009141f29333b4246484c4c4c4745413a31281d13070000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009141f2935404b55606b73808d948f82786d665e564f46423b37322e2d2a252928262a2d31373c424a505a616b707c786d605b51463a2f22160a0000000000000000000000000000000814212e3b4754616e7a879184776b5e5144382b1e11000000000000000c18242f44505d6a778390887c7b81868c9092908d8b8a8a8a8b8d8f9293908c86817a716c605c544a42382e241b0e05000000000000000916222f3c4854606b70746d675f584f473d352b22180d0300000000000000000000000000000000060f182029303940454d53565e616568676d6e6e6e6d676864605d55514b433d352d251c140a01000000000000000000000000000000000000000000000000000000000006121f2c3844515c667683908e827568574d42362a1e120500000000000000000000000000000000000000000000000000000000000000000000020e1a25313b46535f69727f8b938d80776d67615955534d504a5053555a61676d77808d938e81756b6153493f33271b0b000000000000000000000006121f2b3844505c666d747f879291878079726d6762605b535a595a535b6062686d737e8592918a7e71695e53463c31261b0f00000000000814212e3b4754616e7a8793867a6d6053473a2d2014212d3a46535f697683908a7e7178849185796d6053463a3024191f2c3945525f6c7885928b7e7265584b3f3225180c00000000000000000000000000000000000000000000000000000000010b151f272f34383a3f3f3f3c3b38322b22190e04000000000000000000030d17212931363a3b3f3f3f3a39352f281f160c010000000814212e3b4754616e7a8794897c6f6356493c30231609020202020202020202020202020202020202020202000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020c18242f39434f59606d78828f948e81786e686059524d47433d3a393630353531363a3c42474e545c606c707d8681746d63574b3e3225180c0000000000000000000000000000000714212e3a4754616d7a879185786b5e5245382b1f1200000000000000071c2936434f5c6976828f897c70747a7f83868a8c8e8e8f8f8f8e8c8a86837f7a746d68625a514a423930261c12090000000000000005111d2935414c5663707d80796e6a60594f473d342a1f150b010000000000000000000000000000050e18212a323b424b51575f62686d7175777a7a7b7b7a7875716d67605d554f473f372e261c130a000000000000000000000000000000000000000000000000000000000004101c2834404a546673808d918478695e52463a2d201407000000000000000000000000000000000000000000000000000000000000000000000009141f2a36424d57606c77818e928d8179706b65625f575d545b6062666c717a818d929183796d60594f41382d22170b000000000000000000000003101c28343f4a545c606d727d858e928d857e79736f6c656766666667656c6f737a808892928b7f726c61574d42342a20150a00000000000814212e3b4754616e7a8793867a6d6053473a2d2015222e3b4855616e7b889285796d73808d8a7d7164564c4135291d1f2c3945525f6c7885928b7e7265584b3f3225180c0000000000000000000000000000000000000000000000000000000000030d151d23292c2d323232302f2c27211910070000000000000000000000050f171f252a2d2e3232322d2c29241d160d04000000000814212e3b4754616e7a8794897c6f6356493c3023160e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0d0c0a0702000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007121d27313d44505c666d7a8390938e827a6f6b615e57544e4a474641434242434246484d53585f666d737e86928c7f7266594c3f3326190c0000000000000000000000000000000714202d3a4753606d7a869285786b5f5245382c1f12000000000000020f1b2835424e5b6875818e8a7e71686d72777a7d808182838282817f7d7a76726d68615e565044403930271e150a00000000000000000713202d3946525e6876828d847c706b60594f463c31271d120700000000000000000000000000030c17202a333c444d545c60696e747a7e8284868788878685827e79736d676059514940382e251c110800000000000000000000000000000000000000000000000000000000000c18232e3d4a5663707d8996877b6e6154483b2e21150a0000000000000000000000000000000000000000000000000000000000000000000000030e1a26313b44505b656d78828e938e837d76726e696b696a666c6e72777d848e9390847b6e675d51473e2f261b11060000000000000000000000000b17232e38424a505b626b707a818a91918b85807c7976747372737475797c80858d9391877f726d625a50453b3122180e0400000000000814212e3b4754616e7a8793867a6d6053473a2d201f2c38434f596673808c8e8174676f7c888f8275685d5246392d201f2c3945525f6c7885928b7e7265584b3f3225180c000000000000000000000000000000000000000000000000000000000000030b12181c1f2025252523221f1b160f0700000000000000000000000000050d141a1e212125252521201d18130c0400000000000814212e3b4754616e7a8794897c6f6356493c30231b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1a1916130e0700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010b151f28343f4a545d686e7a83909490847d756e696260585754524c504f4f4f4d5355575f626a6f787f879291857b6e6255483b2f2215080000000000000000000000000000000613202d394653606c79869285796c5f5246392c1f13000000000000010e1a2734414d5a6774808d8b7f72656165686d707374757676757472706d6865615d56524c443f342e271e150c0300000000000000000714212e3a4754616d7a848e91857d706b60584e43392f24180c030000000000000000000000000b151e29323c454d565e666d737b81868b8e919392919192918e8b858079706b625b524a40372e231a0e05000000000000000000000000000000000000000000000000000000000714202d3a4753606d7a86928b7e7164584b3e31261a0f02000000000000000000000000000000000000000000000000000000000000000000000009141f27333f49535c666d78818a92908a837f7b7877767677797b7f838a91938d837b6e695f554c41352c1d140a0000000000000000000000000006111c2630383f44515960686e757d848c92928d89858381807f80818285888d92918b847c726d625b51483e33291f10060000000000000814212e3b4754616e7a8793867a6d6053473a2d20222f3b4854606b778491897c70636a778491867a6d6154473b31261a2c3945525f6c7885928b7e7265584b3f3225180c0000000000000000000000000000000000000000000000000000000000000001070c1013141919191615130f0a0400000000000000000000000000000003090e1214151919191413110d07010000000000000814212e3b4754616e7a8794897c6f6356493c302828282828282828282828282828282828282828282828282625231f19120a01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030d17232e38424c565e686e7a828d929189817b746f6a6663615e565c5c5b5c575f6165696e747c838c9390847c6f695f53473a2e21140800000000000000000000000000000005121f2b3744505b6579869286796c605346392d2013000000000000000d192633404c5966737f8c8d8073665a565d6163666768696968676563615e5654524c46413a3228231c150c030000000000000000000713202d3946525e686d7a818c92867d6f6a5f554b40352920150a000000000000000000000007121d27303b444d575f696e7980878e92908c898685848485878a90928c847d726d635c524940352c20170d020000000000000000000000000000000000000000000000000000000613202c3945515d6776838f8e817468584e43372b1f12060000000000000000000000000000000000000000000000000000000000000000000000030b17222d38414b545c666d747e858c92908b88858483838485888c90928e8780796e695f574d433a2f231a0b0200000000000000000000000000000a141e262e343f474f565e616c707a7f858a8e92928f8d8d8c8d8e8f92928e8a847f786f6a625b51493f362c21170d000000000000000814212e3b4754616e7a8793867a6d6053473a2d202834404b54636f7c899184786c6066737f8c8b7e7265574d42362a1e2c3945525f6c7885928b7e7265584b3f3225180c000000000000000000000000000000000000000000000000000000000000000000000406070c0c0c0909070300000000000000000000000000000000000000020507080c0c0c0706040100000000000000000814212e3b4754616e7a8794897c6f6356493c3535353535353535353535353535353535353535353535353533322f2a241c130a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006111c26303a434d565e686d79808991938e86817c7773706d686a696868696a696e72767b818790938d837b6f6a5f574d42372b1e12060000000000000000000000000000000613202d394653606c79869285796c5f5246392c1f13000000000000000b1825323e4b5865717e8b8e8174685b4c525457595b5b5c5c5c5b595754524c4746413a3630292018120b030000000000000000000005111d2935414c565e686d77808c92857c6f675d51453c31261b0f02000000000000000000020b18232e39424d565f696e7b838d92908a837f7c79787777787a7e83899191877f736e635b51473d32291e140800000000000000000000000000000000000000000000000000000004111d2935404b5566727f8c9184786a5f53473a2e21140900000000000000000000000000000000000000000000000000000000000000000000000006111b262f39424b545c606c717a80858a8e90929190909192908e8b86817b736d675e564d453b31281e1108000000000000000000000000000000020c141c2328353d444d525a61676d73797e8285888a8b8c8c8c8b8a8885817d78726d66605851493f372d241a0f05000000000000000814212e3b4754616e7a8793867a6d6053473a2d202c3845515c6674818d8d8073655b626e7b88908376695f53463a2d212c3945525f6c7885928b7e7265584b3f3225180c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356494141414141414141414141414141414141414141414141414141403f3b352e251c1207000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a151e28313b444d565d676d747d848c92928d8984807d7a78777675757677787b7f82878e92908880786e695f584e453c31261a0e020000000000000000000000000000000714202d3a4753606d7a869285786c5f5245392c1f12000000000000000a1724313d4a5764707d8a8f8275695c4f46474a4d4e4f504f4f4e4c4a4746413a3935302a251e170e07000000000000000000000000010d1925303a444c565d656c73808d9183796d60584e43372b1f14090000000000000000000a141d2834404b545e696e7b8490928d837d77736f6d666a6a686e71767d848f928c80736d63594f443b3025190d040000000000000000000000000000000000000000000000000000010d18242f3c4855626f7b8896887b6e6255483b30251a0e020000000000000000000000000000000000000000000000000000000000000000000000000a141d273039424a515a61686d73797d818486878887878684817e7a756e6a605c554d443b332a1f160c0000000000000000000000000000000000020a1117232c323b414650555d60676d7175797b7d7e7f807f7e7d7b7975706d66605c544e463f372d251b120800000000000000000814212e3b4754616e7a8793867a6d6053473a2d202d3a4653606d798592887b6e62535f69778390887b6e6155483d32272c3945525f6c7885928b7e7265584b3f3225180c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f63564e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4d4b4740372e24190e02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030c161f29323b444c555c606b70797f858b9095908c8a878584838282828385888b8f93918b837c736d665e574e463c332a201509000000000000000000000000000000000714212d3a4754606d7a879185786b5e5245382b1f1200000000000000091623303c4956636f7c899083776a5d50443a3d404142434342413f3d3a3935302d29241e19130c05000000000000000000000000000008131e28323a444c535b606c77828f8d80746a5f53473b30251a0e020000000000000006111b262f3845515c666e7b8491938b8078706b6662605c54565e61646b707a828f928c7f726b60564c41362a20150a0000000000000000000000000000000000000000000000000000000715212e3a47535f6a7884918c7f7266574d42362a1e1205000000000000000000000000000000000000000000000000000000000000000000000000020b151e273039404450565d60676d707477797a7b7b7a797775716d68625f57514b433b322a21180d040000000000000000000000000000000000000006111a202930363e434c51555d6064656c6e707272737272706e6c6564605c54504a423d342d251b13090000000000000000000814212e3b4754616e7a8793867a6d6053473a2d2935414c5664707d8a908376695f535766727f8c8c7f7366584e43372b2c3945525f6c7885928b7e7265584b3f3225180c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f635b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5957524940352a1f130700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040d172029323a434b515960676d727a7f84888c8f929691908f8f8e8f909296918d89847e786f6a605c544d453c342a21180e03000000000000000000000000000000000814212e3b4754616e7a879184776b5e5144382b1e11000000000000000815222f3b4855626e7b889184786b564c4135303334353636353432302e2d2925201d19130d0802000000000000000000000000000000020c162028323a4149505b656d7a8592877c6f62574d42362a1e1105000000000000000b17222d38414e58606d78839093877e736d6661595653504a4d52545960686d79828f93887d70685e52463c32271b0f03000000000000000000000000000000000000000000000000000006121f2b37434e586773808d908376695e52463a2d20150a00000000000000000000000000000000000000000000000000000000000000000000000000030c151e272e343e444c52555c606467666d6d6e6e6d6d666864615d56534e454039302920180f06000000000000000000000000000000000000000000080e171f252a313a41454b5153535b60616365656666656361605b5353504a443f38302b221b1209010000000000000000000814212e3b4754616e7a8793867a6d6053473a2d2d3946525d6875828f8b7e7265574d54616e7b879184776a605447392e233945525f6c7885928b7e7265584b3f3225180c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f686868686868686868686868686868686868686868686868686868686866635c52473b2f23160a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050e172028303940454f555d60686d72777c7f838687898b8b8c8c8b8b898784807d78716d666058514a423b332a22180f0600000000000000000000000000000000000815222e3b4855616e7b889084776a5d5144372a1e11000000000000000714212e3a4754616d7a87928679685d5245392c26282829292928262421201d1913110d0802000000000000000000000000000000000000040e1620282f383f49535e68727f8c8f8275695e52463a2d201407000000000000030f1b27333f4953606a73808d928c7f726c605c544f4946443f4146474f565d676d79839092857a6e61584e43372b1f14090000000000000000000000000000000000000000000000000000030f1b26313c4956626f7c8995877b6e6154483c32261b0f0100000000000000000000000000000000000000000000000000000000000000000000000000030c151c2328323a41454b515357545c6061616160605c545854524c47423c342e271e170e060000000000000000000000000000000000000000000000050d14191f282f353940454749505355575859595958575553504946443f38342e261e19100900000000000000000000000814212e3b4754616e7a8793867a6d6053473a2d2e3a4754616d7a8692867a6d615447535e69768390897c6f62544a4034283945525f6c7885928b7e7265584b3f3225180c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794897c747474747474747474747474747474747474747474747474747474747474736e63574b3f3225190c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050e161e272e343d434b51565d60656a6f7276797b7d7e7f7f7f7f7e7c7a7874706c65605c544e4440393029201810060000000000000000000000000000000000000915222f3c4855626f7b889083776a5d5044372a1d11000000000000000613202d394653606c798693877a6d6054473a2d211b1c1d1c1c1b19171413110d080501000000000000000000000000000000000000000000040d161d262d38414c56606d798692877b6e6154473b2e21140800000000000005121f2b3744505b656f7c88938e81746d625a504a423e3a383436393d434c555d676f7c86928e81746a6054473b31251a0e0200000000000000000000000000000000000000000000000000000a15222e3b4754606a7884918b7f7265584e43372b1d12070000000000000000000000000000000000000000000000000000000000000000000000000000030b121820283035394045474a4a50535455545453504a4b4746413a373128231d150c050000000000000000000000000000000000000000000000000002080d161e24292f35383a3f4446484a4b4c4d4c4b4a4846443f3a38342e28231c150c070000000000000000000000000814212e3b4754616e7a8793867a6d6053473a2d37424d5765727e8b8f8275685d52464d5765727f8c8d8074665c5144382c3945525f6c7885928b7e7265584b3f3225180c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a87948f82818181818181818181818181818181818181818181818181818181818181807366594d4033261a0d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040c151d2328313940454c525458606266666c6e70717273737271706d686763605b53504a423d342e271e170e06000000000000000000000000000000000000000a1723303d4a5663707d898f8276695c4f4336291c100000000000000006121f2b3844505b66788592887b6e6255483b2f22150f10100f0e0c0a0707050100000000000000000000000000000000000000000000000000040b162028303a45515d6775818e8c7f7266594c3f3024190d0100000000000613202d394653606c7883909184796d605b51443f38302d2b282a2d313a434b555f6a73808c93877c6f62574d42362a1e1205000000000000000000000000000000000000000000000000000006131f2b37434e586673808d9083776a5f5347392f24180c00000000000000000000000000000000000000000000000000000000000000000000000000000000070e161e24292f34383a3d3f44464748484746443f3e3a3935302b262018120b0300000000000000000000000000000000000000000000000000000000040c13191d24292c2d3337393b3d3f3f403f3f3d3b3937332d2b28231c17110a03000000000000000000000000000814212e3b4754616e7a8793867a6d6053473a2d3a46535f697683908a7d7064564c414754616e7b879285796d6053463a2f3945525f6c7885928b7e7265584b3f3225180c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794948f8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e83776a5d5144372a1e110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b12181f272f353a4145474e5455545b60616365656666656463615e5656535049443f383028231c150c0500000000000000000000000000000000000000000b1825313e4b5864717e8b8e8174675b4e4134281b0e00000000000000030f1c28333f4a546a778491897c706356493d3023160a030302010000000000000000000000000000000000000000000000000000000000000008131e28323a424a505565727e8b8f827669564c4135291d11040000000007131f2c38434f5964717d8a948a7d70675d51493f342e26201f1c1e2028303a434e58606d7985928f8275695e53463a2d2114080000000000000000000000000000000000000000000000000000030f1b27323d4855616e7b8894887c6f62554b4035291d100400000000000000000000000000000000000000000000000000000000000000000000000000000000040c13191d23292c2d2e34383a3a3b3b3a3a38342e2e2d29241e1a150c070000000000000000000000000000000000000000000000000000000000000001080d12181d1f22272b2d2e303232333332302e2d2b27221f1c17110c060000000000000000000000000000000814212e3b4754616e7a8793867a6d6053473a2e3b4855616e7b889285796d6053463a46525e6976838f8a7d7063554c41353945525f6c7885928b7e7265584b3f3225180c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a878a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a83776a5d5144372a1e1100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070d151d24293035393c4347494a505354565858595958585654524c4946443f38342e261e18120b030000000000000000000000000000000000000000000c1926333f4c5966727f8c8c807366594d4033261a0d00000000000000000b17222d43505d697683908a7d7164574a3e3124170b02020202020202020202020202020202000000000000000000000000000000000000010d1925303a444c545c60646f7c89928578685d5245392c201307000000000915222f3b4854606b7683908f82766b61554b403728231c14121011161e28313c45515d67737f8c92877b6e6154483b3025190d0100000000000000000000000000000000000000000000000000000a16212d3a46535f697683908d8074675d5145382c1f160b000000000000000000000000000000000000000000000000000000000000000000000000000000000002080d12181c1f2023282b2d2e2e2e2d2d2b282321201d19130e09030000000000000000000000000000000000000000000000000000000000000000000001070c1013171b1f20222425262626252422201f1b1712100b0600000000000000000000000000000000000814212e3b4754616e7a8793867a6d6053473a38434f596673808c8d8174665c514438424d5665717e8b8e8175675d5145393945525f6c7885928b7e7265584b3f3225180c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714202d3a4753606d797e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7d7063564a3d3023170a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b12181e24292c32373b3c3f4446484a4b4c4c4c4c4b494746413d3937332d28231c140c0700000000000000000000000000000000000000000000010e1a2734414d5a6774808d8b7e7265584b3f3225180c0000000000000000061c2935424f5c6875828f8b7f7265584c3f3225190e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0d0c0a07020000000000000000000000000005111d2a36414c565e666d71747b8797877a6d6054473a2d21140700000004101c2934404b55636f7c8995897d7063594f433a2f2517110a0603050c161f2935404b55616e7b86928c7f7366564c41362a1d1105000000000000000000000000000000000000000000000000000005121e2b37424d5764717e8b9285796d6053473d33271c100400000000000000000000000000000000000000000000000000000000000000000000000000000000000001070c101314171c1f2021222121201f1c171413110d080200000000000000000000000000000000000000000000000000000000000000000000000000000004060b0f1213151718191a1918171513120f0b0603000000000000000000000000000000000000000814212e3b4754616e7a8793867a6d6053473a3b4854606b778491897c6f63544a40343b4754606d7a8692867a6d6054473b3045525f6c7885928b7e7265584b3f3225180c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006131f2c3845515c676d71717171717171717171717171717171717171717171717171717171717171717171706b6055483c2f23160900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001070c13191d20272b2e2d3338393b3d3e3f40403f3e3d3a3936302d2b27221b17110a020000000000000000000000000000000000000000000000020f1c2835424f5b6875828e8a7d7063574a3d3024170a00000000000000010e1b2834414e5b6774818e8d8073665a4d4033271b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b191916130d070000000000000000000000000713202d3946525e686d787e80818e94887b6e6155483b2e22150800000006131f2c3845515c6774818e9083776b6055473e31281d130600000000040d18242f3a46525e6876828f908376685e5246392d2013070000000000000000000000000000000000000000000000000000020e1a26313c4753606d7985928b7e7165594f44382c21160a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000406060b101213141515141312100b060705010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030506080a0c0c0d0c0c0a08060503000000000000000000000000000000000000000000000814212e3b4754616e7a8793867a6d6053473a404b54636f7c899184786c605346392e3945525d6875828f8b7e7165574d423645525f6c7885928b7e7265584b3f3225180c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004101c2934404b555c60646464646464646464646464646464646464646464646464646464646464646464646360594f44382c201407000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002080d11151b1f2222282b2d2e30323233333231302e2d2a25201f1b17110b060000000000000000000000000000000000000000000000000005121e2a36424d576a768390887c6f6255493c2f22160900000000000000000d1a2733404d5a6673808d8e8174675b4e4134282828282828282828282828282828282828282625231e19120a01000000000000000000000714212e3a4754616d7a838b8d8e9395887b6f6255483c2f2215090000000714202d3a4753606d7985928c7f7265594f44352c1f160c00000000000007131d2a36414d5665727f8c93867a6d6154473a2e21140700000000000000000000000000000000000000000000000000000009141f2c3845515c6773808d9083776b6054483d32271b0f040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000306070708080707060300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8793867a6d6053473a45515c6674818d8d8073655b5044372b35414c5664717d8a8f8376695e52463a45525f6c7885928b7e7265584b3f3225180c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c18232f39434b51535757575757575757575757575757575757575757575757575757575757575757575756554f473d33271c10040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001040a0f1315171c1f2021232525262625252321201d1913120f0b060000000000000000000000000000000000000000000000000000000714202d3a46525e69788592867a6d6054473a2d21140700000000000000000c1926323f4c5965727f8c8f8275695c4f42363535353535353535353535353535353535353533322f2a241c130a000000000000000000010e1b2734414e5a6774808d959a9a9d99887b6e6155483b2e2215080000000a1724313d4a5764707d8a95877b6e6154483d33211a0d04000000000000010e1925303c4955626f7c8899897d7063564a3d3023170a00000000000000000000000000000000000000000000000000000004101c2934404b55616e7b8692897d7063594f43382c21160a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000205070813131313131313131313131313131313131313131313131313131313131313131311100e0b0600000000000000000000000000000814212e3b4754616e7a8793867a6d6053473a4653606d798592887c6f6253493f33272f3a4653606d798592877b6e6154483c45525f6c7885928b7e7265584b3f3225180c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007121d2731394045474b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4a48443d352c21160b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000306060b0f12131517181919191918161413110d08050300000000000000000000000000000000000000000000000000000000000815212e3b4854616e7b87918477675d5145392c20130600000000000000000b1825313e4b5864717e8b9083766a5d50434141414141414141414141414141414141414141403e3b352e251c1207000000000000000004111e2b3744515e6a7784919da7a79f9286796d6053463a2d201307000005121e2a36424d576774818d908376695e53463a2d21140800000000000000000813202d3a4653606d7986928b7f7265584c3f3225190c000000000000000000000000000000000000000000000000000000000c18232f3946525e6975818e8f82766b6054483d32271b0c030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002080e1114142020202020202020202020202020202020202020202020202020202020202020201e1d1a17110b040000000000000000000000000814212e3b4754616e7a8793867a6d605347414c5664707d8a9084776a5f5341382d222c3845515c6774818e8c7f7266584e4345525f6c7885928b7e7265584b3f3225180c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010b151f272f34383a3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3d3c38332c231a0f05000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030606080a0b0c0d0d0c0b0a0707050100000000000000000000000000000000000000000000000000000000000000000a1723303d4a5663707d898f827568554c4135291d110400000000000000000a1723303d4a5663707d899184786b564c4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4c4b4640372e24190d020000000000000005111e2b3844515e6b7784919ea8a49c8f8276665c5144382c1f120600000714202d3a46525e697784918d807366574d42362a1e1205000000000000000006131f2c3845515c667784918d8174675a4e4134271b0e0000000000000000000000000000000000000000000000000000000007121d2a36424d57626e7c8793897c6f63584e43382c1e150a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050d14191e20212d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2a2a27221d160e0500000000000000000000000814212e3b4754616e7a8793867a6d60534746525d6875828f8c7f7266584e432f261b2834404b5563707d899184776a5f534745525f6c7885928b7e7265584b3f3225180c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030d151d23292c2d31313131313131313131313131313131313131313131313131313131313131313131302f2c27211a1108000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c1926323f4c5965727f8c8c7f7366594c402f24190d0100000000000000000916222f3c4955626f7c88928679685d5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5957524940352a1e130700000000000000020e1b2835414e5b6874818e969b9b928a7d7063544a4034281c100400000815212e3b4854616e7b87968a7d7063574a3d31251a0e02000000000000000004101c2834404b54697683908e8175685b4e4235281b0f00000000000000000000000000000000000000000000000000000000010e1a25303b47535f6a75828f8f82766a6054483e30261c110600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050e171e252a2d2e3939393939393939393939393939393939393939393939393939393939393939393736332e2720170e04000000000000000000000814212e3b4754616e7a8793867a6d6053474754616d7a8692877b6e6154483c312118232e394653606c788491887c6f62544a3f525f6c7885928b7e7265584b3f3225180c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b12181c1f20242424242424242424242424242424242424242424242424242424242424242424242323201c160f080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000306070808080706030000000000000000000000000000000000000000000000000000000000000000000000000000000000000004111d2935414c566874818e8a7d7064574a3d312417080000000000000000000815212e3b4854616e7b8798877a6d686868686868686868686868686868686868686868686866635b52463b2f23160a00000000000000000815212e3b4854616e7b848c8f8e8a80746b615542392e23180c0000000a1724313d4a5764707d8a93867a6d6054473a2d211409000000000000000000000c18232e434f5c6976828f8f8275695c4f4236291c0f000000000000000000000000000000000000000000000000000000000009141f2b37434e58626f7c8793897c6f625a5042382e23170c020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020d1720293036393b46464646464646464646464646464646464646464646464646464646464646464644433f39322920160b000000000000000000000814212e3b4754616e7a8793867a6d6053474d5765727e8b908376695e53463a2d21141f2b3844505b6673808d8d8073665c5044525f6c7885928b7e7265584b3f3225180c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001070c10131418181818181818181818181818181818181818181818181818181818181818181818171614100b050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000406060b1012131415141312100b0606040000000000000000000000000000000000000000000000000000000000000000000000000000000713202c3945525d68778490877b6e6154483b2e2115080000000000000000000714202d3a4753606d7a8698887b747474747474747474747474747474747474747474747474736d63574b3e3225190c00000000000000000714212d3a46535e696e797f82827d746e64594f4430271c12070000000d1a2633404d596673808c918477685d5245392c20130700000000000000000000071c2935424f5c6875828f8f8376695c504336291d100000000000000000000000000000000000000000000000000000000000020f1a26313c47535f6a75818e9083766c61544a3f34281e1408000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008141e29323b414653535353535353535353535353535353535353535353535353535353535353535353514f4a443b32271d11060000000000000000000814212e3b4754616e7a8793867a6d605347535f697683908b7e7265574d42362a1e121c28333f4a54626f7c889185796d605346525f6c7885928b7e7265584b3f3225180c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000406070b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0a090704000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001070c101314171c1f20212221201f1c171313100c07000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a86918478695e53463a2d2114070000000000000000000613202c3945515d677985928f828181818181818181818181818181818181818181818181817f7366594c403326190d000000000000000005121e2a36424d575e676d737575706c645c52473e331e150b000000020f1c2935424f5c6875828f8f827569564c4135291d1104000000000000000000030f1c2936424f5c6975828f8f8275695c4f4236291c0f0000000000000000000000000000000000000000000000000000000000000a15202b37434e58616e7b87928a7d70665c50443b3025190d03000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020e1925303b444c525f6060606060606060606060606060606060606060606060606060606060606060605d5b554d44392e22170b0000000000000000000814212e3b4754616e7a8793867a6d60534855616e7b8892867a6d6154473b31251a0e17222d3847535f6a778490897d7063554b525f6c7885928b7e7265584b3f3225180c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001070d12181d1f2023282b2d2e2f2e2d2b2823201f1c18120c0701000000000000000000000000000000000000000000000000000000000000000000000a1724303d4a5763707d8a8e817468574d42362a1e120500000000000000000004101d2935404b556b788491948f8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e83776a5d5044372a1d110400000000000000020e1a25313b454d555d6066686864615a524a40352c210c0300000005111d2a36414c566a7784908d8073675a4d402f24190d0100000000000000000003101d293643505c6976838f8e8275685b4f4235281c0f000000000000000000000000000000000000000000000000000000000000030f1b26323c47535f6974818d9184786d60564c41362a1f150b01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005111e2a36414c565e6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6a675f554a3f33271a0e0000000000000000000814212e3b4754616e7a8793867a6d60534f596673808c8f8275685e524639291f1409111c2b37434e5866727f8c8e8175675d51525f6c7885928b7e7265584b3f3225180c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040c13181d24292c2d2e34383a3b3b3b3a38342e2d2c28231d18120b03000000000000000000000000000000000000000000000000000000000000000004101d2935404b556673808d8a7e7164574b3e31251a0e02000000000000000000010d18242f44505d6a77838a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a83776a5d5044372a1d1104000000000000000009141f29333b434b5154595c5b5755504840382f231a10000000000713202d3946525e687985928b7e7165584b3e322518080000000000000000000005111e2a36414c566a7784918e8174685b4e4135281b0e000000000000000000000000000000020202020202020202020202020202000a15202b37424d57616d7a85928b7f72685e52463d31271d120700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714202d3946525e68767979797979797979797979797979797979797979797979797979797979797979797771675b4f43362a1d100000000000000000000814212e3b4754616e7a8793867a6d605354606b7784918a7e7164564c413529170d030f1b26323c4854616e7b8792857a6d6053525f6c7885928b7e7265584b3f3225180c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070d161d24292f35383a3e3f444647484746443f3e3a38342e29231d150d06000000000000000000000000000000000000000000000000000000000000000613202c3945515d67768390877a6e6154473b2e2114090000000000000000000000071623303d495663707d7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7d7063564a3d3023170a000000000000000000030d172129313a4145474c4f4f4a49443e362f261d1108000000000714212e3a4754616d7a8798897d7063564a3d3023170a000000000000000000000714202d3946525e687885928c807366594d4033261a0d000000000000000000000106090b0c0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e1a26313c46525e68727f8c92857a6e61594f43392f23180c03000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a86868686868686868686868686868686868686868686868686868686868686868683776a5d5144372a1e110000000000000000000814212e3b4754616e7a8793867a6d605354636f7c899285796d6053473a30251907000a15212d3a46535e697683908b7e7164564d5f6c7885928b7e7265584b3f3225180c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000910191f282f35394045474b4a505354555453504a4a46454039342f271f180f080000000000000000000000000000000000000000000000000000000000000714202d3a4753606d7a86908377685e5246392d20140700000000000000000000000916222f3b4854606b70717171717171717171717171717171717171717171717171717171706b6054483c2f22160900000000000000000000050f171f282f35393a4042423d3c39332c241d140b00000000000815222f3b4855626e7b8895887c6f6255493c2f22150c030000000000000000000814212e3b4754616e7a87988b7e7164584b3e3125180b000000000000000000060d121618191b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1f2a36414c56606d7883918e81756b60554b4034291e150b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a87939992929292929292929292929292929292929292929292929292929292929084776a5d5144372a1e110000000000000000000814212e3b4754616e7a8793867a6d60535c6674818d8e8175675d514539281e13080005121e2a36424d5765727e8b8f8276685e525f6c7885928b7e7265584b3f3225180c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009121b222b313a40454b515357545c60616261605c545753514b454039312a211a11080000000000000000000000000000000000000000000000000000000003101c28343f4a5464707d8a8d807366564c41362a1e110500000000000000000000000713202c38444f5960636464646464646464646464646464646464646464646464646464646360594f44382c2014070000000000000000000000050d161d24292c2d33353531302d28221a120b020000000000091623303c4956636f7c8994877a6e6154473b31271e150d0500000000000000000a1724303d4a5763707d8a99897c6f6356493c3023160900000000000000010911181e222425282828282828282828282828282828282828282825303a44505c66707d8993897d70675c51453d30271d12070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a87949286868686868686868686868686868686868686868686868686868686868683776a5d5044372a1d110000000000000000000814212e3b4754616e7a8793867a6d6053606d7985928a7d7063554b4035291d100400020e1a25313b4754616d7a8692867b6e61545f6c7885928b7e7265584b3f3225180c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009121b242d343d434b51555d606468666d6e6e6e6d666764605c55514b433c332c241a110800000000000000000000000000000000000000000000000000000006121f2c3844505c6674818e887c6f6255493c3025190d01000000000000000000000004101c27333d474f545657575757575757575757575757575757575757575757575757575756544f473d33271c1004000000000000000000000000040c13181d20212629282423201c171008000000000000000a1724313d4a5764707d8a9386796d60564c433930271f170e0802000000000008121e2a36424d576673808c92867a6d6053473a2d2014070000000000000009131b23292e313235353535353535353535353535353535353535353535343f4a54606b74818e9184796d60584e43392e23180e0500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794897d79797979797979797979797979797979797979797979797979797979797771665b4f4236291d100000000000000000000814212e3b4754616e7a8793867a6d605664707d8a9285796d6053463a2f24180c0000000914202d3946525d6875828f8c7f7265585f6c7885928b7e7265584b3f3225180c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008111b242d373f464e555d60676d717478797a7b7a797874716d67605c554e463e362c231a100700000000000000000000000000000000000000000000000000000713202d3a4653606d79859184776a6054473b2e1e1408000000000000000000000000000b16212b353d4448494b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4a48443d352b21160b000000000000000000000000000001070d111314191c1c171614100b0500000000000000000b1824313e4b5764717e8a95897c6f685e554b423931292019130d0805030609111a242d3a46535f69778390908376675d5145392c1f130600000000000006111b252d343a3e3f414141414141414141414141414141414141414141414141424f59606d7a85918d80736a60554b40342820160c02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6a665f554a3e33261a0e0000000000000000000814212e3b4754616e7a8793867a6d605d6875828f8d8074665c5044382c1d120700000005111d2935414c5664717d8a9083776a5f5f6c7885928b7e7265584b3f3225180c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050e1a242d363f49515860676d72797e8184868788878684817e79726d675f5850483e352c22190c0300000000000000000000000000000000000000000000000003101c28343f4a5463707d898c7f7366584e43372b1f0d0200000000000000000000000000050f19232b33383b3d3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3d3c38332b231a0f0500000000000000000000000000000000010406070d0f0f0a0a0804000000000000000000000b1825313e4b5864717e8b9791847a6d675d544b433a3229241e1914121012131a232a36414c56616e7b88958c807366554b4035291d10040000000000010d18232d373f464a4c4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e525d68717e8a92877c6f675c51453d32281e1308000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f635f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5d5b554d43392d22160a0000000000000000000814212e3b4754616e7a8793867a6d60616d7a8692897c6f62544a3f34281c0b01000000010d1924303a4753606d798592887b6f625f6c7885928b7e7265584b3f3225180c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020d17202c363f48515b626a6f797f858a8e919291909192918e8a847f796e6a615a50473d342b1e150b00000000000000000000000000000000000000000000000006121f2c3844505c6674808d887b6e6255483c32271b0f00000000000000000000000000000007111921272c2f30313131313131313131313131313131313131313131313131313131302f2c27211a110800000000000000000000000000000000000000000000000000000000000000000000000000000b1825323e4b5865717e8b98969082796d665c554c443d35302a25211e1c1f20262a353d46525e6873808d94887b6e6155483b2f24180c00000000000006121e29343f495156585b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b56616c75818e9083796d60594f443a3025190d010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f63565353535353535353535353535353535353535353535353535353504f4a433b31271c11050000000000000000000814212e3b4754616e7a8793867a6d6065727e8b9184776a605442382e23170c000000000008131f2c3845515c6774818e8d8073665b6c7885928b7e7265584b3f3225180c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008141f29323e48505a626d727c848c92928e898685848586898e92918b837c706c61594f463c30271d120700000000000000000000000000000000000000000000000713202d3a4653606d7985908377695f53473a2b20150a00000000000000000000000000000000070f161c2022232424242424242424242424242424242424242424242424242424242322201c160f080000000000000000000000000000000000000000000000000000000000000000000000000000000c1825323f4b5865727e8b97928f8f82786d675e564f46413a36302d2a282c2d31363e47505a616d7a85928f8376695f53463a2d1d12070000000000000916222e3a46515b62656868686868686868686868686868686868686868686868686868686868686d7a84918d80746b60564c41362a1d11050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356494646464646464646464646464646464646464646464646464644423e3931291f150b000000000000000000000814212e3b4754616e7a8793867a6d60697683908c807366584e4330261c1106000000000004101c2934404b5563707d899184786c606b7885928b7e7265584b3f3225180c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020e1925303b44505a626c727f8791938f86817d79787778797d81868f9490867e706b60584e43392e23180c0300000000000000000000000000000000000000000005121e2a36424d5764707d8a8b7e7265574d42372b1e12060000000000000000000000000000000000050b10131616181818181818181818181818181818181818181818181818181818171614100b05000000000000000000000000000000000000000000000000000000000000000000000000000000000c1825323f4b5865727e8b9285828f8f81796d686059524c46413b3a3634383a3c42465059616c74818e94897d7063574d42362a1e0b010000000000000b1824313e4a56626d7274747474747474747474747474747474747474747474747474747474747474747d8793887d70685e5246392d2013070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3939393939393939393939393939393939393939393939393736332d271f170d03000000000000000000000814212e3b4754616e7a879386796d616e7b8894887b6e6255483d3222150a000000000000000c18232f394653606c788491897c70636b7885928b7e7265584b3f3225180c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005111e2a36414d56616c717e8892918c827b74706d666a666d70747b828c9292877d706a60554b4034281f15090000000000000000000000000000000000000000000a14212d3a46535e6975828f85796d6053473c31261a0e02000000000000000000000000000000000000000407090a0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0a0907040000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1825313e4b5864717e8b92857983908f837a6f6b615d56524c4846423f4446484d535a616b717e8a938f82766b6054453b31261a0e000000000000000c1925323f4c5865727f818181818181818181818181818181818181818181818181818181818181818181859291847a6d6154473a2e2114070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c302c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2a2926221c150d0500000000000000000000000814212e3b4754616e7a879386796d66737f8c9083776a5f53473a2e2114030000000000000007121f2b3844505b6673808d8d8174666b7885918b7e7265584b3f3225180c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050f1a232d3946525e68707e8793918b7f756e6963605c545c6063696e75808b9192867c6f675c51453c31261a0e030000000000000000000000000000000000000006111c2834404b54616e7b878d8074675d5145392a1f1509000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1824313e4b5764717e8a9285787a838f90847d746d68615e5655534d4a505355575f616c717d869292857b6e61594f44332a1f1409000000000000000f1c2935424f5c6875828e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e9297978d8074675a4e4134271b0e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023202020202020202020202020202020202020202020201d1d1a16110b030000000000000000000000000814212e3b4754616e7a87998679666a7784918c7f7265584e43372b1f120600000000000000030f1c28333f4a54626f7c889285796d6b7885918b7e7265584b3f3225180c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b16212c38444f59616e7a8592928b7f736d615f5753504a5153575f616e737f8b939183796d60574d42372b1f1409000000000000000000000000000000000000000c17232e3845515c6673808c877b6e61554b403529180e03000000000000000000000000000000000000000000000000000000000003060707080808070604010000000000000000000000000000000000000000000000040607060400000000000000000000000000000000000000000000000000000000000b1724313e4a5764717d8a9286796d79828e9188817a736e6864615f57545c606265696e757e879292877e70695e53473d3321180e03000000000000000f1c2935424f5c6875818a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8175685b4f4235281c0f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c30231613131313131313131313131313131313131313131311100e0a0500000000000000000000000000000814212e3b4754616e7a879286796c6f7c8893877b6e6154483c31261a0f0200000000000000000b17222d3847545f6a7784918a7d706b7884918b7e7265584b3f3225180c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004101c27333c4855616b75828f958d80746d635b534d46444044464d535c636d74818e958d8073695f53473b31251a0e00000000000000000000000000000000000003101c28343f4a54606d79848f8276695f5343392f24180600000000000000000000000000000000000000000000000000010407060b101213141515141413100d070706030000000000000000000000000000000003070c10131413100c070100000000000000000000000000000000000000000000000000000a1724303d4a5763707d8a99867a6d6d78818a918d85807a75716e696b6b666d6f71767b828a9292877e716c61574d42352b210f060000000000000000091623303c4956636f7d7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7c6f6256493c2f2316090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c302316090606060606060606060606060606060606060606040301000000000000000000000000000000000814212e3b4754616e7a879285796674808d8f8376695e52463a2a20150900000000000000000006111c2b37434e5866737f8c8e8175677784918b7e7265584b3f3225180c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714202c38444f5963707d8a949083786d605b5146423b3834383b4246525b606d79839092877b6e61574d42362a1b1106000000000000000000000000000000000006121f2c3844505c66727e8b897d7063574d4231281d1207000000000000000000000000000000000000000000000001080d111314171c1f202122222120201d18161312100b06000000000000000000000000060b1012181d1f201f1d18120b03000000000000000000000000000000000000000000000000000916232f3c4956626f7c8994877a6d666d747d858d928d86827e7b79787778797c7e82878f938f857d716c615a50453b3123190f0000000000000000000915222f3b4854606b6f717171717171717171717171717171717171717171717171717171717171717171717171716f6a6054483b2e2215090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c302316090000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a879285786d7985918b7e7165574d42362a180e03000000000000000000000f1b26323c4855616e7b889285796d7784908b7e7265584b3f3225180c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000916222f3c4854606b76839093877c6f665c51494036312c282c31364045515c67707d89938e8174695e5346382d22170b00000000000000000000000000000000060f1c28333f4a54606d78849083766b6054453c311f160c01000000000000000000000000000000000000000000040a0f13191d202123282b2d2e2e2f2e2d2c292423201f1c17110d080200000000000000060b11171c1f24292c2d2c29241d150d030000000000000000000000000000000000000000000000000815222e3b4855616e7b8894887b6e62606b707a81868d928f8b888584848586888b8f928e88827b706c615a50473e33291f110700000000000000000007131f2c38434f596063646464646464646464646464646464646464646464646464646464646464646464646464646260584e43382c1f13070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c302316090000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a87928578707d8992867a6d6054473b30251a0700000000000000000000000a15212d3a46535f697683908a7e717783908b7e7265584b3f3225180c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005111d2a36414c5663707d89958e81756b60544a40372a261f1c1f262a34404b55606b75818e92867b6e6153493f33271b0f030000000000000000000000000000030d18212b3844505b66717e8b897d7063594f44332a1f0d04000000000000000000000000000000000000000003090e151b1e24292c2d2e34383a3a3b3b3b3a39352f302d2b28231c19140d0701000000020a11171c23282b2f35393a39352f271f150b0100000000000000000000000000000000000000000000000714212d3a4754606d7a8799897c6f635961686d747a8085898c8f91919191908f8c8a86817c756e69615950483e352c21170d00000000000000000000030f1b27323d474f54565757575757575757575757575757575757575757575757575757575757575757575757575756544e463d32271b0f030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c302316090000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8791847874818e8f8275685d524539291f1409000000000000000000000005121e2a36424d5765727e8b8f82757683908b7e7265584b3f3225180c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000713202d3946525e6875828f93877b6e62594f42392e251a1410141a232e39434f59626f7c88948d8073655b5044372b1f1205000000000000000000000000000009141f2935404b55606c78849083766b6055473d3321180e0000000000000000000000000000000000000000060d141a20272b2f35393a3e3f444647484847474540403d3a38342e2a251e18120c0402080b141c22282e34383a40454745403931271d120700000000000000000000000000000000000000000000000613202d394653606c7986928a7d716457565e61686e73797d8082848585848482807d79756f6a615e574f473e362d231a0f0500000000000000000000000a16212b353d4348494b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4948433d342b21160a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c302316090000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a879184777985928a7d7164564c4135291d11040000000000000000000000020e1a26313b4754616d7a8692867a76838f8b7e7265584b3f3225180c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212e3a4754616d7a86928f82766a5f53463d30271c13090409121d27303d47535f6a7683909184786c605346392d20130900000000000000000000000000020e1a26313945515d67717e8b897d7063594f44352b210f0600000000000000000000000000000000000000060f181f262a32373a4145474b4a50535455555453514b4d4946443f38363029241d160d0d14191d262d33383f44464b5153514b43392f24180c030000000000000000000000000000000000000000000005121f2b3744505b657784918c7f7265594c52565e61666d70737677787878777573706d67626058524d453e352d241b1108000000000000000000000000040f19232b32383b3c3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3c3b38322b22190f04000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c302316090000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a879084777e8a9285796d6053473a2f24190d010000000000000000000000000914202d3946525e6875828f8b7e76828f8b7e7265584b3f3225180c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004101d2935404b5565727e8b978a7d7063574e42342b1e150b0000000b151e2b37434e5864717e8a96897c6f6356493c30251a0e0200000000000000000000000005121e2a36424d57606d79849083766b6055473d33231a0f000000000000000000000000000000000000020a1117212931363d43474c525457545c6061616261605d555a5653504a46413b352f281f17171e252a2f383f444a5053555d605d554b4035291f140900000000000000000000000000000000000000000000030f1b27333f49536976828f8d8074675a4d464c52545c606366696b6b6c6b6a686664605d55544e46423b332c231b1209000000000000000000000000000007101921272c2f30313131313131313131313131313131313131313131313131313131313131313131313131312f2e2c272119100700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c302316090000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a87908376828f8e8174675c514538281e13080000000000000000000000000005111d2a36414c5664717e8a8f8276828f8b7e7265584b3f3225180c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006131f2c3945515d6776838f9285796d6053463c3120190c03000000030c1b26323c4753606d7986928d817467574d42362a1e12050000000000000000000000000714212d3a46535f6973808d877c6f62594f44352c2111080000000000000000000000000000000000020c141c2328333b42464e54565d606468666d6d6e6e6e6d67696763605c54524c454039312823202930363d424a50545c6064676d675d51453b31251a0e02000000000000000000000000000000000000000000000b17222d414e5a6774818d8f827669564c4141464a515356595c5e5f5f5e5d5c595753514b47433c363029201a110900000000000000000000000000000000070f161b1f22232424242424242424242424242424242424242424242424242424242424242424242424242423221f1b160f070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c302316090000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a878f837a8692897d7063554b403429160c0100000000000000000000000000010d1925303a4753606d798592877a828e8b7e7265584b3f3225180c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714202d3a4753606d7a86928e8174665c5044382c1f120700000000000a151f2c3845515d6775828f918477695e52463a2d2014070000000000000000000000000815222e3b4855616e7b868e81746a5f54473d33231a0f0000000000000000000000000000000000020b141e262e343f454d53586062686d717477797a7b7b7a7a787673706d66615e56514b433d342e29323b41464f545b60666d7176796d60574d42362a1e120500000000000000000000000000000000000000000000061925323f4c5865727f8b918478685e524639394044464a4d4f51525251514f4d4a4745403937322a251f170e08000000000000000000000000000000000000040a0f131516181818181818181818181818181818181818181818181818181818181818181818181818181615130f0a04000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c302316090000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a878f827f8b9185796d6053463a2f23180700000000000000000000000000000008131f2c3845515d6774818e8b7f818e8b7e7265584b3f3225180c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1623303d495663707d89998a7d7064544a3f34281c1003000000000004101d2935404b5564717e8b96877b6e6154483b2e2115080000000000000000000000020f1c2935424f5c6875828f857a6d61584e43352c21110800000000000000000000000000000000000a141d2630383f4451575f616a6f757a7e81838687888887868583807d79736e68605d554f443f38353e444c525960666c71787e838276695e53463a2d211407000000000000000000000000000000000000000000000a1623303d495663707c8996877a6d6154473a2e34383a3d4043444545454442403d3a39352f2b27201a140d05000000000000000000000000000000000000000000030709090b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b090907030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c302316090000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a878e8182908d8074665c5044382b1f120700000000000000000000000000000004101d2935404b5563707d899083808d8b7e7265584b3f3225180c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1a2633404d596673808c92867a6d6054473a2e23170c000000000000000c18242f3b4754616e7b87968a7e7164574b3e312418080000000000000000000000000c1925323f4c5865727f857f72685e52463c32231a0f000000000000000000000000000000000006111c262f38424a505b62696e757c81868a8e90929291909192928f8d8985807a736d676059504a42414550565e616b70787e848a90877b6e6154483b2e211508000000000000000000000000000000000000000000000714202d3a4753606d7a86928a7d7063574a3d30282c2d30333638383938373533312d2c29241d1b150e0902000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c302316090000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8791849094897c6f62544a3f34281c1003000000000000000000000000000000000c18242f3a4653606d7985919084918b7e7265584b3f3225180c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004111d2935414c566976828f908377675d5145392c1c1106000000000000000714202d3a46525e697884918e8174675b4e413025190d0100000000000000000000000b1824313e4a56626d727b786d60564c41342a20110800000000000000000000000000000000030d17222d38424a545c606d727b82898e92918d89878584838485878a8d92928d868079706b605c544c4b515a61686e757d838b91948f897f7265594c3f3226190c0000000000000000000000000000000000000000000006131f2c3945515d677783908d807366564c41362a1f202326292b2c2c2b2a292624201f1d18120f0a040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c302316090000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a879691969184776a605442382e23170b000000000000000000000000000000000007121f2b3844505c6674808d9691968b7e7265584b3f3225180c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000713202c3945525d687885928d817467554b4135291d0a000000000000000005111e2a36424d576875828e9083766a564c41362a1e110500000000000000000000000916222e3a46515b62696e6d665c51443a3022190e00000000000000000000000000000000010b151f28333f4a545c666d747e868f93908a84807d7a78777777787a7d81858a91928d847d736d665e56555d606c717a818990948f88827d726d62574a3e3125180b0000000000000000000000000000000000000000000004101d2935404b556774808d908376685e5246392d2013171a1c1e1f1f1e1e1c1a171413100c070100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c302316090000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a878a8a8a8a807366584e4330261c1106000000000000000000000000000000000003101c28343f4a54626f7c898a8a8a8a7e7265584b3f3225180c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a87978b7e7164584b3e2f24180d0000000000000000020e1a25303f4c5965727f8c928578685e5246392d201407000000000000000000000006121e29343f4951575e61605c544a4032291e10070000000000000000000000000000000007121d27313944505b666d78818b92928c837e7974706d686b6a6b686e7074797e848b92918980786d685e5f676d757e858e939189827c75706b625b51463a2e22160900000000000000000000000000000000000000000000000c18242f3d4a5663707d8993867a6e6154473c32261b0f0d1011121212110f0d0a07060400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c302316090000000000000000000000000000000000000000000000000000000000000000000000000000000714202d3a4753606d797e7e7e7e7e7a6e6154473d3221140a000000000000000000000000000000000000000b17232e384754606a717e7e7e7e7e7b6e6155483b2e22150800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000916232f3c4956626f7c8995897c6f6256493c2f231607000000000000000000091724303d4a5763707d8a97877a6e6154473b2e2114080000000000000000000000010d18232d373f454d525453514a42392e20170d00000000000000000000000000000000000c18242f39434f59606c78818e9391877f78716d6663615e565d565e6163666d71787f8690928d827a6e696a6e79818a92928c847d766f6a63605951493f35291e120600000000000000000000000000000000000000000000000713202d3a4653606d7985928b7e7265584e43372b1f140900050506050402000000000000010507070b0a080500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000000000000000000000000000000000000000000000006131f2c3845515c676d71717171716e685e5246392d2014020000000000000000000000000000000000000006111c2b37434e58616c71717171716e695f53463a2d21140700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1825313e4b5864717e8b97877a6d6054473a2d2114070000000000000000000815222f3b4855626e7b8899897c706356493d3023160a00000000000000000000000006111b252d333b4246484644403930271c0e050000000000000000000000000000000004101d2935404b55616b73808d9391857c726d66605c5454524c504c5254545c60666d727b828d9290847b6e707c838e9390867f79706b626058544f473f372d23180d01000000000000000000000000000000000000000000000006131f2c3845515c6675828e9083766a5f53473b31261a0d040000000000000000000002080d111314181715110c060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000000000000000000000000000000000000000000000004101c2934404b555c606464646464615e564c41362a1e110500000000000000000000000000000000000000000f1b27323d46505a616464646464615f574d42362a1e120500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1a2633404d596673808c928578685d5245392c2013060000000000000000000713202d3a4653606d7986928b7e7165584b3e3225180b0000000000000000000000000009131b212930363a3b3a38342e271e150b000000000000000000000000000000000006131f2c3945515d67707d889392857c6f6a605c54504a474641444146474a50545c60696e78808b9291857b7d8691928d837c736d666159544e48443d352d251b110700000000000000000000000000000000000000000000000004101c2834404b5463707d8a95887c6f62574d42362a1f160b020000000000000000050c13191d20212424211d17100900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c30231609000000000000000000000000000000000000000000000000000000000000000000000000000000000c18232f39434b5153575757575754524c443b3025190d0100000000000000000000000000000000000000000a15202b343e485055575757575755534d453b31261a0e0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010e1b2734414e5a6774818d9083766a564c4135291d110400000000000000000006131f2c3845515c667884918c7f7266594c3f3326190c0000000000000000000000000001090f171f252a2d2e2d2c28231c150c030000000000000000000000000000000003101c28343f4a54606d79849192877c6f6a6058504a443f3a39363036393b3f444a50575e666d737e879291888a92928a80796f6a605c544f47433c38332b231b130900000000000000000000000000000000000000000000000000000c18232e394653606c7884918e8174695f53463d31281d140a03000000000000050e161e252a2d2e31302d28221a1209000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c302316090000000000000000000000000000000000000000000000000000000000000000000000000000000007121d2731394045474b4b4b4b4b4746413b32291e1408000000000000000000000000000000000000000000040f19222c363e45494a4b4b4b4b4846423b332a1f14090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020f1c2935424f5c6875828f8f8275685c4f422f24190d0100000000000000000004101c2834404b546a7683908d8073675a4d4034271a0d000000000000000000000000000000050d141a1e2021201f1c18120b03000000000000000000000000000000000006121f2c3844505c66727f8c958c7f726a60574e443f38342e2d2a252a2d2e34383f444d545c606c717d8692959792867e746d675f58514b423d37322c272119110901000000000000000000000000000000000000000000000000000007121f2b3844505b66737f8c92867b6e61594f433a2f261c150c0803000000060d1620283036393a3e3d39342c241b12090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000000000000000000000000000000000000000000000000010b151f272f34383a3e3e3e3e3e3b3936302920170d020000000000000000000000000000000000000000000007101a242c33393c3e3e3e3e3e3b3a36312a21180e03000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003101d2a3643505d697683908e8174675b4e4134281b0800000000000000000000000c18232e424f5c6975828f8e8175685b4e4235281b0f0000000000000000000000000000000003090e1214151312100c07000000000000000000000000000000000000000713202d3a4653606d7985929183786d60584e453d342e2823201d191e2023282e343b424b555c666d7985919e95887c716c605c554e454039302b27201c160f0700000000000000000000000000000000000000000000000000000000030f1c28333f4a54606d7a85928e81756b60554b41382e261e1913100c080d11171f28323a4146474b49453e362d241b100600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c302316090000000000000000000000000000000000000000000000000000000000000000000000000000000000030d151d23292c2d31313131312e2d2a251e170e0500000000000000000000000000000000000000000000000008121a22282d3031313131312e2d2a261f180f0600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004111e2b3744515e6a7784918d8073665a4d4033271a0d0000000000000000000000071b2835414e5b6874818e8f8276695c4f4336291c10000000000000000000000000000000000000020507080706040000000000000000000000000000000000000000000a1724303d4a5763707d8a978a7e71665c50463c3328231c1713110e11141b262f38424b545c676d78818f9793998c7f736a60554b433c342e271e1b15100b050000000000000000000000000000000000000000000000000000000000000b17222d3845525d68737f8c93887d70675d53493f383029241f1c1719191c2228313a444c5254575550483f362d22180e03000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c30231609000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b12181c1f20242424242421201e19140d0500000000000000000000000000000000000000000000000000000810171c2123242424242422211e1a140e060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005121f2c3845525f6b7885928b7f7265584c3f3225190c00000000000000000000010d1a2734404d5a6773808d9083776a5d5044372a1d1100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004101c2834404a546774818e9285796d60544a3f342b2117110b0605081217222d38414a545c666d79828f938f868f92877c6f675d51453d2f261d150c0a04000000000000000000000000000000000000000000000000000000000000000006111c2935414c56606d7984919184796d655b504a423c352f2c28232624292d333b434c565e6164615a50483f342a20150a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c302316090000000000000000000000000000000000000000000000000000000000000000000000000000000000000001070c10131418181818181414110d080200000000000000000000000000000000000000000000000000000000050c11141717181818181514120e0903000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006121f2c3945525f6c7885928b7e7165584b3e3225180b00000000000000000000000d192633404c5966737f8c9084776a5d5144372a1e1100000000000000000000010406070807060400000000000000000000000000000000000000000000000000000006121f2c3844515c667783908e8175665c5142382e22190f06000007101a2427333f49535c666d78828f938e817a818f9184796d60584e42382d22170b01000000000000000000000000000000000000000000000000000000000000000000000d1924303a45515d67707d88938e81776c605c544d45413a38342e333035383f444d555e686d716c625a50463c31261a0f030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c30231609000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000406070b0b0b0b0b08070501000000000000000000000000000000000000000000000000000000000000000004080a0b0b0b0b0b080705020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006131f2c3946525f6c7985928a7e7164574b3e3124180b00000000000000000000000c1926333f4c5966727f8c9184776a5e5144372b1e11000000000000000001080d111314151313100c07000000000000000000000000000000000000000000000000000713202d3a4653606d7986928b7f7265544b4030261c10070000040e18222c363e44505b656d78818f938e81786d7a84918d80746a60544a3f33281d12070000000000000000000000000000000000000000000000000000000000000000000008131e2935404b55606b74808d938d80746d665f57514c46443f403f4041464a50575e676d7a7e716c62584e43372b1f12060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c302316090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006121f2c3844505c667986938a7d7164574a3e3124170b00000000000000000000000c1926323f4c5965727f8c9184786b5e5145382b1e1200000000000001070c13191d202122201f1c18120b0300000000000000000000000000000000000000000000000814212e3b4754616e7a8799897c706356493d2e23140a0000020c16202a343e48515b606c77818e938e81786d68707d8893877c6f665b5044392f24180c01000000000000000000000000000000000000000000000000000000000000000000020d18242f39434f59606d78828f928d80786e69605d5553504a4d4c4d4c52545b60696e7983877e716a5f53473a2e2115080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c30231609000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000713202d3a4653606d7986998a7d7064574a3d3124170a00000000000000000000000c1925323f4c5865727f8b9185786b5e5245382b1f120000000000030b12181e24292c2d2f2d2c28231d150c09010000000000000000000000000000000000000000000815222f3b4855626e7b8895887b6f6255483c2f22150900000a141e28323c46505a626d74808d938e81786c66606b74818d9083786c60554b4035291e13080000000000000000000000000000000000000000000000000000000000000000000007121d28313d44505c666d798390928d827b736d6762605c545a5959565d61666c717b839093867b6f6255483c2f2215090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c30231609000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714202d3a4753606d7a86938a7d7063574a3d3024170a00000000000000000000000b1825323e4b5865717e8b9285786b5f5245382c1f1200000000030d151d23292f35393a3b3a38342e271e1b13090100000000000000000000000000000000000000000916222f3c4955626f7c8894877b6e6154483b2e2115080006111c26303a444e58616c727f8c928f81786d665b59606d7a85928b7e71675d51453a2f24190d00000000000000000000000000000000000000000000000000000000000000000000010c161f28343f4a545d676d79828e939086807a746f6d666766666668686d72787e8590928b7f726a5f53473a2e2115080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c30231609000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714202d3a4753606d7986938a7d7063574a3d3024170a00000000000000000000000c1825323f4b5865727e8b9285786b5f5245382c1f12000000010b151f272f343a4145474846454039302d251b130900000000000000000000000000000000000000000815222f3b4855626e7b8895887b6e6255483b2f221507060f17232e38424c565f6a717e88938f82786d665c54525d68717e8b9185796d60564c4135291d120700000000000000000000000000000000000000000000000000000000000000000000040d17232e38424c555d676d79818a91928d86817c79767473727374777a7e838b9291877e726d63584e43372b1f12060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c30231609000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613202d394653606c7886998a7d7064574a3d3124170a00000000000000000000000c1925323f4c5865727f8b9185786b5e5245382b1f1200000007121d27313940454c52545553514b423f372d251b1106000000000000000000000000000000000000000814212e3b4754616e7a8797897c6f6356493c2f24180d0c182128343f4a545e686f7c86929083796d665c544a4c56606c7883908c7f72685d5245392e23180c000000000000000000000000000000000000000000000000000000000000000000000006111c26303a434c555d676d747d848c91928e89858381807f808183868b91928c847c716c635b51463c31261a0f030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c302316090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005121f2b3744505b657986928a7e7164574b3e3124180b00000000000000000000000c1926323f4c5965727f8c9184776b5e5144382b1e110000000c18232f39434b51565d6062605c5451493f372d23180d010000000000000000000000000000000000000714202d3946525e687885928b7f7265554b4035291d13141e2a333c44505c666d7a849191847a6e675d544b4244505b65707d8a92857a6d60554b4034281c100400000000000000000000000000000000000000000000000000000000000000000000000a151e28313a434c555c606c70797f84898e91928f8e8d8c8c8e9093908c8680796f6a625a514940342a20150a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030f1b27333f495f6c7985928b7e7164584b3e3125180b00000000000000000000000d192633404c5966737f8c9184776a5e5144372b1e11000004101c2934404b555c60686d6e6d66625b51493f34291d120000000000000000000000000000000000000005111e2a36414c566976828f8e8175675d51453a2f24181c26303c45505a606d78828f92867c6f685e554c42393f4953616b7683908c7f73675c5145382c1f160b0000000000000000000000000000000000000000000000000000000000000000000000030c161f28313a434b515a61676d72787d818487898b8c8c8c8b8987837f7a736d676058504840372e22180e03000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b17222d45525f6c7885928b7e7165584b3e3225180b00000000000000000000000d1a2633404d596673808c9084776a5d5144372a1e11000006131f2c3845515c676d747a7b79726d625b51463a2e1d1207000000000000000000000000000000000000010d1925303f4c5865727f8b92857a6d60554b40352921232e38424d57616c73808d928a7e716a5f564c433a3038414f5963707d899185796d6053463d32271c10020000000000000000000000000000000000000000000000000000000000000000000000040d161f283139404550555c60666c7074787b7d7e7f807f7e7d7a77736d68605d554e463f362e251c100600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c302316090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000121f2b3845525e6b7885918c7f7266594c3f3326190c00000000000000000000010e1b2734414e5a6774818d9083766a5d5043372a1d100005111e2a36414c56606d79818688857f726d62564a392e23180c000000000000000000000000000000000000000814212e3b4754616e7b86928b7e72675d51453e332a28343f4a545f69717e8a928d80736c61584e443b31282f3e4854606b7783908b7e7165594f44382c1e1408000000000000000000000000000000000000000000000000000000000000000000000000040d161f272f343e434b51545b606367696e707272737272706e6866615e56514b433d342d241c130a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c302316090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004111e2a3744515d6a7784908d8073675a4d4034271a0600000000000000000000020f1c2835424f5b6875828e8f8275685c4f4235291c0f000713202d3946525e6874818d9298928b7f7265544b4034281c10040000000000000000000000000000000000000714202d3a46525e6974818e9185796d60594f453c32303944505c666e7b86928f82786c605a50463c32291f2c38444f5964717e8a9184776b6054483b3025190d01000000000000000000000000000000000000000000000000000000000000000000000000040d151d2329303940454a505356575e6163656566666563615e5654524c454039312b221b120a010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c302316090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003101c2936434f5c6976828f8e8174685b4e412d22170b0000000000000000000003101d293643505c6976838f8e8174675b4e4134281b0e000714212e3a4754616d7a87939fa29e918478665c5145382c1f130600000000000000000000000000000000000005111e2a36424d56616e7b86928d80746b61574d443b39434e58606d78839091847a6d665b50483e342a201c27333d4653606d798591897d7063564c41362a1e110500000000000000000000000000000000000000000000000000000000000000000000000000030b12181e272e34383f44464a4d52545658595959585654524c4746413a352f271f19100900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020f1b2835424e5b6875818e8f827569544a3f33281c0f0300000000000000000005111d2935414c566a7784908d8073665a4d4033271a0d00091623303c4956636f7c899aa4aca19686796d6053463a2d201307000000000000000000000000000000000000020e1925303b46535f69727f8c928a7d70695f564c44404b555f6a737f8c92877c6f685d544a3f362c2218161f2c3844515c6673808d8e8175685e5246392d201509000000000000000000000000000000000000000000000000000000000000000000000000000001070c151d23282d3338393d4246474a4b4c4d4c4b494746413b39363029241d150d070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010e1a2734414d5a6774808d908477665b5044382b1f12060000000000000000000713202d3946525d687885928b7f7265584c3f3225190c000915222f3c4855626f7b8897a1a99f928679665c5145382c1f13060000000000000000000000000000000000000009141f2a36424d57606d78829092857b6e685e564d45515c676f7c87928c7f736a60564c42382d241a10101c2834404a54616e7b8792867a6e6154473c31261a0e02000000000000000000000000000000000000000000000000000000000000000000000000000000030b12181c22282b2d30363a3b3d3f3f403f3f3d3b3936302d2a251e18120b03000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c1926323f4c5965727f8c9285796c605346392d2013060000000000000000000714212e3a4754616d7a87978a7d7164574a3e3124170b000713202d3a4653606d788591999c978f827569544b4034281c100400000000000000000000000000000000000000020e1a26313b44505c666e7b859191847a6e685e564e58606d7983909083786d60584e433a2f261c12080c18232e3946535f6976838f8b7f7265574d42372b1e12060000000000000000000000000000000000000000000000000000000000000000000000000000000000070c11171c1f20252a2d2e303232333332302e2d2a25201d19130c070100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1724313d4a5764707d8a98877b6e6154483b2e2115080000000000000000000916232f3c4956626f7c8999887b6f6255483c2f2215090006121f2b3844505c66707e878e8f8d857c6e6255483b2e23180c00000000000000000000000000000000000000000009141f28343f4a545e696f7c869290837a6e695f585f6a73808d92867b6e665c50463c31281d140a0007121c2a36424d5765717e8b908376695f53473a2d21140900000000000000000000000000000000000000000000000000000000000000000000000000000000000000060b0f12131a1e20212325262626252321201e1914110d0802000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000815222f3b4855626e7b8899897d7063564a3d302317090000000000000000000b1824313e4b5764717e8a93867a6d6053473a2d2014070003101c28343f4a54616c707c8182807b6e6a5f53473a2e1d1207000000000000000000000000000000000000000000030b17232e38424d56606a707d869290837b6f6a61656f7c87938b7e71695f544a3f342b1f160b0200000e1a26313b4754616d7a8692887b6e6155483b30251a0e0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000306090e1114141718191a1918161414110d0805010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000713202d3a4653606d7986928c7f7265594c3f31261a0e020000000000000004101c2834404a546773808d918477675c5145382c1f130600000b17232e3842505a616a6f7476736e695f584e43372b1f0b000000000000000000000000000000000000000000000006111c26303b444e58616b707d869191847c706b6c7883908f82766d62574d42382e22190d040000000914202d3946525d6875828f8c7f7366574d42362a1e11050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020507080a0c0c0d0c0c0a080705010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c30231609000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006121f2c3844505c667784918f827568574d42372b1e12060000000000000006121f2c3844515c667683908f827569554b4034291c1004000006111c26303e4850585f62676967615e564e463c31261a0f0000000000000000000000000000000000000000000000000a141e29323d464f59616b707c859091867d72717e8b92867b6e615a50453c30261c10070000000005111d2935414c5665727e8b908377695e52463a2d20140700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c30231609000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003101c28343f4a546874818e928578695f53473a2e211409000000000000000713202d3a4653606d7985928c7f7366594c402f23180c000000000a141e2c363e464e53555b5c5a54524d443c332a201509000000000000000000000000000000000000000000000000020c17202b343d474f59606a6f7b838f92877f7985918c8073695f53483f332a1e140a0000000000010d1924303b4854616e7b8792877b6e6154473b2e21140800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c302316090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c17232e3e4b5865717e8b97887b6e6255483b3025190e000000000000000916232f3c4956626f7c8998897c6f6356493c3023160700000000020c1a232c343c4347494e4f4d4746423b322a21180e0300000000000000000000000000000000000000000000000000050e19222c353d474f5860696e79828c938c86919184796d60574d42362d2317110a0200000000000814202d3a46525e69768285857e7164584b3e3125180b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c302316090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000615222e3b4855616e7b88968c7f7265564d42362a1d1207000000000006121e2b37424d576673808c9285796d6053463a2d201307000000000008111a222a32373b3c4143403b3a36302920180f0600000000000000000000000000000000000000000000000000000007101a232c353d464e575e676d7880879393988b7e71675d544d453d3528231c140c040000000005121e2a36424d576670767878716c6256493d3024170a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c302316090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a46535f69788491908376695e5246392e23180c01000000010c14212d3a47535f697784908f8276665c5145382c1f130600000000000008101820262b2e2f3436342e2d2a251f170e06000000000000000000000000000000000000000000000000000000000008111a232b343d454d555d666c737d8996978a7e746d665e574f473f342e261e160d04000000020e1a25303b45555e666a6c6c64625a5045392d21150800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005121e2a36424d576774808d93877b6e61544b4034281d120700000007131d2935404b55616e7b88958b7e7165544b4034281c100400000000000000060e151b1f212228292721201e19140d0500000000000000000000000000000000000000000000000000000000000000081119222b333b434b545b606d7a879398908a80786e69605951443f3830281f160d0400000009141f2933434c555b5d5f5f585650483e34291d110500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c30231609000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020e1a26313c4956626f7c89968c7f73665c5145392f24180f0600060f18242f3845515d6773808d92867a6d6054473a2e23180c000000000000000000040a0f1315161b1c1a1414110e09020000000000000000000000000000000000000000000000000000000000000000000810192129313a44505c66727f8c908b8a928d837b706b625b504a4239312820160d040000030d1721313a434a4e5052524b49453e362d22170c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c30231609000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000915222e3b4754606a7784919185796d60554b40352921180f0a0f18212935414b55606d7985928f8275685d5245392c1d12070000000000000000000000030608090e100d08070502000000000000000000000000000000000000000000000000000000000000000000000000070f17202d3a4653606d7884918b7e7d859090857d726d605c544b433a32281f160b020000050f1f2831383e424345453e3d39342d241b11060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c302316090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006131f2b37434e5866727f8c978b7e71675d51453d3329211b181b212a333b45515d67727e8b958a7d7063564c4135291d0b000000000000000000000000000000000103010000000000000000000000000000000000000000000000000000000000000000000000000000000005111e2a36414c5664707d8a928579707b828d92877f746d665d554c443a31281d140a0000000d161f272d323537393931302d29221b1209000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030f1b27323d4753606d7985929184796d60594f453b332b2625262b333c454f59606d7a85919083776b6155443a3024190d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000713202d3946525e6875828f8d8073696e78808b928b80786d675d564c43392f261c11060000040d151c2226292a2c2c2524211d17110900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c3023160900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a16202c3945515d67737f8c968d80736b60574d453d37313231373d454d57606b73808d948a7d7064594f4432281e130800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212e3a4754616d7a8692887b6e62666d747e86928d82796d685d554b42382d22170d040000030a11161a1c1d1f1f181715110c060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794897c6f6356493c30231609000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004111d2935404b55606d79849192877d6f695f574f47433f3e3f43474f575f69707d87929082786c6053463e3320160c020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004101d2935404b5565727e8b908377695f5c606c717c85918f827a6d675d544a3f33281f160c01000000050a0d101012120b0a080500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a878a897c6f6356493c302316090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010d18242f3a45515d67707d889392857b6e696059534e4c4b4c4e535960696e7b859292867b6e655b5044372b1f1204000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006131f2c3945515d6776828f8c7f726657515a626a6f7b84919082796d665b50443d31281e1308000000000001030406060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714202d3a4753606d797e7e7e7a6d6154473a2e21140700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007131d2935414b55606b74808d9391847b706b625f58595859585f626b707b8491928b7f72695f53493f33271b0f0300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714202d3a4753606d7a8692887b6e615548505860696e7b84918f82786c60594f433a2f24190d0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006131f2c3845515c676d7171716d685e5246392d201307000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010d18242f3a434f59606d78818f9491857d756f6a67666566676a6f757d8591938d80746d62574d41382d22170b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1623303d495663707d89918478695f5346464e575f696e7b85928d80736b60554c4135291e130800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004101c2934404b555c60646464615e564c41362a1d11050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007131d28313d44505c666d78828c939289817c777472717274777c828992928c81776c605b51453b2f261b11060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1a2633404d596673808c8e817568574d423d454d575f696f7d8792897d70675d51453a2f24190d010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c18232f39434b515357575754524c443a3025190d0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010c161f28343f4a545c666d78808790938e8884817f7e7f8184888f9390877f746c655b50493f332a1d140a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020f1c2935424f5c6875828f8b7f7265584c3f333c454d57606b727f8c91847a6d60564c4135291d110400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007121d2731394045474b4b4b4746413a32281e1308000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040d17232e38424b545c666d737d838a8f92918d8c8b8c8d91928e89837c726d605b53493f372d21180b0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004101c2934404b556a778490897d7063564a3d30333b454f59606c7783908c8073685d5245392c201307000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010b151f272f34383a3e3e3e3a3936302820160c020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006111c263039424b545c606b70777d8285898a8b8c8b8a8985827d766f6a625b504941382d251b0f060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006131f2c3845515c67798592877b6e6154483b2e2a333d44505b656f7c8992867a6d6054473a2d21140800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030d151d23292c2d3131312e2d2a251e160e050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a151e273039424a505960636b7075797c7e7f7f7f7e7c7975706b62605851443f382f261b130900000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000714202d3a4753606d7a8698867a6d6053473a2d2027333f4953606a7683908b7e7165584b3e3025190d0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b12181c1f2024242421201d19130c0500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030c151e2730383f444f54596163666d6f71727372716f6d66636059544e463f332d261d140a010000000000000000000000000000000000020507080d0e0c07060401000000000000000000000000000000000000000000000000000000000000000000000714212e3a4754616d7a87928679675d5145382c1f222d38414e5865727f8b8f827669564c41362a1d1105000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001070c1013141818181413110d0802000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030c151e262e343d44484f55545c6062646566656462605c54544f47433d3427221b140b020000000000000000000000000000000003090e121415191b191413100d070100000000000000000000000000000000000000000000000000000000000000000815212e3b4854616e7b87928579665c5044382c1f1b262f3d4956626f7c89928578685e5246392d20130700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000406070b0b0b07070501000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030c141c232832383e44484a50535657585958575653504a48443d37322b2217110a0200000000000000000000000000000000050d141a1e202126282520201d18120c04000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a879886796d6053463a2d2014212d3a4754606d7a8797877a6d6154473a2e21140700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020a111721272c3338383f4446494b4c4c4c4b4946443f3838332b27201910060000000000000000000000000000000000080f171f252a2d2e3334322d2c29241d160d060000000000000000000000000000000000000000000000000000000000000613202d394653606c798692877a6e6154473b2e2318202d394653606c798693887b6e6155483b2e221508000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060b161c21282c2e34383a3c3e3f403f3e3c3a38342e2c27211b150f07000000000000000000000000000000000008111a212930363a3b40413f3a39352f281f180f06000000000000000000000000000000000000000000000000000000000006121f2b3844505b667784908a7d7063544b4034281e202d3a4653606d798699887b6e6255483b2f22150800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050b10161c1c23282b2d2f31323332312f2d2b28231c1c160f0a040000000000000000000000000000000000030c1a232c333b4246484c4e4c47454039312a21180e0300000000000000000000000000000000000000000000000000000000030f1c28333f4a546874818e8d8073665c51453a3027222e3b4854616e7b8798877a6d6154473a2e211407000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050b1011171c1f2023242526252423201f1c1711100b05000000000000000000000000000000000000000a151e2c353e454d5254595b5853514b433c332a1f150900000000000000000000000000000000000000000000000000000000000b17222d3e4a5764717d8a9185796d60564c4239332d35404b5563707d8a9286796d6053463a2d201307000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060b101213161819191918161312100b0600000000000000000000000000000000000000000006111c26303e474f575e61666765605d554d453c31261a0e00000000000000000000000000000000000000000000000000000000000614202d3a4753606d7985928b7e71685d544b443f3e3f45515d6774808d908376665c5044382b1f12060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030607090b0c0d0c0b0907060300000000000000000000000000000000000000000000000c17232e38424f5961696e7374726d675f574d42372b1b11060000000000000000000000000000000000000000000000000000000006131f2c3845515d6773808c92857a6d665c5550494b495059606d7985928c807366544a3f34281c10030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003101c28343f4a54616b707b7f817f796e695f5347382d22170b0000000000000000000000000000000000000000000000000000000004101d2935404b55606d7984918f82786d67605b5358535b606b727f8c92877b6e6154483b2e23170b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010406071313131313131313131313131313131313131313130c0b09060100000000000000000000000000000000000000000006121f2c3844505c66707d868c8e8b847b6e6253493f33271b0f03000000000000000000000000000000000000000000000000000000000c18242f3945515d67707d87938e8179706c65666565656c717d87928e8175695e53463a2d1c110600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001070d1013141f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f191816120d0700000000000000000000000000000000000000000713202d3a4653606d798491989a968f8275655b5044372b1f12050000000000000000000000000000000000000000000000000000000007121d2935404b55606b727f8b928e847d787473717274787e869292857a6d61574d42362a1e0a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040c12181d20202c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2625221e181109010000000000000000000000000000000000000915222f3c4855626f7c8897a1a89f9286796c605346392d20130600000000000000000000000000000000000000000000000000000000010d18242f3a434f59626d727f8791918984817f7e7f81848b9292867d70685e52453b31251a0e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040d161d24292c2d39393939393939393939393939393939393939393932312e29231b13090000000000000000000000000000000000000916232f3c4956626f7c8995a5ada19686796d6053463a2d201307000000000000000000000000000000000000000000000000000000000007131d28313d47515b626d727c848b90918e8c8b8b8d91928d857d706b60564c4133291f140900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010c161f282f35393a4646464646464646464646464646464646464646463f3e3a352d251b110700000000000000000000000000000000000814212e3b4754616e7a87939ea39e918478665c5144382c1f12060000000000000000000000000000000000000000000000000000000000010c161f2b353f49515b626a6f787e83878a8b8c8c8b8985807a706b60594f443a3021170d030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007121d2831394045475252525252525252525252525252525252525252524c4a463f372d23180d01000000000000000000000000000000000714202d3946525e6875818f9399928c7f7266544a4034281c1004000000000000000000000000000000000000000000000000000000000000040d1a232d373f49515860666d71767a7d7f7f7f7e7c79736d6860594f473d32291e0f0500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010d18242f39434b51535f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f595751493f35291e12060000000000000000000000000000000005111e2a36414c56606d7a8288898680786c605346392e23180c000000000000000000000000000000000000000000000000000000000000000008111b252d373f464e545c6064686e70727372716f6c66605d564f473d352b20170d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004101d2935404b555d606c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c65625b51463a2e22160900000000000000000000000000000000010d1925303b45525d686d757b7c7a736c665b5044382b1c120700000000000000000000000000000000000000000000000000000000000000000009131b252d343d424a5053565e61636566656462605b54524c443d352b23190e0500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613202c3945515d676d797979797979797979797979797979797979797979726d62574a3e3125180b000000000000000000000000000000000008141e2935414c565d60696e6f6d68605b544a3f33281c0b000000000000000000000000000000000000000000000000000000000000000000000109121b222b30383f44464c525457585959585653504a45413a322b231911080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714202d3a4753606d798685858585858585858585858585858585858585867f7265594c3f3226190c0000000000000000000000000000000000020d19242f3a434c52575f6163615e56504a42382d22170b0000000000000000000000000000000000000000000000000000000000000000000000000910191e262e34383b4146474a4c4c4c4b4946443f38352f2820191108000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714202d3a4753606d7a86929292929292929292929292929292929292928c7f7266594c3f3326190c00000000000000000000000000000000000008131e28313a41454d53555654524c443f382f261c110600000000000000000000000000000000000000000000000000000000000000000000000000070c141c23282b3036393b3d3f403f3e3c3938332d29241e160d0700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714202d3a4753606d798688888888888888888888888888888888888888887f7266594c3f3326190c000000000000000000000000000000000000010c161f282f353b424648494746413a332d261d140a000000000000000000000000000000000000000000000000000000000000000000000000000000020a11171c1f252a2d2e30323332312f2d2b28221c19130c040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613202d394653606c787c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7a6d6154473a2e21140700000000000000000000000000000000000000040d161e242931363a3b3c3a39363028221c140b020000000000000000000000000000000000000000000000000000000000000000000000000000000000060b1014191e2021242526262523201f1c17110d08010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006121f2b3844505b666c6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6d685e5246392d2013070000000000000000000000000000000000000000040c13191f262a2d2e302e2d2a251e17110a02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003080e11141417191919181613120f0b0600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030f1c28333f4a545b60626262626262626262626262626262626262626262615e564c41362a1e110500000000000000000000000000000000000000000001080d141a1e21222321201d19130b06000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020507080a0c0d0c0b09060603000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b17222d38424a505355555555555555555555555555555555555555555554524c443a3025190d01000000000000000000000000000000000000000000000003090e121415161413110d080200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006111c262f383f44464949494949494949494949494949494949494949494746413a32291e130800000000000000000000000000000000000000000000000000000205070809070705010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a141d262d3338393c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3a3936302920170d020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020b141c22282b2d2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2e2d2a251e170e0500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020a11171c1f2022222222222222222222222222222222222222222221201e19130d0500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060b0f12131616161616161616161616161616161616161616161413110d0802000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000306060909090909090909090909090909090909090909090707050100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + m_StreamData: + serializedVersion: 2 + offset: 0 + size: 0 + path: diff --git a/com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Arts/Female1_withAvatarIK.avatar.asset.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/Fonts/NotoSansTraditionalChinese/NotoSansTC-VariableFont_wghtSDF.asset.meta similarity index 64% rename from com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Arts/Female1_withAvatarIK.avatar.asset.meta rename to com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/Fonts/NotoSansTraditionalChinese/NotoSansTC-VariableFont_wghtSDF.asset.meta index 1d5a392..1912c88 100644 --- a/com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Arts/Female1_withAvatarIK.avatar.asset.meta +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/Fonts/NotoSansTraditionalChinese/NotoSansTC-VariableFont_wghtSDF.asset.meta @@ -1,8 +1,8 @@ fileFormatVersion: 2 -guid: a343ad8228ed4924eab4fc954f5620bc +guid: b8d7ff1ce468ad54e95b30ad0114eca9 NativeFormatImporter: externalObjects: {} - mainObjectFileID: 9000000 + mainObjectFileID: 11400000 userData: assetBundleName: assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/Fonts/NotoSansTraditionalChinese/OFL.txt b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/Fonts/NotoSansTraditionalChinese/OFL.txt new file mode 100644 index 0000000..d57ea9c --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/Fonts/NotoSansTraditionalChinese/OFL.txt @@ -0,0 +1,93 @@ +Copyright 2014-2021 Adobe (http://www.adobe.com/), with Reserved Font Name 'Source' + +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: +https://openfontlicense.org + + +----------------------------------------------------------- +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/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/Fonts/NotoSansTraditionalChinese/OFL.txt.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/Fonts/NotoSansTraditionalChinese/OFL.txt.meta new file mode 100644 index 0000000..de59bc9 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/Fonts/NotoSansTraditionalChinese/OFL.txt.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 5b73d71a6459ea642bebeb11affb9826 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/Fonts/NotoSansTraditionalChinese/README.txt b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/Fonts/NotoSansTraditionalChinese/README.txt new file mode 100644 index 0000000..8ada259 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/Fonts/NotoSansTraditionalChinese/README.txt @@ -0,0 +1,71 @@ +Noto Sans TC Variable Font +========================== + +This download contains Noto Sans TC as both a variable font and static fonts. + +Noto Sans TC is a variable font with this axis: + wght + +This means all the styles are contained in a single file: + NotoSansTC-VariableFont_wght.ttf + +If your app fully supports variable fonts, you can now pick intermediate styles +that aren’t available as static fonts. Not all apps support variable fonts, and +in those cases you can use the static font files for Noto Sans TC: + static/NotoSansTC-Thin.ttf + static/NotoSansTC-ExtraLight.ttf + static/NotoSansTC-Light.ttf + static/NotoSansTC-Regular.ttf + static/NotoSansTC-Medium.ttf + static/NotoSansTC-SemiBold.ttf + static/NotoSansTC-Bold.ttf + static/NotoSansTC-ExtraBold.ttf + static/NotoSansTC-Black.ttf + +Get started +----------- + +1. Install the font files you want to use + +2. Use your app's font picker to view the font family and all the +available styles + +Learn more about variable fonts +------------------------------- + + https://developers.google.com/web/fundamentals/design-and-ux/typography/variable-fonts + https://variablefonts.typenetwork.com + https://medium.com/variable-fonts + +In desktop apps + + https://theblog.adobe.com/can-variable-fonts-illustrator-cc + https://helpx.adobe.com/nz/photoshop/using/fonts.html#variable_fonts + +Online + + https://developers.google.com/fonts/docs/getting_started + https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Fonts/Variable_Fonts_Guide + https://developer.microsoft.com/en-us/microsoft-edge/testdrive/demos/variable-fonts + +Installing fonts + + MacOS: https://support.apple.com/en-us/HT201749 + Linux: https://www.google.com/search?q=how+to+install+a+font+on+gnu%2Blinux + Windows: https://support.microsoft.com/en-us/help/314960/how-to-install-or-remove-a-font-in-windows + +Android Apps + + https://developers.google.com/fonts/docs/android + https://developer.android.com/guide/topics/ui/look-and-feel/downloadable-fonts + +License +------- +Please read the full license text (OFL.txt) to understand the permissions, +restrictions and requirements for usage, redistribution, and modification. + +You can use them in your products & projects – print or digital, +commercial or otherwise. + +This isn't legal advice, please consider consulting a lawyer and see the full +license for all details. diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/Fonts/NotoSansTraditionalChinese/README.txt.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/Fonts/NotoSansTraditionalChinese/README.txt.meta new file mode 100644 index 0000000..e7ce2a7 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/Fonts/NotoSansTraditionalChinese/README.txt.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: dfb922b245e2135479a86b998c233689 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/Script/CommonHelper.cs b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/Script/CommonHelper.cs new file mode 100644 index 0000000..4facfdd --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/Script/CommonHelper.cs @@ -0,0 +1,300 @@ +// Copyright HTC Corporation All Rights Reserved. + +using System; +using UnityEngine; +using UnityEngine.InputSystem; +using UnityEngine.XR; + +namespace VIVE.OpenXR.Samples +{ + public static class CommonHelper + { + public enum ActionRefError : UInt32 + { + NONE = 0, + REFERENCE_NULL = 1, + ACTION_NULL = 2, + DISABLED = 3, + ACTIVECONTROL_NULL = 4, + NO_CONTROLS_COUNT = 5, + } + public static string Name(this ActionRefError error) + { + if (error == ActionRefError.REFERENCE_NULL) { return "Null reference"; } + if (error == ActionRefError.ACTION_NULL) { return "Null reference action"; } + if (error == ActionRefError.DISABLED) { return "Reference action disabled"; } + if (error == ActionRefError.ACTIVECONTROL_NULL) { return "No active control of the reference action"; } + if (error == ActionRefError.NO_CONTROLS_COUNT) { return "No action control count"; } + + return ""; + } + private static ActionRefError VALIDATE(InputActionReference actionReference) + { + if (actionReference == null) { return ActionRefError.REFERENCE_NULL; } + if (actionReference.action == null) { return ActionRefError.ACTION_NULL; } + if (!actionReference.action.enabled) { return ActionRefError.DISABLED; } + if (actionReference.action.activeControl == null) { return ActionRefError.ACTIVECONTROL_NULL; } + else if (actionReference.action.controls.Count <= 0) { return ActionRefError.NO_CONTROLS_COUNT; } + + return ActionRefError.NONE; + } + public static bool GetButton(InputActionReference actionReference, out bool value, out string msg) + { + var result = VALIDATE(actionReference); + + value = false; + msg = result.Name(); + + if (result == ActionRefError.NONE) + { + if (actionReference.action.activeControl.valueType == typeof(float)) + value = actionReference.action.ReadValue() > 0; + if (actionReference.action.activeControl.valueType == typeof(bool)) + value = actionReference.action.ReadValue(); + + return true; + } + else if (result == ActionRefError.ACTIVECONTROL_NULL) + { + value = false; + return true; + } + + return false; + } + public static bool GetAnalog(InputActionReference actionReference, out float value, out string msg) + { + var result = VALIDATE(actionReference); + + value = 0; + msg = result.Name(); + + if (result == ActionRefError.NONE) + { + if (actionReference.action.activeControl.valueType == typeof(float)) + value = actionReference.action.ReadValue(); + + return true; + } + else if (result == ActionRefError.ACTIVECONTROL_NULL) + { + value = 0; + return true; + } + + return false; + } + public static bool GetInteger(InputActionReference actionReference, out InputTrackingState value, out string msg) + { + var result = VALIDATE(actionReference); + + value = 0; + msg = result.Name(); + + if (result == ActionRefError.NONE) + { + if (actionReference.action.activeControl.valueType == typeof(int)) + { + int diff = 0; + int i = actionReference.action.ReadValue(); + + diff = i & ((int)InputTrackingState.Position); + if (diff != 0) { value |= InputTrackingState.Position; } + + diff = i & ((int)InputTrackingState.Rotation); + if (diff != 0) { value |= InputTrackingState.Rotation; } + + diff = i & ((int)InputTrackingState.Velocity); + if (diff != 0) { value |= InputTrackingState.Velocity; } + + diff = i & ((int)InputTrackingState.AngularVelocity); + if (diff != 0) { value |= InputTrackingState.AngularVelocity; } + + diff = i & ((int)InputTrackingState.Acceleration); + if (diff != 0) { value |= InputTrackingState.Acceleration; } + + diff = i & ((int)InputTrackingState.AngularAcceleration); + if (diff != 0) { value |= InputTrackingState.AngularAcceleration; } + } + + return true; + } + + return false; + } + public static bool GetVector2(InputActionReference actionReference, out Vector2 value, out string msg) + { + var result = VALIDATE(actionReference); + + value = Vector2.zero; + msg = result.Name(); + + if (result == ActionRefError.NONE) + { + if (actionReference.action.activeControl.valueType == typeof(Vector2)) + value = actionReference.action.ReadValue(); + + return true; + } + + return false; + } + public static bool GetVector3(InputActionReference actionReference, out Vector3 value, out string msg) + { + var result = VALIDATE(actionReference); + + value = Vector3.zero; + msg = result.Name(); + + if (result == ActionRefError.NONE) + { + if (actionReference.action.activeControl.valueType == typeof(Vector3)) + value = actionReference.action.ReadValue(); + + return true; + } + + return false; + } + public static bool GetQuaternion(InputActionReference actionReference, out Quaternion value, out string msg) + { + var result = VALIDATE(actionReference); + + value = Quaternion.identity; + msg = result.Name(); + + if (result == ActionRefError.NONE) + { + if (actionReference.action.activeControl.valueType == typeof(Quaternion)) + value = actionReference.action.ReadValue(); + + Vector3 direction = value * Vector3.forward; + return true; + } + + return false; + } + public static bool GetPoseIsTracked(InputActionReference actionReference, out bool value, out string msg) + { + var result = VALIDATE(actionReference); + + value = false; + msg = result.Name(); + + if (result == ActionRefError.NONE) + { +#if USE_INPUT_SYSTEM_POSE_CONTROL // Scripting Define Symbol added by using OpenXR Plugin 1.6.0. + if (actionReference.action.activeControl.valueType == typeof(UnityEngine.InputSystem.XR.PoseState)) +#else + if (actionReference.action.activeControl.valueType == typeof(UnityEngine.XR.OpenXR.Input.Pose)) +#endif + { +#if USE_INPUT_SYSTEM_POSE_CONTROL // Scripting Define Symbol added by using OpenXR Plugin 1.6.0. + value = actionReference.action.ReadValue().isTracked; +#else + value = actionReference.action.ReadValue().isTracked; +#endif + return true; + } + } + + return false; + } + public static bool GetPoseTrackingState(InputActionReference actionReference, out InputTrackingState value, out string msg) + { + var result = VALIDATE(actionReference); + + value = InputTrackingState.None; + msg = result.Name(); + + if (result == ActionRefError.NONE) + { +#if USE_INPUT_SYSTEM_POSE_CONTROL // Scripting Define Symbol added by using OpenXR Plugin 1.6.0. + if (actionReference.action.activeControl.valueType == typeof(UnityEngine.InputSystem.XR.PoseState)) +#else + if (actionReference.action.activeControl.valueType == typeof(UnityEngine.XR.OpenXR.Input.Pose)) +#endif + { +#if USE_INPUT_SYSTEM_POSE_CONTROL // Scripting Define Symbol added by using OpenXR Plugin 1.6.0. + value = actionReference.action.ReadValue().trackingState; +#else + value = actionReference.action.ReadValue().trackingState; +#endif + return true; + } + } + + return false; + } + public static bool GetPosePosition(InputActionReference actionReference, out Vector3 value, out string msg) + { + var result = VALIDATE(actionReference); + + value = Vector3.zero; + msg = result.Name(); + + if (result == ActionRefError.NONE) + { +#if USE_INPUT_SYSTEM_POSE_CONTROL // Scripting Define Symbol added by using OpenXR Plugin 1.6.0. + if (actionReference.action.activeControl.valueType == typeof(UnityEngine.InputSystem.XR.PoseState)) +#else + if (actionReference.action.activeControl.valueType == typeof(UnityEngine.XR.OpenXR.Input.Pose)) +#endif + { +#if USE_INPUT_SYSTEM_POSE_CONTROL // Scripting Define Symbol added by using OpenXR Plugin 1.6.0. + value = actionReference.action.ReadValue().position; +#else + value = actionReference.action.ReadValue().position; +#endif + return true; + } + } + + return false; + } + public static bool GetPoseRotation(InputActionReference actionReference, out Quaternion value, out string msg) + { + var result = VALIDATE(actionReference); + + value = Quaternion.identity; + msg = result.Name(); + + if (result == ActionRefError.NONE) + { +#if USE_INPUT_SYSTEM_POSE_CONTROL // Scripting Define Symbol added by using OpenXR Plugin 1.6.0. + if (actionReference.action.activeControl.valueType == typeof(UnityEngine.InputSystem.XR.PoseState)) +#else + if (actionReference.action.activeControl.valueType == typeof(UnityEngine.XR.OpenXR.Input.Pose)) +#endif + { +#if USE_INPUT_SYSTEM_POSE_CONTROL // Scripting Define Symbol added by using OpenXR Plugin 1.6.0. + value = actionReference.action.ReadValue().rotation; +#else + value = actionReference.action.ReadValue().rotation; +#endif + return true; + } + } + + return false; + } + public static bool PerformHaptic(InputActionReference actionReference, out string msg) + { + var result = VALIDATE(actionReference); + + msg = result.Name(); + + if (result == ActionRefError.NONE) + { + float amplitude = 1.0f; + float duration = 0.1f; + var command = UnityEngine.InputSystem.XR.Haptics.SendHapticImpulseCommand.Create(0, amplitude, duration); + actionReference.action.activeControl.device.ExecuteCommand(ref command); + + return true; + } + + return false; + } + } +} \ No newline at end of file diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/Script/CommonHelper.cs.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/Script/CommonHelper.cs.meta new file mode 100644 index 0000000..137330f --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/Script/CommonHelper.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 26218dbf1f127ea49912ae4f395e4578 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/Script/CommonPose.cs b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/Script/CommonPose.cs new file mode 100644 index 0000000..ee967ab --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/Script/CommonPose.cs @@ -0,0 +1,127 @@ +// Copyright HTC Corporation All Rights Reserved. + +using System.Text; +using UnityEngine; +using UnityEngine.InputSystem; +using UnityEngine.XR; + +namespace VIVE.OpenXR.Samples +{ + public class CommonPose : MonoBehaviour + { + #region LOG + const string LOG_TAG = "VIVE.OpenXR.Samples.CommonPose"; + StringBuilder m_sb = null; + StringBuilder sb { + get { + if (m_sb == null) { m_sb = new StringBuilder(); } + return m_sb; + } + } + void DEBUG(StringBuilder msg) { Debug.LogFormat("{0} {1} {2}", LOG_TAG, PoseName, msg); } + void INTERVAL(StringBuilder msg) { if (printIntervalLog) { DEBUG(msg); } } + int printFrame = 0; + bool printIntervalLog = false; + void ERROR(StringBuilder msg) + { + if (!Application.isEditor) + Debug.LogErrorFormat("{0} {1} {2}", LOG_TAG, PoseName, msg); + } + #endregion + + #region Inspector + public string PoseName = ""; + public GameObject VisibleElements = null; + + [SerializeField] + private InputActionReference m_DevicePose = null; + public InputActionReference DevicePose { get { return m_DevicePose; } set { m_DevicePose = value; } } + #endregion + + private void Update() + { + if (m_DevicePose == null) { return; } + + printFrame++; + printFrame %= 300; + printIntervalLog = (printFrame == 0); + + if (CommonHelper.GetPoseIsTracked(m_DevicePose, out bool isTracked, out string msg)) + { + if (isTracked) + { + if (VisibleElements != null && !VisibleElements.activeSelf) { VisibleElements.SetActive(true); } + + if (CommonHelper.GetPoseTrackingState(m_DevicePose, out InputTrackingState trackingState, out msg)) + { + if (trackingState.HasFlag(InputTrackingState.Rotation)) + { + if (CommonHelper.GetPoseRotation(m_DevicePose, out Quaternion rotation, out msg)) + { + transform.localRotation = rotation; + } + else + { + if (printIntervalLog) + { + sb.Clear().Append("Update() rotation: ").Append(msg); + ERROR(sb); + } + } + } + + if (trackingState.HasFlag(InputTrackingState.Position)) + { + if (CommonHelper.GetPosePosition(m_DevicePose, out Vector3 position, out msg)) + { + transform.localPosition = position; + } + else + { + if (printIntervalLog) + { + sb.Clear().Append("Update() position: ").Append(msg); + ERROR(sb); + } + } + } + + if (printIntervalLog) + { + sb.Clear().Append("Update() trackingState: ").Append(trackingState); + ERROR(sb); + } + } + else + { + if (printIntervalLog) + { + sb.Clear().Append("Update() trackingState: ").Append(msg); + ERROR(sb); + } + } + } + else + { + if (VisibleElements != null && VisibleElements.activeSelf) { VisibleElements.SetActive(false); } + + if (printIntervalLog) + { + sb.Clear().Append("Update() isTracked: ").Append(isTracked); + ERROR(sb); + } + } + } + else + { + if (VisibleElements != null && VisibleElements.activeSelf) { VisibleElements.SetActive(false); } + + if (printIntervalLog) + { + sb.Clear().Append("Update() isTracked: ").Append(msg); + ERROR(sb); + } + } + } + } +} \ No newline at end of file diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/Script/CommonPose.cs.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/Script/CommonPose.cs.meta new file mode 100644 index 0000000..aa44731 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/Script/CommonPose.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d767f31532f3830418d2a90282fb22c1 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/Script/Focus3ModelAction.cs b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/Script/Focus3ModelAction.cs new file mode 100644 index 0000000..139887b --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/Script/Focus3ModelAction.cs @@ -0,0 +1,98 @@ +// Copyright HTC Corporation All Rights Reserved. + +using UnityEngine; +using UnityEngine.InputSystem; + +namespace VIVE.OpenXR.Samples +{ + public class Focus3ModelAction : MonoBehaviour + { + #region Inspector + public bool isLeft = false; + public InputActionAsset actionAsset = null; + public InputActionReference trigger = null; + public InputActionReference grip = null; + public InputActionReference thumbstick = null; + public InputActionReference primaryClick = null; + public InputActionReference secondaryClick = null; + #endregion + + private GameObject m_TriggerButton = null; + private GameObject m_GripButton = null; + private Vector3 gripButtonPos = Vector3.zero; + private GameObject m_ThumbstickButton = null; + private GameObject m_PrimaryButton = null; + private Vector3 primaryButtonPos = Vector3.zero; + private GameObject m_SecondaryButton = null; + private Vector3 secondaryButtonPos = Vector3.zero; + + private void OnEnable() + { + if (actionAsset != null && !actionAsset.enabled) { actionAsset.Enable(); } + } + + void Start() + { + m_TriggerButton = transform.GetChild(0).gameObject; + + m_GripButton = transform.GetChild(1).gameObject; + if (m_GripButton != null) { gripButtonPos = m_GripButton.transform.localPosition; } + + m_ThumbstickButton = transform.GetChild(2).gameObject; + + m_PrimaryButton = transform.GetChild(3).gameObject; + if (m_PrimaryButton != null) { primaryButtonPos = m_PrimaryButton.transform.localPosition; } + + m_SecondaryButton = transform.GetChild(4).gameObject; + if (m_SecondaryButton != null) { secondaryButtonPos = m_SecondaryButton.transform.localPosition; } + } + + void Update() + { + OnTrigger(); + OnGrip(); + OnThumbstick(); + OnPrimaryClick(); + OnSecondaryClick(); + } + + void OnTrigger() + { + if (CommonHelper.GetAnalog(trigger, out float value, out string msg)) + { + m_TriggerButton.transform.localRotation = Quaternion.Euler(value * -15f, 0, 0); + } + } + void OnGrip() + { + if (CommonHelper.GetAnalog(grip, out float value, out string msg)) + { + if (isLeft) + m_GripButton.transform.localPosition = gripButtonPos + Vector3.right * value * 0.002f; + else + m_GripButton.transform.localPosition = gripButtonPos + Vector3.left * value * 0.002f; + } + } + void OnThumbstick() + { + if (CommonHelper.GetVector2(thumbstick, out Vector2 value, out string msg)) + { + m_ThumbstickButton.transform.localRotation = Quaternion.Euler(value.y * -25f, 0, value.x * 25f); + } + } + void OnPrimaryClick() + { + if (CommonHelper.GetAnalog(primaryClick, out float value, out string msg)) + { + m_PrimaryButton.transform.localPosition = primaryButtonPos + Vector3.down * (value > 0.5f ? 0.00125f : 0); + } + } + void OnSecondaryClick() + { + if (CommonHelper.GetAnalog(secondaryClick, out float value, out string msg)) + { + m_SecondaryButton.transform.localPosition = secondaryButtonPos + Vector3.down * (value > 0.5f ? 0.00125f : 0); + } + } + } +} \ No newline at end of file diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/Script/Focus3ModelAction.cs.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/Script/Focus3ModelAction.cs.meta new file mode 100644 index 0000000..8305083 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/Script/Focus3ModelAction.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: bbf18798cdf9d414ebcb9eced9f86a96 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/Script/HideObjectWhenUntracked.cs b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/Script/HideObjectWhenUntracked.cs index 5a94790..c769031 100644 --- a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/Script/HideObjectWhenUntracked.cs +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/Script/HideObjectWhenUntracked.cs @@ -9,19 +9,28 @@ namespace VIVE.OpenXR.Samples { public class HideObjectWhenUntracked : MonoBehaviour { - const string LOG_TAG = "VIVE.OpenXR.Samples.HideObjectWhenUntracked "; + #region Log + const string LOG_TAG = "VIVE.OpenXR.Samples.HideObjectWhenUntracked"; StringBuilder m_sb = null; - StringBuilder sb { - get { + StringBuilder sb + { + get + { if (m_sb == null) { m_sb = new StringBuilder(); } return m_sb; } } - void DEBUG(StringBuilder msg) { Debug.Log(msg); } + void DEBUG(StringBuilder msg) { Debug.LogFormat("{0} {1}", LOG_TAG, msg); } + int printFrame = 0; + protected bool printIntervalLog = false; + #endregion + #region Inspector public bool IsLeft = false; - private string hand { - get { + private string hand + { + get + { return (IsLeft ? " Left " : " Right "); } } @@ -37,13 +46,8 @@ namespace VIVE.OpenXR.Samples [SerializeField] private GameObject m_ObjectToHide = null; public GameObject ObjectToHide { get { return m_ObjectToHide; } set { m_ObjectToHide = value; } } + #endregion - int printFrame = 0; - protected bool printIntervalLog = false; - - bool isActive = false; - int trackingState = 0; - bool positionTracked = false, rotationTracked = false; private void Update() { printFrame++; @@ -53,6 +57,10 @@ namespace VIVE.OpenXR.Samples if (m_ObjectToHide == null) { return; } string errMsg = ""; + bool isActive = false; + int trackingState = 0; + bool positionTracked = false, rotationTracked = false; + if (OpenXRHelper.VALIDATE(m_IsActive, out errMsg)) { if (m_IsActive.action.activeControl.valueType == typeof(float)) @@ -62,10 +70,13 @@ namespace VIVE.OpenXR.Samples } else { - isActive = false; if (printIntervalLog) { - sb.Clear().Append(LOG_TAG).Append(hand).Append("Update() ").Append(m_IsActive.action.name).Append(", ").Append(errMsg); + sb.Clear().Append("Update() ") + .Append(hand).Append(", ") + .Append(m_ObjectToHide != null ? m_ObjectToHide.name : "").Append(", ") + .Append(m_IsActive.action.name).Append(", ") + .Append(errMsg); DEBUG(sb); } } @@ -75,17 +86,24 @@ namespace VIVE.OpenXR.Samples } else { - trackingState = 0; if (printIntervalLog) { - sb.Clear().Append(LOG_TAG).Append(hand).Append("Update() ").Append(m_TrackingState.action.name).Append(", ").Append(errMsg); + sb.Clear().Append("Update() ") + .Append(hand).Append(", ") + .Append(m_ObjectToHide != null ? m_ObjectToHide.name : "").Append(", ") + .Append(m_TrackingState.action.name).Append(", ") + .Append(errMsg); DEBUG(sb); } } if (printIntervalLog) { - sb.Clear().Append(LOG_TAG).Append(hand).Append("Update() isActive: ").Append(isActive).Append(", trackingState: ").Append(trackingState); + sb.Clear().Append("Update() ") + .Append(hand).Append(", ") + .Append(m_ObjectToHide != null ? m_ObjectToHide.name : "").Append(", ") + .Append("isActive: ").Append(isActive).Append(", ") + .Append("trackingState: ").Append(trackingState); DEBUG(sb); } diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/Script/HideObjectsWhenUntracked.cs b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/Script/HideObjectsWhenUntracked.cs index 2775a29..8a649d4 100644 --- a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/Script/HideObjectsWhenUntracked.cs +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/Script/HideObjectsWhenUntracked.cs @@ -11,19 +11,25 @@ namespace VIVE.OpenXR.Samples { public class HideObjectsWhenUntracked : MonoBehaviour { - const string LOG_TAG = "VIVE.OpenXR.Samples.HideObjectsWhenUntracked "; + #region Log + const string LOG_TAG = "VIVE.OpenXR.Samples.HideObjectsWhenUntracked"; StringBuilder m_sb = null; - StringBuilder sb { - get { + StringBuilder sb + { + get + { if (m_sb == null) { m_sb = new StringBuilder(); } return m_sb; } } - void DEBUG(StringBuilder msg) { Debug.Log(msg); } + void DEBUG(StringBuilder msg) { Debug.LogFormat("{0} {1}", LOG_TAG, msg); } + int printFrame = 0; + protected bool printIntervalLog = false; + #endregion [Serializable] public class ObjectInfo - { + { public uint DeviceIndex = 0; public InputActionReference IsActive; public InputActionReference TrackingState; @@ -34,9 +40,6 @@ namespace VIVE.OpenXR.Samples public List m_ObjectInfos = new List(); public List ObjectInfos { get { return m_ObjectInfos; } set { m_ObjectInfos = value; } } - int printFrame = 0; - protected bool printIntervalLog = false; - private void Update() { printFrame++; @@ -65,8 +68,11 @@ namespace VIVE.OpenXR.Samples { if (printIntervalLog) { - sb.Clear().Append(LOG_TAG).Append(m_ObjectInfos[i].DeviceIndex) - .Append(" Update() ").Append(m_ObjectInfos[i].IsActive.action.name).Append(", ").Append(errMsg); + sb.Clear().Append("Update() ") + .Append(m_ObjectInfos[i].DeviceIndex).Append(", ") + .Append(m_ObjectInfos[i].ObjectToHide != null ? m_ObjectInfos[i].ObjectToHide.name : "").Append(", ") + .Append(m_ObjectInfos[i].IsActive.action.name).Append(", ") + .Append(errMsg); DEBUG(sb); } } @@ -80,16 +86,22 @@ namespace VIVE.OpenXR.Samples { if (printIntervalLog) { - sb.Clear().Append(LOG_TAG).Append(m_ObjectInfos[i].DeviceIndex) - .Append(" Update() ").Append(m_ObjectInfos[i].TrackingState.action.name).Append(", ").Append(errMsg); + sb.Clear().Append("Update() ") + .Append(m_ObjectInfos[i].DeviceIndex).Append(", ") + .Append(m_ObjectInfos[i].ObjectToHide != null ? m_ObjectInfos[i].ObjectToHide.name : "").Append(", ") + .Append(m_ObjectInfos[i].TrackingState.action.name).Append(", ") + .Append(errMsg); DEBUG(sb); } } if (printIntervalLog) { - sb.Clear().Append(LOG_TAG).Append(m_ObjectInfos[i].DeviceIndex) - .Append("Update() isActive: ").Append(isActive).Append(", trackingState: ").Append(trackingState); + sb.Clear().Append("Update() ") + .Append(m_ObjectInfos[i].DeviceIndex).Append(", ") + .Append(m_ObjectInfos[i].ObjectToHide != null ? m_ObjectInfos[i].ObjectToHide.name : "").Append(", ") + .Append("isActive: ").Append(isActive).Append(", ") + .Append("trackingState: ").Append(trackingState); DEBUG(sb); } diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/VRSPrefabs/Controller/Controller_Reaction.cs b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/VRSPrefabs/Controller/Controller_Reaction.cs index 4f095bd..b8b0fe0 100644 --- a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/VRSPrefabs/Controller/Controller_Reaction.cs +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/VRSPrefabs/Controller/Controller_Reaction.cs @@ -1,7 +1,9 @@ -using System.Collections; -using System.Collections.Generic; +// Copyright HTC Corporation All Rights Reserved. + using UnityEngine; using UnityEngine.InputSystem; + +[System.Obsolete("This script is deprecated. Please use Focus3ModelAction instead.")] public class Controller_Reaction : MonoBehaviour { public string LorR = "L"; diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/VRSPrefabs/Controller/Focus3AimL.prefab b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/VRSPrefabs/Controller/Focus3AimL.prefab new file mode 100644 index 0000000..b36235f --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/VRSPrefabs/Controller/Focus3AimL.prefab @@ -0,0 +1,809 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &1362118411382621196 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7620760859447201340} + - component: {fileID: 397305422008183763} + - component: {fileID: 3570814817491604299} + m_Layer: 0 + m_Name: __CM__Thumbstick + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7620760859447201340 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1362118411382621196} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0.00059, y: -0.021856, z: 0.033832} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1846845553162964630} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &397305422008183763 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1362118411382621196} + m_Mesh: {fileID: 6699701932830050619, guid: 69136eafdd9edc340af023c0a0e3e31f, type: 3} +--- !u!23 &3570814817491604299 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1362118411382621196} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 4d05692348e202a46ab4f273572e77b3, 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!1 &1363043202960561196 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1846845553162964630} + - component: {fileID: 425680634163075597} + m_Layer: 0 + m_Name: Focus3AimL + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1846845553162964630 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1363043202960561196} + m_LocalRotation: {x: 0, y: 1, z: 0, w: 0} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 6955983755938899120} + - {fileID: 6064036895781211521} + - {fileID: 7620760859447201340} + - {fileID: 3639168988464743421} + - {fileID: 2627123516683206159} + - {fileID: 6428794570386715633} + - {fileID: 2281541083886668328} + - {fileID: 1602047084299584383} + - {fileID: 2480047339836651949} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0} +--- !u!114 &425680634163075597 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1363043202960561196} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: bbf18798cdf9d414ebcb9eced9f86a96, type: 3} + m_Name: + m_EditorClassIdentifier: + isLeft: 1 + actionAsset: {fileID: -944628639613478452, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + trigger: {fileID: 2526168894431210536, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + grip: {fileID: -1289947363739713011, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + thumbstick: {fileID: 7596212294181904713, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + primaryClick: {fileID: 5113088590926889233, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + secondaryClick: {fileID: -631344258065148156, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} +--- !u!1 &2225146993692396130 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6955983755938899120} + - component: {fileID: 1108723530934473635} + - component: {fileID: 1805895983918100617} + m_Layer: 0 + m_Name: __CM__TriggerKey + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6955983755938899120 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2225146993692396130} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.0016109999, y: -0.036925998, z: 0.012113} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1846845553162964630} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &1108723530934473635 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2225146993692396130} + m_Mesh: {fileID: -2870439426993565530, guid: 69136eafdd9edc340af023c0a0e3e31f, type: 3} +--- !u!23 &1805895983918100617 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2225146993692396130} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 4d05692348e202a46ab4f273572e77b3, 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!1 &2442401715662829761 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2627123516683206159} + - component: {fileID: 733589539306074072} + - component: {fileID: 6004902860171069609} + m_Layer: 0 + m_Name: __CM__ButtonY + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2627123516683206159 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2442401715662829761} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.020758, y: -0.02237, z: 0.038489997} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1846845553162964630} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &733589539306074072 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2442401715662829761} + m_Mesh: {fileID: -3389035218075753420, guid: 69136eafdd9edc340af023c0a0e3e31f, type: 3} +--- !u!23 &6004902860171069609 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2442401715662829761} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 4d05692348e202a46ab4f273572e77b3, 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!1 &3489529599363878107 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6428794570386715633} + - component: {fileID: 486301409415237917} + - component: {fileID: 8764961351682654382} + m_Layer: 0 + m_Name: __CM__AppButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6428794570386715633 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3489529599363878107} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0.00185, y: -0.021932999, z: 0.050890002} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1846845553162964630} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &486301409415237917 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3489529599363878107} + m_Mesh: {fileID: -7724262373863937146, guid: 69136eafdd9edc340af023c0a0e3e31f, type: 3} +--- !u!23 &8764961351682654382 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3489529599363878107} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 4d05692348e202a46ab4f273572e77b3, 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!1 &4106297785453700852 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2480047339836651949} + - component: {fileID: 782670327990044658} + - component: {fileID: 373479601357654103} + m_Layer: 0 + m_Name: __CM__Emitter + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2480047339836651949 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4106297785453700852} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.01, y: -0.026537735, z: 0.0057997853} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1846845553162964630} + m_RootOrder: 8 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &782670327990044658 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4106297785453700852} + m_Mesh: {fileID: -4521666590143857035, guid: 69136eafdd9edc340af023c0a0e3e31f, type: 3} +--- !u!23 &373479601357654103 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4106297785453700852} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 4d05692348e202a46ab4f273572e77b3, 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!1 &5325550988971686617 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2281541083886668328} + - component: {fileID: 6363565785364456511} + - component: {fileID: 3480005035831149108} + m_Layer: 0 + m_Name: __CM__Battery + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2281541083886668328 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5325550988971686617} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.031353053, y: -0.020905372, z: 0.025925392} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1846845553162964630} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &6363565785364456511 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5325550988971686617} + m_Mesh: {fileID: -3454782138029922092, guid: 69136eafdd9edc340af023c0a0e3e31f, type: 3} +--- !u!23 &3480005035831149108 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5325550988971686617} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: b1b9921a3e91d704f8dd39cd74c1cbc4, 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!1 &5503154473939504838 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1602047084299584383} + - component: {fileID: 2525414136946662829} + - component: {fileID: 7962788650138194500} + m_Layer: 0 + m_Name: __CM__Body + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1602047084299584383 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5503154473939504838} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.006947, y: -0.053136, z: 0.074193} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1846845553162964630} + m_RootOrder: 7 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &2525414136946662829 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5503154473939504838} + m_Mesh: {fileID: -5532471787532314371, guid: 69136eafdd9edc340af023c0a0e3e31f, type: 3} +--- !u!23 &7962788650138194500 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5503154473939504838} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 4d05692348e202a46ab4f273572e77b3, 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!1 &7169213095299438842 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3639168988464743421} + - component: {fileID: 1194145234174028477} + - component: {fileID: 7385798877202942274} + m_Layer: 0 + m_Name: __CM__ButtonX + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3639168988464743421 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7169213095299438842} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.013948999, y: -0.022376, z: 0.049917996} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1846845553162964630} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &1194145234174028477 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7169213095299438842} + m_Mesh: {fileID: 1688988785635390117, guid: 69136eafdd9edc340af023c0a0e3e31f, type: 3} +--- !u!23 &7385798877202942274 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7169213095299438842} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 4d05692348e202a46ab4f273572e77b3, 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!1 &7426952056910403168 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6064036895781211521} + - component: {fileID: 361676306762468442} + - component: {fileID: 3771558006421876136} + m_Layer: 0 + m_Name: __CM__Grip + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6064036895781211521 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7426952056910403168} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.01429, y: -0.042602, z: 0.071612} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1846845553162964630} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &361676306762468442 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7426952056910403168} + m_Mesh: {fileID: 4793660613219112997, guid: 69136eafdd9edc340af023c0a0e3e31f, type: 3} +--- !u!23 &3771558006421876136 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7426952056910403168} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 4d05692348e202a46ab4f273572e77b3, 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} diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/VRSPrefabs/Controller/Focus3AimL.prefab.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/VRSPrefabs/Controller/Focus3AimL.prefab.meta new file mode 100644 index 0000000..6e51245 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/VRSPrefabs/Controller/Focus3AimL.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: a052bc15e89de524c80c65c7dfb1de66 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/VRSPrefabs/Controller/Focus3AimR.prefab b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/VRSPrefabs/Controller/Focus3AimR.prefab new file mode 100644 index 0000000..fc00972 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/VRSPrefabs/Controller/Focus3AimR.prefab @@ -0,0 +1,809 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &305594621420577414 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8814777613978127444} + - component: {fileID: 1566696300067175239} + - component: {fileID: 275611293776697453} + m_Layer: 0 + m_Name: __CM__TriggerKey + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8814777613978127444 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 305594621420577414} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0.00161084, y: -0.036926173, z: 0.012112972} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 251550567255680626} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &1566696300067175239 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 305594621420577414} + m_Mesh: {fileID: -2870439426993565530, guid: 03544ef23cfc6b249a6c6e4f461f774c, type: 3} +--- !u!23 &275611293776697453 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 305594621420577414} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 4d05692348e202a46ab4f273572e77b3, 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!1 &591800334953938120 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 251550567255680626} + - component: {fileID: 8449616562934790998} + m_Layer: 0 + m_Name: Focus3AimR + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &251550567255680626 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 591800334953938120} + m_LocalRotation: {x: 0, y: 1, z: 0, w: 0} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 8814777613978127444} + - {fileID: 5691202731822130533} + - {fileID: 8295241796168345304} + - {fileID: 4428694667055999525} + - {fileID: 1226568620760064572} + - {fileID: 4901408063943231850} + - {fileID: 393315451420877516} + - {fileID: 929820164704955291} + - {fileID: 4086482560342217033} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0} +--- !u!114 &8449616562934790998 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 591800334953938120} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: bbf18798cdf9d414ebcb9eced9f86a96, type: 3} + m_Name: + m_EditorClassIdentifier: + isLeft: 0 + actionAsset: {fileID: -944628639613478452, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + trigger: {fileID: -5684558904543120851, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + grip: {fileID: -5194266436686895582, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + thumbstick: {fileID: 3396702884570900202, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + primaryClick: {fileID: 11711766586467970, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + secondaryClick: {fileID: -1644001223835636349, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} +--- !u!1 &593288420602703080 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8295241796168345304} + - component: {fileID: 2260662957609911095} + - component: {fileID: 3121815872395721647} + m_Layer: 0 + m_Name: __CM__Thumbstick + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8295241796168345304 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 593288420602703080} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.00059, y: -0.021856, z: 0.033832} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 251550567255680626} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &2260662957609911095 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 593288420602703080} + m_Mesh: {fileID: 6699701932830050619, guid: 03544ef23cfc6b249a6c6e4f461f774c, type: 3} +--- !u!23 &3121815872395721647 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 593288420602703080} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 4d05692348e202a46ab4f273572e77b3, 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!1 &2459105871115554320 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4086482560342217033} + - component: {fileID: 1153032910137110294} + - component: {fileID: 2301940161071308979} + m_Layer: 0 + m_Name: __CM__Emitter + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4086482560342217033 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2459105871115554320} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0.01, y: -0.026537735, z: 0.0057997853} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 251550567255680626} + m_RootOrder: 8 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &1153032910137110294 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2459105871115554320} + m_Mesh: {fileID: -4521666590143857035, guid: 03544ef23cfc6b249a6c6e4f461f774c, type: 3} +--- !u!23 &2301940161071308979 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2459105871115554320} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 4d05692348e202a46ab4f273572e77b3, 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!1 &2755490092119674391 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4901408063943231850} + - component: {fileID: 1653215487655501889} + - component: {fileID: 5671351169048988145} + m_Layer: 0 + m_Name: __CM__HomeButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4901408063943231850 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2755490092119674391} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.00185, y: -0.021932999, z: 0.050890002} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 251550567255680626} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &1653215487655501889 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2755490092119674391} + m_Mesh: {fileID: 6874284691703473906, guid: 03544ef23cfc6b249a6c6e4f461f774c, type: 3} +--- !u!23 &5671351169048988145 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2755490092119674391} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 4d05692348e202a46ab4f273572e77b3, 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!1 &5083371746558774354 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4428694667055999525} + - component: {fileID: 7721435771603728013} + - component: {fileID: 378408418294411932} + m_Layer: 0 + m_Name: __CM__ButtonA + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4428694667055999525 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5083371746558774354} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0.013948999, y: -0.022376, z: 0.049917996} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 251550567255680626} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &7721435771603728013 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5083371746558774354} + m_Mesh: {fileID: 9104446674093834918, guid: 03544ef23cfc6b249a6c6e4f461f774c, type: 3} +--- !u!23 &378408418294411932 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5083371746558774354} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 4d05692348e202a46ab4f273572e77b3, 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!1 &5882343215127454743 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1226568620760064572} + - component: {fileID: 5599848370685244514} + - component: {fileID: 4372203678169923720} + m_Layer: 0 + m_Name: __CM__ButtonB + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1226568620760064572 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5882343215127454743} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0.020758, y: -0.02237, z: 0.038489997} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 251550567255680626} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &5599848370685244514 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5882343215127454743} + m_Mesh: {fileID: -4190156458390666982, guid: 03544ef23cfc6b249a6c6e4f461f774c, type: 3} +--- !u!23 &4372203678169923720 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5882343215127454743} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 4d05692348e202a46ab4f273572e77b3, 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!1 &5995654215819088445 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 393315451420877516} + - component: {fileID: 4797198416799141083} + - component: {fileID: 3069073346945755856} + m_Layer: 0 + m_Name: __CM__Battery + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &393315451420877516 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5995654215819088445} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0.031353053, y: -0.020905372, z: 0.025925392} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 251550567255680626} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &4797198416799141083 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5995654215819088445} + m_Mesh: {fileID: -3454782138029922092, guid: 03544ef23cfc6b249a6c6e4f461f774c, type: 3} +--- !u!23 &3069073346945755856 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5995654215819088445} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: b1b9921a3e91d704f8dd39cd74c1cbc4, 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!1 &6234070404690830882 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 929820164704955291} + - component: {fileID: 4166090309843809609} + - component: {fileID: 8384996345154681504} + m_Layer: 0 + m_Name: __CM__Body + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &929820164704955291 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6234070404690830882} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0.006947, y: -0.053136, z: 0.074193} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 251550567255680626} + m_RootOrder: 7 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &4166090309843809609 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6234070404690830882} + m_Mesh: {fileID: -5532471787532314371, guid: 03544ef23cfc6b249a6c6e4f461f774c, type: 3} +--- !u!23 &8384996345154681504 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6234070404690830882} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 4d05692348e202a46ab4f273572e77b3, 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!1 &9064948205751058052 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5691202731822130533} + - component: {fileID: 2294603225549759678} + - component: {fileID: 3353980852044629324} + m_Layer: 0 + m_Name: __CM__Grip + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5691202731822130533 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9064948205751058052} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0.01429, y: -0.042602, z: 0.071612} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 251550567255680626} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &2294603225549759678 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9064948205751058052} + m_Mesh: {fileID: 4793660613219112997, guid: 03544ef23cfc6b249a6c6e4f461f774c, type: 3} +--- !u!23 &3353980852044629324 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9064948205751058052} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 4d05692348e202a46ab4f273572e77b3, 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} diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/VRSPrefabs/Controller/Focus3AimR.prefab.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/VRSPrefabs/Controller/Focus3AimR.prefab.meta new file mode 100644 index 0000000..7d9816f --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/VRSPrefabs/Controller/Focus3AimR.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 1567de99729c9ff47bfd5f103e26c1fc +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/VRSPrefabs/Controller/Focus3_Left.prefab b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/VRSPrefabs/Controller/Focus3_Left.prefab index e4220dc..88059ef 100644 --- a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/VRSPrefabs/Controller/Focus3_Left.prefab +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/VRSPrefabs/Controller/Focus3_Left.prefab @@ -92,7 +92,7 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 1170470780012416826} - - component: {fileID: 6801803549165888840} + - component: {fileID: 898286224179534753} m_Layer: 0 m_Name: Focus3_Left m_TagString: Untagged @@ -124,7 +124,7 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: -30, y: 180, z: 0} ---- !u!114 &6801803549165888840 +--- !u!114 &898286224179534753 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -133,16 +133,16 @@ MonoBehaviour: m_GameObject: {fileID: 1978637512304563584} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: b0ce35835b45a8143864400901492ac0, type: 3} + m_Script: {fileID: 11500000, guid: bbf18798cdf9d414ebcb9eced9f86a96, type: 3} m_Name: m_EditorClassIdentifier: - LorR: L - Asset: {fileID: -944628639613478452, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} - TriggerR: {fileID: 2526168894431210536, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} - GripR: {fileID: -1289947363739713011, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} - JoyStickR: {fileID: 7596212294181904713, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} - Button1R: {fileID: 5113088590926889233, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} - Button2R: {fileID: -631344258065148156, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + isLeft: 1 + actionAsset: {fileID: -944628639613478452, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + trigger: {fileID: 2526168894431210536, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + grip: {fileID: -1289947363739713011, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + thumbstick: {fileID: 7596212294181904713, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + primaryClick: {fileID: 5113088590926889233, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + secondaryClick: {fileID: -631344258065148156, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} --- !u!1 &1979402120393098656 GameObject: m_ObjectHideFlags: 0 diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/VRSPrefabs/Controller/Focus3_Right.prefab b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/VRSPrefabs/Controller/Focus3_Right.prefab index da40b1d..6a17c77 100644 --- a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/VRSPrefabs/Controller/Focus3_Right.prefab +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/VRSPrefabs/Controller/Focus3_Right.prefab @@ -175,7 +175,7 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 568889819745993646} - - component: {fileID: 7095453080020906758} + - component: {fileID: 8204332361121619594} m_Layer: 0 m_Name: Focus3_Right m_TagString: Untagged @@ -207,7 +207,7 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: -30, y: 180, z: 0} ---- !u!114 &7095453080020906758 +--- !u!114 &8204332361121619594 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -216,16 +216,16 @@ MonoBehaviour: m_GameObject: {fileID: 913890882870810900} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: b0ce35835b45a8143864400901492ac0, type: 3} + m_Script: {fileID: 11500000, guid: bbf18798cdf9d414ebcb9eced9f86a96, type: 3} m_Name: m_EditorClassIdentifier: - LorR: R - Asset: {fileID: -944628639613478452, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} - TriggerR: {fileID: -5684558904543120851, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} - GripR: {fileID: -5194266436686895582, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} - JoyStickR: {fileID: 3396702884570900202, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} - Button1R: {fileID: 11711766586467970, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} - Button2R: {fileID: -1644001223835636349, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + isLeft: 0 + actionAsset: {fileID: -944628639613478452, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + trigger: {fileID: -5684558904543120851, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + grip: {fileID: -5194266436686895582, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + thumbstick: {fileID: 3396702884570900202, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + primaryClick: {fileID: 11711766586467970, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + secondaryClick: {fileID: -1644001223835636349, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} --- !u!1 &2496614930090798027 GameObject: m_ObjectHideFlags: 0 diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/CompositionLayer2/Materials/Sharpening.mat b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/CompositionLayer2/Materials/Sharpening.mat new file mode 100644 index 0000000..e7b3aea --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/CompositionLayer2/Materials/Sharpening.mat @@ -0,0 +1,87 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Sharpening + m_Shader: {fileID: 10760, guid: 0000000000000000f000000000000000, type: 0} + m_ValidKeywords: [] + m_InvalidKeywords: [] + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: a2e3af03ee1f79f4c84f6ac60c7c0ef4, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _BumpScale: 1 + - _ColorMask: 15 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _Stencil: 0 + - _StencilComp: 8 + - _StencilOp: 0 + - _StencilReadMask: 255 + - _StencilWriteMask: 255 + - _UVSec: 0 + - _UseUIAlphaClip: 0 + - _ZWrite: 1 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + m_BuildTextureStacks: [] diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/CompositionLayer2/Materials/Sharpening.mat.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/CompositionLayer2/Materials/Sharpening.mat.meta new file mode 100644 index 0000000..44249d7 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/CompositionLayer2/Materials/Sharpening.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b58770bab37e36341b943116de1141b1 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/CompositionLayer2/Scenes/CompositionLayerTest_Rects.unity b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/CompositionLayer2/Scenes/CompositionLayerTest_Rects.unity new file mode 100644 index 0000000..fb312a6 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/CompositionLayer2/Scenes/CompositionLayerTest_Rects.unity @@ -0,0 +1,801 @@ +%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.18028378, g: 0.22571412, b: 0.30692285, a: 1} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 12 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 12 + m_Resolution: 2 + m_BakeResolution: 40 + m_AtlasSize: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + m_ReflectionCompression: 2 + m_MixedBakeMode: 2 + m_BakeBackend: 1 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 512 + m_PVRBounces: 2 + m_PVREnvironmentSampleCount: 256 + m_PVREnvironmentReferencePointCount: 2048 + m_PVRFilteringMode: 1 + m_PVRDenoiserTypeDirect: 1 + m_PVRDenoiserTypeIndirect: 1 + m_PVRDenoiserTypeAO: 1 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVREnvironmentMIS: 1 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightProbeSampleCountMultiplier: 4 + m_LightingDataAsset: {fileID: 0} + m_LightingSettings: {fileID: 0} +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + maxJobWorkers: 0 + preserveTilesOutsideBounds: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &13917561 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 13917562} + - component: {fileID: 13917565} + - component: {fileID: 13917564} + - component: {fileID: 13917563} + m_Layer: 0 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &13917562 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 13917561} + m_LocalRotation: {x: 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: 1442507266} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &13917563 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 13917561} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5a2a9c34df4095f47b9ca8f975175f5b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Device: 0 + m_PoseSource: 2 + m_PoseProviderComponent: {fileID: 0} + m_TrackingType: 0 + m_UpdateType: 0 + m_UseRelativeTransform: 0 +--- !u!81 &13917564 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 13917561} + m_Enabled: 1 +--- !u!20 &13917565 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 13917561} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.01 + far clip plane: 1000 + field of view: 60 + orthographic: 0 + orthographic size: 5 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!1 &561506816 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 561506820} + - component: {fileID: 561506819} + - component: {fileID: 561506818} + - component: {fileID: 561506817} + m_Layer: 0 + m_Name: Cube + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!65 &561506817 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 561506816} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &561506818 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 561506816} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &561506819 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 561506816} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &561506820 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 561506816} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -4.632, y: 2.84, z: -2.186} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &571808867 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 571808869} + - component: {fileID: 571808870} + m_Layer: 0 + m_Name: Overlay + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &571808869 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 571808867} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -6.3, y: 0.664, z: -1.424} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &571808870 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 571808867} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 221c4e845ba39fa4396461ac8c3b9e8e, type: 3} + m_Name: + m_EditorClassIdentifier: + isPreviewingCylinder: 0 + isPreviewingQuad: 0 + generatedPreview: {fileID: 0} + layerType: 1 + compositionDepth: 0 + layerShape: 0 + layerVisibility: 0 + m_QuadWidth: 3 + m_QuadHeight: 3 + m_CylinderHeight: 3 + m_CylinderArcLength: 3.6651914 + m_CylinderRadius: 3 + m_CylinderAngleOfArc: 70 + lockMode: 0 + isDynamicLayer: 0 + isExternalSurface: 0 + isCustomRects: 0 + customRects: 0 + externalSurfaceWidth: 1280 + externalSurfaceHeight: 720 + applyColorScaleBias: 0 + solidEffect: 0 + colorScale: {r: 1, g: 1, b: 1, a: 1} + colorBias: {r: 0, g: 0, b: 0, a: 0} + isProtectedSurface: 0 + texture: {fileID: 2800000, guid: ec7c645d93308c04d8840982af12101e, type: 3} + textureRight: {fileID: 2800000, guid: 2fd6421f253b4ef1a19526541f9ffc0c, type: 3} + renderPriority: 0 + trackingOrigin: {fileID: 1272116173} + generatedUnderlayMesh: {fileID: 0} + generatedFallbackMesh: {fileID: 0} +--- !u!1 &590297843 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 590297845} + - component: {fileID: 590297844} + m_Layer: 0 + m_Name: Overlay3 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &590297844 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 590297843} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 221c4e845ba39fa4396461ac8c3b9e8e, type: 3} + m_Name: + m_EditorClassIdentifier: + isPreviewingCylinder: 0 + isPreviewingQuad: 0 + generatedPreview: {fileID: 0} + layerType: 1 + compositionDepth: 0 + layerShape: 0 + layerVisibility: 0 + m_QuadWidth: 5 + m_QuadHeight: 2.5 + m_CylinderHeight: 1 + m_CylinderArcLength: 1 + m_CylinderRadius: 1 + m_CylinderAngleOfArc: 180 + lockMode: 0 + isDynamicLayer: 0 + isExternalSurface: 0 + isCustomRects: 0 + customRects: 0 + externalSurfaceWidth: 1280 + externalSurfaceHeight: 720 + applyColorScaleBias: 0 + solidEffect: 0 + colorScale: {r: 1, g: 1, b: 1, a: 1} + colorBias: {r: 0, g: 0, b: 0, a: 0} + isProtectedSurface: 0 + texture: {fileID: 2800000, guid: 5a77defd3f00c104bbf89dca35a81294, type: 3} + textureRight: {fileID: 0} + renderPriority: 0 + trackingOrigin: {fileID: 1272116173} + generatedUnderlayMesh: {fileID: 0} + generatedFallbackMesh: {fileID: 0} +--- !u!4 &590297845 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 590297843} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 5.61, y: -0.54, z: -4.07} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &808362803 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 808362805} + - component: {fileID: 808362804} + m_Layer: 0 + m_Name: Overlay4 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &808362804 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 808362803} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 221c4e845ba39fa4396461ac8c3b9e8e, type: 3} + m_Name: + m_EditorClassIdentifier: + isPreviewingCylinder: 0 + isPreviewingQuad: 0 + generatedPreview: {fileID: 0} + layerType: 1 + compositionDepth: 0 + layerShape: 0 + layerVisibility: 0 + m_QuadWidth: 3.6 + m_QuadHeight: 4.5 + m_CylinderHeight: 1 + m_CylinderArcLength: 1 + m_CylinderRadius: 1 + m_CylinderAngleOfArc: 180 + lockMode: 0 + isDynamicLayer: 0 + isExternalSurface: 0 + isCustomRects: 1 + customRects: 1 + externalSurfaceWidth: 1280 + externalSurfaceHeight: 720 + applyColorScaleBias: 0 + solidEffect: 0 + colorScale: {r: 1, g: 1, b: 1, a: 1} + colorBias: {r: 0, g: 0, b: 0, a: 0} + isProtectedSurface: 0 + texture: {fileID: 2800000, guid: a4b9b85c531c54d42a14c904411403ef, type: 3} + textureRight: {fileID: 0} + renderPriority: 0 + trackingOrigin: {fileID: 1272116173} + generatedUnderlayMesh: {fileID: 0} + generatedFallbackMesh: {fileID: 0} +--- !u!4 &808362805 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 808362803} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -0.03, y: -2.31, z: -4.07} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &828610979 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 828610981} + - component: {fileID: 828610982} + m_Layer: 0 + m_Name: Overlay2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &828610981 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 828610979} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0.03, y: 1.49, z: -4.07} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &828610982 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 828610979} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 221c4e845ba39fa4396461ac8c3b9e8e, type: 3} + m_Name: + m_EditorClassIdentifier: + isPreviewingCylinder: 0 + isPreviewingQuad: 0 + generatedPreview: {fileID: 0} + layerType: 1 + compositionDepth: 0 + layerShape: 0 + layerVisibility: 0 + m_QuadWidth: 5 + m_QuadHeight: 2.5 + m_CylinderHeight: 1 + m_CylinderArcLength: 1 + m_CylinderRadius: 1 + m_CylinderAngleOfArc: 180 + lockMode: 0 + isDynamicLayer: 0 + isExternalSurface: 0 + isCustomRects: 1 + customRects: 2 + externalSurfaceWidth: 1280 + externalSurfaceHeight: 720 + applyColorScaleBias: 0 + solidEffect: 0 + colorScale: {r: 1, g: 1, b: 1, a: 1} + colorBias: {r: 0, g: 0, b: 0, a: 0} + isProtectedSurface: 0 + texture: {fileID: 2800000, guid: d07a4308157d7894c85d61e33c1eb589, type: 3} + textureRight: {fileID: 0} + renderPriority: 0 + trackingOrigin: {fileID: 1272116173} + generatedUnderlayMesh: {fileID: 0} + generatedFallbackMesh: {fileID: 0} +--- !u!1 &1272116173 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1272116175} + - component: {fileID: 1272116174} + m_Layer: 0 + m_Name: XRRig + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1272116174 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1272116173} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a2483b9bd782f9449a5972b61b7d51a9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_CameraFloorOffsetObject: {fileID: 1442507265} + m_RequestedTrackingMode: 0 + m_TrackingOriginMode: 1 + m_TrackingSpace: 0 + m_CameraYOffset: 1.36144 +--- !u!4 &1272116175 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1272116173} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1442507266} + m_Father: {fileID: 0} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1419130106 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1419130108} + - component: {fileID: 1419130107} + 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 &1419130107 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1419130106} + 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 &1419130108 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1419130106} + 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_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} +--- !u!1 &1442507265 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1442507266} + m_Layer: 0 + m_Name: Camera Offset + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1442507266 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1442507265} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 1.36144, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 13917562} + m_Father: {fileID: 1272116175} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Anchor/Scenes/PDAnchorTest.unity.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/CompositionLayer2/Scenes/CompositionLayerTest_Rects.unity.meta similarity index 74% rename from com.htc.upm.vive.openxr/Samples~/Samples/Samples/Anchor/Scenes/PDAnchorTest.unity.meta rename to com.htc.upm.vive.openxr/Samples~/Samples/Samples/CompositionLayer2/Scenes/CompositionLayerTest_Rects.unity.meta index 5ef8569..2759d8b 100644 --- a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Anchor/Scenes/PDAnchorTest.unity.meta +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/CompositionLayer2/Scenes/CompositionLayerTest_Rects.unity.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 80d1cc30b0e730b45bdc75cbc0df513a +guid: c5e7ae8d47e0ebd469828ce687f6fe7d DefaultImporter: externalObjects: {} userData: diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/CompositionLayer2/Scenes/CompositionLayerTest_Sharpening.unity b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/CompositionLayer2/Scenes/CompositionLayerTest_Sharpening.unity new file mode 100644 index 0000000..b442b52 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/CompositionLayer2/Scenes/CompositionLayerTest_Sharpening.unity @@ -0,0 +1,17653 @@ +%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.18028378, g: 0.22571412, b: 0.30692285, a: 1} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 12 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 12 + m_Resolution: 2 + m_BakeResolution: 40 + m_AtlasSize: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + m_ReflectionCompression: 2 + m_MixedBakeMode: 2 + m_BakeBackend: 1 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 512 + m_PVRBounces: 2 + m_PVREnvironmentSampleCount: 256 + m_PVREnvironmentReferencePointCount: 2048 + m_PVRFilteringMode: 1 + m_PVRDenoiserTypeDirect: 1 + m_PVRDenoiserTypeIndirect: 1 + m_PVRDenoiserTypeAO: 1 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVREnvironmentMIS: 1 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightProbeSampleCountMultiplier: 4 + m_LightingDataAsset: {fileID: 0} + m_LightingSettings: {fileID: 0} +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + maxJobWorkers: 0 + preserveTilesOutsideBounds: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &9994868 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 9994869} + - component: {fileID: 9994871} + - component: {fileID: 9994870} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &9994869 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9994868} + m_LocalRotation: {x: -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: 1962407545} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.25} + m_AnchorMax: {x: 1, y: 0.75} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &9994870 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9994868} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &9994871 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9994868} + m_CullTransparentMesh: 0 +--- !u!1 &14404934 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 14404935} + - component: {fileID: 14404937} + - component: {fileID: 14404936} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &14404935 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 14404934} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 48056034} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 88.5, y: 0} + m_SizeDelta: {x: 2000, y: 455.7} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &14404936 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 14404934} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 150 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 300 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Secondary2DAxis + + Touch' +--- !u!222 &14404937 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 14404934} + m_CullTransparentMesh: 0 +--- !u!1 &22659356 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 22659357} + - component: {fileID: 22659358} + m_Layer: 5 + m_Name: Primary2DAxis + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &22659357 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 22659356} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 427209298} + - {fileID: 651063561} + - {fileID: 1911681173} + m_Father: {fileID: 1895019948} + 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: 100, y: -70} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &22659358 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 22659356} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 68ffad370daf7de4097bcd7cb411838c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionReference: {fileID: 7596212294181904713, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + xAxisSlider: {fileID: 651063562} + yAxisSlider: {fileID: 1911681174} +--- !u!1 &28729981 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 28729982} + - component: {fileID: 28729984} + - component: {fileID: 28729983} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &28729982 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 28729981} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1599684337} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 60, y: 66} + m_SizeDelta: {x: 2000, y: 455.7} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &28729983 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 28729981} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 150 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 300 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Secondary2DAxis + + Press' +--- !u!222 &28729984 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 28729981} + m_CullTransparentMesh: 0 +--- !u!1 &48056033 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 48056034} + - component: {fileID: 48056035} + m_Layer: 5 + m_Name: Secondary2DAxisTouch + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &48056034 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 48056033} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 14404935} + - {fileID: 1475348423} + m_Father: {fileID: 1895019948} + m_RootOrder: 9 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 85, y: 37} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &48056035 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 48056033} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1879fed0e0310334fb310daf7dcc4784, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionReference: {fileID: -1091252228470322465, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + enabledColor: {r: 0, g: 1, b: 0, a: 1} + disabledColor: {r: 1, g: 0, b: 0, a: 1} + image: {fileID: 1475348424} +--- !u!1 &52979418 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 52979419} + - component: {fileID: 52979420} + m_Layer: 5 + m_Name: Pressed + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &52979419 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 52979418} + m_LocalRotation: {x: -0, y: -0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 695950443} + m_Father: {fileID: 1639142703} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + 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!114 &52979420 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 52979418} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1879fed0e0310334fb310daf7dcc4784, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionReference: {fileID: 6454596279149084813, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + enabledColor: {r: 0, g: 1, b: 0, a: 1} + disabledColor: {r: 1, g: 0, b: 0, a: 1} + image: {fileID: 695950444} +--- !u!1 &73711173 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 73711174} + - component: {fileID: 73711177} + - component: {fileID: 73711176} + - component: {fileID: 73711175} + m_Layer: 5 + m_Name: BTN2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &73711174 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 73711173} + m_LocalRotation: {x: -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: 809132414} + m_Father: {fileID: 842449442} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 45} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &73711175 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 73711173} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 73711176} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1975274093} + m_TargetAssemblyTypeName: Actions, VIVE.OpenXR.Samples + m_MethodName: SetLevel2 + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!114 &73711176 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 73711173} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &73711177 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 73711173} + m_CullTransparentMesh: 1 +--- !u!1 &79147297 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 79147298} + - component: {fileID: 79147300} + - component: {fileID: 79147299} + 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 &79147298 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 79147297} + m_LocalRotation: {x: 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: 1236875438} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &79147299 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 79147297} + 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: 'Enable + +' + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 30 + m_fontSizeBase: 15 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 18 + m_fontSizeMax: 30 + 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: 3 + 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 &79147300 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 79147297} + m_CullTransparentMesh: 1 +--- !u!1 &88397579 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 88397580} + - component: {fileID: 88397581} + m_Layer: 5 + m_Name: Primary2DAxisClick + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &88397580 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 88397579} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1064279609} + - {fileID: 1149645103} + m_Father: {fileID: 2000798301} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 100, y: -70} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &88397581 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 88397579} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1879fed0e0310334fb310daf7dcc4784, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionReference: {fileID: -3683315366864426127, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + enabledColor: {r: 0, g: 1, b: 0, a: 1} + disabledColor: {r: 1, g: 0, b: 0, a: 1} + image: {fileID: 1149645104} +--- !u!1 &88930300 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 88930301} + - component: {fileID: 88930302} + m_Layer: 5 + m_Name: Touched + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &88930301 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 88930300} + m_LocalRotation: {x: -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: 1639142703} + m_Father: {fileID: 1982292788} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + 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!114 &88930302 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 88930300} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1879fed0e0310334fb310daf7dcc4784, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionReference: {fileID: 6960837491323481197, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + enabledColor: {r: 0, g: 1, b: 0, a: 1} + disabledColor: {r: 1, g: 0, b: 0, a: 1} + image: {fileID: 1639142704} +--- !u!1 &94066321 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 94066322} + - component: {fileID: 94066323} + m_Layer: 5 + m_Name: Pressed + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &94066322 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 94066321} + m_LocalRotation: {x: -0, y: -0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 460695951} + m_Father: {fileID: 1883017219} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + 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!114 &94066323 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 94066321} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1879fed0e0310334fb310daf7dcc4784, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionReference: {fileID: 6986180202050166755, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + enabledColor: {r: 0, g: 1, b: 0, a: 1} + disabledColor: {r: 1, g: 0, b: 0, a: 1} + image: {fileID: 460695952} +--- !u!1 &96915768 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 96915769} + - component: {fileID: 96915771} + - component: {fileID: 96915770} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &96915769 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 96915768} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 242984141} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 85, y: 118} + m_SizeDelta: {x: 2000, y: 455.7} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &96915770 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 96915768} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 150 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 300 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Secondary + + Touch' +--- !u!222 &96915771 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 96915768} + m_CullTransparentMesh: 0 +--- !u!1 &108413852 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 108413853} + - component: {fileID: 108413856} + - component: {fileID: 108413855} + - component: {fileID: 108413854} + m_Layer: 5 + m_Name: BTN4 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &108413853 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 108413852} + m_LocalRotation: {x: -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: 976331052} + m_Father: {fileID: 842449442} + 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: 45} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &108413854 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 108413852} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 108413855} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1975274093} + m_TargetAssemblyTypeName: Actions, VIVE.OpenXR.Samples + m_MethodName: SetLevel4 + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!114 &108413855 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 108413852} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &108413856 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 108413852} + m_CullTransparentMesh: 1 +--- !u!1 &110771410 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 110771411} + - component: {fileID: 110771413} + - component: {fileID: 110771412} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &110771411 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 110771410} + m_LocalRotation: {x: -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: 1253640100} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.25} + m_AnchorMax: {x: 1, y: 0.75} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &110771412 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 110771410} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &110771413 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 110771410} + m_CullTransparentMesh: 0 +--- !u!1 &117419443 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 117419444} + - component: {fileID: 117419446} + - component: {fileID: 117419445} + m_Layer: 5 + m_Name: clicked + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &117419444 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 117419443} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.25, y: 0.25, z: 0.025} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 202955361} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 33, y: 59} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &117419445 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 117419443} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &117419446 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 117419443} + m_CullTransparentMesh: 0 +--- !u!1 &129343577 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 129343578} + - component: {fileID: 129343581} + - component: {fileID: 129343580} + - component: {fileID: 129343579} + m_Layer: 5 + m_Name: BTN3 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &129343578 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 129343577} + m_LocalRotation: {x: -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: 1349632182} + m_Father: {fileID: 842449442} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 45} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &129343579 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 129343577} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 129343580} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1975274093} + m_TargetAssemblyTypeName: Actions, VIVE.OpenXR.Samples + m_MethodName: SetLevel3 + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!114 &129343580 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 129343577} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &129343581 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 129343577} + m_CullTransparentMesh: 1 +--- !u!1 &132359199 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 132359200} + - component: {fileID: 132359201} + m_Layer: 5 + m_Name: ParkingTouch + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &132359200 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 132359199} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1584053136} + - {fileID: 981087863} + m_Father: {fileID: 2000798301} + m_RootOrder: 13 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: -171} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &132359201 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 132359199} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1879fed0e0310334fb310daf7dcc4784, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionReference: {fileID: 1592923304057336957, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + enabledColor: {r: 0, g: 1, b: 0, a: 1} + disabledColor: {r: 1, g: 0, b: 0, a: 1} + image: {fileID: 981087864} +--- !u!1 &140148529 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 140148530} + m_Layer: 5 + m_Name: Handle Slide Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &140148530 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 140148529} + m_LocalRotation: {x: -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: 1828502049} + m_Father: {fileID: 1911681173} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &147340396 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 147340397} + - component: {fileID: 147340399} + - component: {fileID: 147340398} + m_Layer: 5 + m_Name: Fill + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &147340397 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 147340396} + m_LocalRotation: {x: -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: 590164717} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 10, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &147340398 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 147340396} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &147340399 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 147340396} + m_CullTransparentMesh: 0 +--- !u!1 &152178806 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 152178807} + - component: {fileID: 152178808} + m_Layer: 5 + m_Name: Secondary2DAxisClick + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &152178807 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 152178806} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 626272042} + - {fileID: 1351383507} + m_Father: {fileID: 2000798301} + m_RootOrder: 8 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 100, y: 70} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &152178808 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 152178806} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1879fed0e0310334fb310daf7dcc4784, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionReference: {fileID: -3947085769738995516, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + enabledColor: {r: 0, g: 1, b: 0, a: 1} + disabledColor: {r: 1, g: 0, b: 0, a: 1} + image: {fileID: 1351383508} +--- !u!1 &160825839 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 160825840} + - component: {fileID: 160825842} + - component: {fileID: 160825841} + 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 &160825840 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 160825839} + m_LocalRotation: {x: 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: 1932757388} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &160825841 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 160825839} + 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: 'Quality + +' + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 30 + m_fontSizeBase: 15 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 18 + m_fontSizeMax: 30 + 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: 3 + 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 &160825842 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 160825839} + m_CullTransparentMesh: 1 +--- !u!1 &181363874 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 181363875} + m_Layer: 5 + m_Name: Handle Slide Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &181363875 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 181363874} + m_LocalRotation: {x: -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: 1168559736} + m_Father: {fileID: 1734618713} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &188389947 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 188389948} + - component: {fileID: 188389949} + m_Layer: 5 + m_Name: xSlider + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &188389948 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 188389947} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1023411885} + - {fileID: 604210402} + - {fileID: 984717217} + m_Father: {fileID: 1853779096} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + 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: 160, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &188389949 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 188389947} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 67db9e8f0e2ae9c40bc1e2b64352a6b4, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1505236051} + m_FillRect: {fileID: 1493209259} + m_HandleRect: {fileID: 1505236050} + m_Direction: 0 + m_MinValue: -1 + m_MaxValue: 1 + m_WholeNumbers: 0 + m_Value: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &202955360 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 202955361} + - component: {fileID: 202955362} + m_Layer: 5 + m_Name: Primary2DAxisTouch + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &202955361 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202955360} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1353537410} + - {fileID: 117419444} + m_Father: {fileID: 2000798301} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 100, y: -128} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &202955362 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202955360} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1879fed0e0310334fb310daf7dcc4784, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionReference: {fileID: 3873870584620388549, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + enabledColor: {r: 0, g: 1, b: 0, a: 1} + disabledColor: {r: 1, g: 0, b: 0, a: 1} + image: {fileID: 117419445} +--- !u!1 &205689221 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 205689222} + - component: {fileID: 205689224} + - component: {fileID: 205689223} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &205689222 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 205689221} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1276210518} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 56, y: 59} + m_SizeDelta: {x: 2000, y: 455.7} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &205689223 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 205689221} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 150 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 300 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Primary2DAxis + + Touch' +--- !u!222 &205689224 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 205689221} + m_CullTransparentMesh: 0 +--- !u!1 &212606481 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 212606482} + - component: {fileID: 212606484} + - component: {fileID: 212606483} + 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 &212606482 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 212606481} + m_LocalRotation: {x: 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: 309595028} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &212606483 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 212606481} + 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: Normal + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 30 + m_fontSizeBase: 15 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 18 + m_fontSizeMax: 30 + 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: 3 + 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 &212606484 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 212606481} + m_CullTransparentMesh: 1 +--- !u!1 &214489909 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 214489913} + - component: {fileID: 214489912} + - component: {fileID: 214489911} + - component: {fileID: 214489910} + - component: {fileID: 214489915} + - component: {fileID: 214489914} + m_Layer: 5 + m_Name: Picture + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &214489910 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 214489909} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &214489911 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 214489909} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 1 +--- !u!223 &214489912 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 214489909} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 1027415646} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &214489913 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 214489909} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 700} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: -6, y: 0} + m_SizeDelta: {x: 1200, y: 800} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &214489914 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 214489909} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: b58770bab37e36341b943116de1141b1, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &214489915 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 214489909} + m_CullTransparentMesh: 1 +--- !u!1 &234836315 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 234836316} + - component: {fileID: 234836317} + m_Layer: 5 + m_Name: xSlider + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &234836316 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 234836315} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1555408136} + - {fileID: 1234125457} + - {fileID: 633242815} + m_Father: {fileID: 1786380874} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + 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: 160, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &234836317 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 234836315} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 67db9e8f0e2ae9c40bc1e2b64352a6b4, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 375421417} + m_FillRect: {fileID: 1353746733} + m_HandleRect: {fileID: 375421416} + m_Direction: 0 + m_MinValue: -1 + m_MaxValue: 1 + m_WholeNumbers: 0 + m_Value: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &242984140 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 242984141} + - component: {fileID: 242984142} + m_Layer: 5 + m_Name: SecondaryTouch + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &242984141 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 242984140} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 96915769} + - {fileID: 1852084997} + m_Father: {fileID: 2000798301} + m_RootOrder: 12 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: -133} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &242984142 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 242984140} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1879fed0e0310334fb310daf7dcc4784, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionReference: {fileID: -489211225168818177, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + enabledColor: {r: 0, g: 1, b: 0, a: 1} + disabledColor: {r: 1, g: 0, b: 0, a: 1} + image: {fileID: 1852084998} +--- !u!1 &249607368 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 249607369} + - component: {fileID: 249607371} + - component: {fileID: 249607370} + m_Layer: 5 + m_Name: Text2 + m_TagString: SharpenLevel + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &249607369 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 249607368} + m_LocalRotation: {x: 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: 842449442} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &249607370 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 249607368} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 20 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Level +--- !u!222 &249607371 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 249607368} + m_CullTransparentMesh: 1 +--- !u!1 &271055094 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 271055095} + - component: {fileID: 271055096} + m_Layer: 5 + m_Name: Trigger + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &271055095 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 271055094} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.6, y: 0.6, z: 0.6} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 450299384} + - {fileID: 1769057602} + m_Father: {fileID: 2000798301} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 180, y: 0} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &271055096 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 271055094} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 47dc0f697f292694f85e0ea7d8eab70f, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionReference: {fileID: -5684558904543120851, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + slider: {fileID: 450299385} +--- !u!1 &302010307 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 302010308} + - component: {fileID: 302010310} + - component: {fileID: 302010309} + m_Layer: 5 + m_Name: PoseName + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &302010308 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 302010307} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.05, y: 0.05, z: 0.05} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1895019948} + m_RootOrder: 15 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -25, y: 30} + m_SizeDelta: {x: 1000, y: 1000} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &302010309 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 302010307} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 300 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 3 + m_MaxSize: 300 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Grip Pose +--- !u!222 &302010310 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 302010307} + m_CullTransparentMesh: 0 +--- !u!1 &309595027 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 309595028} + - component: {fileID: 309595031} + - component: {fileID: 309595030} + - component: {fileID: 309595029} + m_Layer: 5 + m_Name: BTNNormal + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &309595028 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 309595027} + m_LocalRotation: {x: -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: 212606482} + m_Father: {fileID: 687116405} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 45} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &309595029 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 309595027} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 309595030} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1975274093} + m_TargetAssemblyTypeName: Actions, Assembly-CSharp + m_MethodName: SetConfig2 + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!114 &309595030 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 309595027} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &309595031 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 309595027} + m_CullTransparentMesh: 1 +--- !u!1 &314711928 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 314711929} + - component: {fileID: 314711930} + m_Layer: 5 + m_Name: SecondaryButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &314711929 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 314711928} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 816202430} + - {fileID: 614327622} + m_Father: {fileID: 1895019948} + m_RootOrder: 11 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: -95} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &314711930 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 314711928} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1879fed0e0310334fb310daf7dcc4784, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionReference: {fileID: -631344258065148156, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + enabledColor: {r: 0, g: 1, b: 0, a: 1} + disabledColor: {r: 1, g: 0, b: 0, a: 1} + image: {fileID: 614327623} +--- !u!1 &335621217 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 335621218} + - component: {fileID: 335621220} + - component: {fileID: 335621219} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &335621218 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 335621217} + m_LocalRotation: {x: -0, y: -0, z: 0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.8, y: 0.8, z: 0.8} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 380647415} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &335621219 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 335621217} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &335621220 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 335621217} + m_CullTransparentMesh: 0 +--- !u!1 &336319367 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 336319368} + - component: {fileID: 336319370} + - component: {fileID: 336319369} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &336319368 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 336319367} + m_LocalRotation: {x: -0, y: -0, z: 0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.25, y: 0.25, z: 0.25} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 380647415} + m_Father: {fileID: 564869630} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &336319369 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 336319367} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &336319370 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 336319367} + m_CullTransparentMesh: 0 +--- !u!1 &346176064 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 346176065} + - component: {fileID: 346176067} + - component: {fileID: 346176066} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &346176065 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 346176064} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1835541129} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 45, y: 120} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &346176066 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 346176064} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &346176067 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 346176064} + m_CullTransparentMesh: 0 +--- !u!1 &361058384 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 361058385} + - component: {fileID: 361058387} + - component: {fileID: 361058386} + m_Layer: 5 + m_Name: Fill + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &361058385 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 361058384} + m_LocalRotation: {x: -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: 1796106021} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 10, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &361058386 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 361058384} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &361058387 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 361058384} + m_CullTransparentMesh: 0 +--- !u!1 &362364442 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 362364443} + - component: {fileID: 362364445} + - component: {fileID: 362364444} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &362364443 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 362364442} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1702208610} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 88.5, y: 0} + m_SizeDelta: {x: 2000, y: 455.7} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &362364444 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 362364442} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 300 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 3 + m_MaxSize: 300 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: "Secondary2DAxis\xDF\xE5" +--- !u!222 &362364445 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 362364442} + m_CullTransparentMesh: 0 +--- !u!1 &363280812 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 363280813} + - component: {fileID: 363280815} + - component: {fileID: 363280814} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &363280813 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 363280812} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1400357807} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 88.5, y: 0} + m_SizeDelta: {x: 2000, y: 455.7} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &363280814 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 363280812} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 150 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 300 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Secondary2DAxis + + Touch' +--- !u!222 &363280815 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 363280812} + m_CullTransparentMesh: 0 +--- !u!1 &375129126 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 375129129} + - component: {fileID: 375129128} + - component: {fileID: 375129127} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &375129127 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 375129126} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 01614664b831546d2ae94a42149d80ac, type: 3} + m_Name: + m_EditorClassIdentifier: + m_SendPointerHoverToParent: 1 + m_MoveRepeatDelay: 0.5 + m_MoveRepeatRate: 0.1 + m_XRTrackingOrigin: {fileID: 0} + m_ActionsAsset: {fileID: -944628639613478452, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_PointAction: {fileID: 0} + m_MoveAction: {fileID: 0} + m_SubmitAction: {fileID: -9199573721968962783, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_CancelAction: {fileID: 0} + m_LeftClickAction: {fileID: 282052539471875206, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_MiddleClickAction: {fileID: 0} + m_RightClickAction: {fileID: 0} + m_ScrollWheelAction: {fileID: 0} + m_TrackedDevicePositionAction: {fileID: 1162393666371849595, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_TrackedDeviceOrientationAction: {fileID: -8081773802841398021, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_DeselectOnBackgroundClick: 1 + m_PointerBehavior: 0 + m_CursorLockBehavior: 0 +--- !u!114 &375129128 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 375129126} + 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 &375129129 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 375129126} + m_LocalRotation: {x: 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_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &375421415 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 375421416} + - component: {fileID: 375421418} + - component: {fileID: 375421417} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &375421416 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 375421415} + m_LocalRotation: {x: -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: 633242815} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &375421417 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 375421415} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &375421418 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 375421415} + m_CullTransparentMesh: 0 +--- !u!1 &377467457 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 377467458} + - component: {fileID: 377467460} + - component: {fileID: 377467459} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &377467458 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 377467457} + m_LocalRotation: {x: -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: 1734618713} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.25} + m_AnchorMax: {x: 1, y: 0.75} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &377467459 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 377467457} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &377467460 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 377467457} + m_CullTransparentMesh: 0 +--- !u!1 &380647414 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 380647415} + - component: {fileID: 380647416} + m_Layer: 5 + m_Name: Pressed + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &380647415 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 380647414} + m_LocalRotation: {x: -0, y: -0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 335621218} + m_Father: {fileID: 336319368} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &380647416 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 380647414} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1879fed0e0310334fb310daf7dcc4784, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionReference: {fileID: -2169729131751125950, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + enabledColor: {r: 0, g: 1, b: 0, a: 1} + disabledColor: {r: 1, g: 0, b: 0, a: 1} + image: {fileID: 335621219} +--- !u!1 &403309408 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 403309410} + - component: {fileID: 403309409} + m_Layer: 0 + m_Name: Gaze + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!114 &403309409 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 403309408} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c2fadf230d1919748a9aa21d40f74619, type: 3} + m_Name: + m_EditorClassIdentifier: + m_TrackingType: 0 + m_UpdateType: 0 + m_PositionInput: + m_UseReference: 0 + m_Action: + m_Name: Position + m_Type: 0 + m_ExpectedControlType: + m_Id: 94cf6314-7797-4638-85c0-329ac13b85ee + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 860d4576-ba16-4d92-a540-11541e6219de + m_Path: /pose/position + m_Interactions: + m_Processors: + m_Groups: + m_Action: Position + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: 0} + m_RotationInput: + m_UseReference: 0 + m_Action: + m_Name: Rotation + m_Type: 0 + m_ExpectedControlType: + m_Id: efb1fd02-3cde-42d4-b9c6-4ee43580c4bd + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 21c9140f-23b6-40aa-b8fe-9d0a9ff24af2 + m_Path: /pose/rotation + m_Interactions: + m_Processors: + m_Groups: + m_Action: Rotation + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: 0} + m_PositionAction: + m_Name: Position + m_Type: 0 + m_ExpectedControlType: + m_Id: 94cf6314-7797-4638-85c0-329ac13b85ee + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 860d4576-ba16-4d92-a540-11541e6219de + m_Path: /pose/position + m_Interactions: + m_Processors: + m_Groups: + m_Action: Position + m_Flags: 0 + m_Flags: 0 + m_RotationAction: + m_Name: Rotation + m_Type: 0 + m_ExpectedControlType: + m_Id: efb1fd02-3cde-42d4-b9c6-4ee43580c4bd + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 21c9140f-23b6-40aa-b8fe-9d0a9ff24af2 + m_Path: /pose/rotation + m_Interactions: + m_Processors: + m_Groups: + m_Action: Rotation + m_Flags: 0 + m_Flags: 0 + m_HasMigratedActions: 1 +--- !u!4 &403309410 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 403309408} + m_LocalRotation: {x: -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: 615571821} + m_Father: {fileID: 1507841254} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &412766871 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 412766872} + - component: {fileID: 412766874} + - component: {fileID: 412766873} + m_Layer: 0 + m_Name: LeftController + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &412766872 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 412766871} + m_LocalRotation: {x: 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: 575172029} + m_Father: {fileID: 1507841254} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &412766873 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 412766871} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 873a88a3d45610d4489a58d37c448415, type: 3} + m_Name: + m_EditorClassIdentifier: + IsLeft: 1 + m_IsActive: {fileID: 3005817691354473129, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_TrackingState: {fileID: 5178774767481721072, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_ObjectToHide: {fileID: 575172028} +--- !u!114 &412766874 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 412766871} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a71a8cacc8de6e9449396d7cd616b05e, type: 3} + m_Name: + m_EditorClassIdentifier: + action: {fileID: 6986180202050166755, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + _amplitude: 1 + _duration: 0.1 +--- !u!1 &420291693 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 420291694} + m_Layer: 5 + m_Name: Fill Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &420291694 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 420291693} + m_LocalRotation: {x: -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: 1628544356} + m_Father: {fileID: 1253640100} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.25} + m_AnchorMax: {x: 1, y: 0.75} + m_AnchoredPosition: {x: -5, y: 0} + m_SizeDelta: {x: -20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &427209297 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 427209298} + - component: {fileID: 427209300} + - component: {fileID: 427209299} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &427209298 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 427209297} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 22659357} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 88.5, y: 0} + m_SizeDelta: {x: 2000, y: 455.7} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &427209299 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 427209297} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 300 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 3 + m_MaxSize: 300 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Primary2DAxis +--- !u!222 &427209300 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 427209297} + m_CullTransparentMesh: 0 +--- !u!1 &450299383 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 450299384} + - component: {fileID: 450299385} + m_Layer: 5 + m_Name: AxisValue + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &450299384 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 450299383} + m_LocalRotation: {x: -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: 1652216111} + - {fileID: 797507864} + - {fileID: 913954204} + m_Father: {fileID: 271055095} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 160, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &450299385 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 450299383} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 67db9e8f0e2ae9c40bc1e2b64352a6b4, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1982292789} + m_FillRect: {fileID: 1293483104} + m_HandleRect: {fileID: 1982292788} + m_Direction: 0 + m_MinValue: 0 + m_MaxValue: 1 + m_WholeNumbers: 0 + m_Value: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &451821162 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 451821164} + - component: {fileID: 451821163} + 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 &451821163 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 451821162} + 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 &451821164 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 451821162} + 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_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} +--- !u!1 &460695950 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 460695951} + - component: {fileID: 460695953} + - component: {fileID: 460695952} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &460695951 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 460695950} + m_LocalRotation: {x: -0, y: -0, z: 0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.8, y: 0.8, z: 0.8} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 94066322} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &460695952 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 460695950} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &460695953 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 460695950} + m_CullTransparentMesh: 0 +--- !u!1 &462823324 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 462823325} + - component: {fileID: 462823327} + - component: {fileID: 462823326} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &462823325 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 462823324} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 663512792} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 45, y: 120} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &462823326 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 462823324} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &462823327 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 462823324} + m_CullTransparentMesh: 0 +--- !u!1 &477576973 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 477576974} + - component: {fileID: 477576976} + - component: {fileID: 477576975} + m_Layer: 5 + m_Name: Menu + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &477576974 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 477576973} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 809494370} + - {fileID: 1705807086} + m_Father: {fileID: 1895019948} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 45} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &477576975 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 477576973} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6a579b9c6142ede44a4a991db9f3f279, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionReference: + m_UseReference: 1 + m_Action: + m_Name: Action Reference + m_Type: 0 + m_ExpectedControlType: + m_Id: aa7341ce-5c13-4d98-ae11-ede09d3facc2 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 4335090648579581189, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_TargetGameobject: {fileID: 1705807085} +--- !u!114 &477576976 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 477576973} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1879fed0e0310334fb310daf7dcc4784, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionReference: {fileID: 4335090648579581189, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + enabledColor: {r: 0, g: 1, b: 0, a: 1} + disabledColor: {r: 1, g: 0, b: 0, a: 1} + image: {fileID: 1705807087} +--- !u!1 &493389840 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 493389841} + - component: {fileID: 493389842} + m_Layer: 5 + m_Name: PrimaryTouch + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &493389841 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 493389840} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1386445259} + - {fileID: 1407802559} + m_Father: {fileID: 1895019948} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: -27} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &493389842 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 493389840} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1879fed0e0310334fb310daf7dcc4784, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionReference: {fileID: 3791933405598543491, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + enabledColor: {r: 0, g: 1, b: 0, a: 1} + disabledColor: {r: 1, g: 0, b: 0, a: 1} + image: {fileID: 1407802560} +--- !u!1 &500460511 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 500460512} + m_Layer: 5 + m_Name: Handle Slide Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &500460512 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 500460511} + m_LocalRotation: {x: -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: 928743861} + m_Father: {fileID: 1827807643} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &501104677 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 501104678} + - component: {fileID: 501104680} + - component: {fileID: 501104679} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &501104678 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 501104677} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 2109822211} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 85, y: 118} + m_SizeDelta: {x: 2000, y: 455.7} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &501104679 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 501104677} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 150 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 300 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Primary + + Touch' +--- !u!222 &501104680 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 501104677} + m_CullTransparentMesh: 0 +--- !u!1 &505754391 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 505754392} + - component: {fileID: 505754396} + - component: {fileID: 505754395} + - component: {fileID: 505754394} + - component: {fileID: 505754393} + m_Layer: 0 + m_Name: Pointer + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &505754392 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 505754391} + m_LocalRotation: {x: 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: 1027415648} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &505754393 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 505754391} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 78ba47d171a9d604e87df3c8c0304fde, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 0 + m_PhysicsCastDistance: 100 + m_PhysicsEventMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_PointerRingWidth: 0.005 + m_PointerCircleRadius: 0.005 + m_PointerDistance: 1 + m_PointerColor: {r: 1, g: 1, b: 1, a: 1} + m_ProgressColor: {r: 0, g: 245, b: 255, a: 1} + m_PointerMaterial: {fileID: 0} + m_PointerRenderQueue: 5000 + m_PointerSortingOrder: 32767 + m_TimeToGaze: 1.5 + m_EyeTracking: 1 + m_EyePose: {fileID: 5776323397344544520, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_InputEvent: 0 + m_ActionsKeys: + - {fileID: -149401235567842990, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + - {fileID: -3683315366864426127, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_AlwaysEnable: 0 +--- !u!20 &505754394 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 505754391} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 0 + orthographic size: 5 + m_Depth: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!33 &505754395 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 505754391} + m_Mesh: {fileID: 0} +--- !u!23 &505754396 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 505754391} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!1 &519017179 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 519017180} + - component: {fileID: 519017181} + m_Layer: 5 + m_Name: PrimaryButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &519017180 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 519017179} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1443860186} + - {fileID: 960442036} + m_Father: {fileID: 2000798301} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 4} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &519017181 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 519017179} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1879fed0e0310334fb310daf7dcc4784, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionReference: {fileID: 11711766586467970, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + enabledColor: {r: 0, g: 1, b: 0, a: 1} + disabledColor: {r: 1, g: 0, b: 0, a: 1} + image: {fileID: 960442037} +--- !u!1 &564869629 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 564869630} + - component: {fileID: 564869631} + m_Layer: 5 + m_Name: Touched + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &564869630 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 564869629} + m_LocalRotation: {x: -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: 336319368} + m_Father: {fileID: 1020558222} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &564869631 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 564869629} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1879fed0e0310334fb310daf7dcc4784, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionReference: {fileID: -2550821198205516960, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + enabledColor: {r: 0, g: 1, b: 0, a: 1} + disabledColor: {r: 1, g: 0, b: 0, a: 1} + image: {fileID: 336319369} +--- !u!1 &567801069 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 567801070} + - component: {fileID: 567801072} + - component: {fileID: 567801071} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &567801070 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 567801069} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1752413237} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 85, y: 118} + m_SizeDelta: {x: 2000, y: 455.7} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &567801071 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 567801069} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 150 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 300 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Primary + + Press' +--- !u!222 &567801072 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 567801069} + m_CullTransparentMesh: 0 +--- !u!1 &575172028 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 575172029} + m_Layer: 0 + m_Name: VisibleElements + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &575172029 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 575172028} + m_LocalRotation: {x: 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: 808456831} + - {fileID: 1199194112} + m_Father: {fileID: 412766872} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &584592336 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 1904389849} + m_Modifications: + - target: {fileID: 4346727372943234170, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.y + value: 0.2 + objectReference: {fileID: 0} + - target: {fileID: 4346727372952809589, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.y + value: 0.2 + objectReference: {fileID: 0} + - target: {fileID: 4346727373925079742, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.y + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 4346727373925079742, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.z + value: 9.8 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823546882, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_Name + value: PoseMarker + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.z + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} +--- !u!4 &584592337 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + m_PrefabInstance: {fileID: 584592336} + m_PrefabAsset: {fileID: 0} +--- !u!1 &590164716 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 590164717} + m_Layer: 5 + m_Name: Fill Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &590164717 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 590164716} + m_LocalRotation: {x: -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: 147340397} + m_Father: {fileID: 1911681173} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.25} + m_AnchorMax: {x: 1, y: 0.75} + m_AnchoredPosition: {x: -5, y: 0} + m_SizeDelta: {x: -20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &599418060 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 599418061} + m_Layer: 5 + m_Name: Fill Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &599418061 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 599418060} + m_LocalRotation: {x: -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: 1756695445} + m_Father: {fileID: 1429239428} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.25} + m_AnchorMax: {x: 1, y: 0.75} + m_AnchoredPosition: {x: -5, y: 0} + m_SizeDelta: {x: -20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &604210401 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 604210402} + m_Layer: 5 + m_Name: Fill Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &604210402 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 604210401} + m_LocalRotation: {x: -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: 1493209259} + m_Father: {fileID: 188389948} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.25} + m_AnchorMax: {x: 1, y: 0.75} + m_AnchoredPosition: {x: -5, y: 0} + m_SizeDelta: {x: -20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &614327621 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 614327622} + - component: {fileID: 614327624} + - component: {fileID: 614327623} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &614327622 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 614327621} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 314711929} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 45, y: 120} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &614327623 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 614327621} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &614327624 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 614327621} + m_CullTransparentMesh: 0 +--- !u!1 &615571820 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 615571821} + - component: {fileID: 615571824} + - component: {fileID: 615571823} + - component: {fileID: 615571822} + m_Layer: 0 + m_Name: Sphere + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &615571821 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 615571820} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 5} + m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 403309410} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!135 &615571822 +SphereCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 615571820} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Radius: 0.5 + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &615571823 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 615571820} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 07f1d383591ceb64b8660305371088a2, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &615571824 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 615571820} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &626272041 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 626272042} + - component: {fileID: 626272044} + - component: {fileID: 626272043} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &626272042 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 626272041} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 152178807} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 60, y: 66} + m_SizeDelta: {x: 2000, y: 455.7} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &626272043 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 626272041} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 150 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 300 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Secondary2DAxis + + Press' +--- !u!222 &626272044 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 626272041} + m_CullTransparentMesh: 0 +--- !u!1 &633242814 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 633242815} + m_Layer: 5 + m_Name: Handle Slide Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &633242815 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 633242814} + m_LocalRotation: {x: -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: 375421416} + m_Father: {fileID: 234836316} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &651063560 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 651063561} + - component: {fileID: 651063562} + m_Layer: 5 + m_Name: xSlider + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &651063561 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 651063560} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1333095559} + - {fileID: 1796106021} + - {fileID: 1927509543} + m_Father: {fileID: 22659357} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + 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: 160, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &651063562 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 651063560} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 67db9e8f0e2ae9c40bc1e2b64352a6b4, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 940804508} + m_FillRect: {fileID: 361058385} + m_HandleRect: {fileID: 940804507} + m_Direction: 0 + m_MinValue: -1 + m_MaxValue: 1 + m_WholeNumbers: 0 + m_Value: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &663512791 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 663512792} + - component: {fileID: 663512793} + m_Layer: 5 + m_Name: Menu + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &663512792 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 663512791} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1813311549} + - {fileID: 462823325} + m_Father: {fileID: 2000798301} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 45} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &663512793 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 663512791} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1879fed0e0310334fb310daf7dcc4784, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionReference: {fileID: -1529377759134130044, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + enabledColor: {r: 0, g: 1, b: 0, a: 1} + disabledColor: {r: 1, g: 0, b: 0, a: 1} + image: {fileID: 462823326} +--- !u!1 &665743634 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 665743635} + - component: {fileID: 665743636} + m_Layer: 5 + m_Name: Grip + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &665743635 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 665743634} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1253640100} + - {fileID: 1610439959} + m_Father: {fileID: 1895019948} + m_RootOrder: 10 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -64.3, y: 68.5} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &665743636 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 665743634} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 47dc0f697f292694f85e0ea7d8eab70f, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionReference: {fileID: -1289947363739713011, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + slider: {fileID: 1253640101} +--- !u!1 &671440992 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 671440993} + - component: {fileID: 671440995} + - component: {fileID: 671440994} + m_Layer: 5 + m_Name: Fill + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &671440993 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 671440992} + m_LocalRotation: {x: -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: 1878359651} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 10, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &671440994 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 671440992} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &671440995 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 671440992} + m_CullTransparentMesh: 0 +--- !u!1 &687116404 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 687116405} + - component: {fileID: 687116408} + - component: {fileID: 687116407} + - component: {fileID: 687116406} + m_Layer: 5 + m_Name: Panel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &687116405 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 687116404} + m_LocalRotation: {x: 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: 1258770290} + - {fileID: 1153712748} + - {fileID: 309595028} + - {fileID: 1932757388} + - {fileID: 1033140806} + - {fileID: 1236875438} + m_Father: {fileID: 834699197} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -0.043060303, y: -0.061050415} + m_SizeDelta: {x: 0.08614254, y: -0.12179208} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &687116406 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 687116404} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 1 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!114 &687116407 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 687116404} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0.392} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &687116408 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 687116404} + m_CullTransparentMesh: 1 +--- !u!1 &695950442 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 695950443} + - component: {fileID: 695950445} + - component: {fileID: 695950444} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &695950443 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 695950442} + m_LocalRotation: {x: -0, y: -0, z: 0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.8, y: 0.8, z: 0.8} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 52979419} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &695950444 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 695950442} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &695950445 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 695950442} + m_CullTransparentMesh: 0 +--- !u!1 &705274131 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 705274132} + - component: {fileID: 705274134} + - component: {fileID: 705274133} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &705274132 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 705274131} + m_LocalRotation: {x: -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: 1911681173} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.25} + m_AnchorMax: {x: 1, y: 0.75} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &705274133 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 705274131} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &705274134 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 705274131} + m_CullTransparentMesh: 0 +--- !u!1 &726463590 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 726463591} + m_Layer: 5 + m_Name: Handle Slide Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &726463591 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 726463590} + m_LocalRotation: {x: -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: 1020558222} + m_Father: {fileID: 1253640100} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &734007752 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 734007753} + - component: {fileID: 734007754} + m_Layer: 5 + m_Name: Primary2DAxisClick + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &734007753 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 734007752} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 857108631} + - {fileID: 1360444053} + m_Father: {fileID: 1895019948} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 100, y: -70} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &734007754 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 734007752} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1879fed0e0310334fb310daf7dcc4784, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionReference: {fileID: -149401235567842990, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + enabledColor: {r: 0, g: 1, b: 0, a: 1} + disabledColor: {r: 1, g: 0, b: 0, a: 1} + image: {fileID: 1360444054} +--- !u!1 &735377739 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 735377740} + - component: {fileID: 735377742} + - component: {fileID: 735377741} + 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 &735377740 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 735377739} + m_LocalRotation: {x: 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: 1153712748} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &735377741 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 735377739} + 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: Fast + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 30 + m_fontSizeBase: 15 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 18 + m_fontSizeMax: 30 + 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: 3 + 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 &735377742 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 735377739} + m_CullTransparentMesh: 1 +--- !u!1 &738847760 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 738847761} + - component: {fileID: 738847763} + - component: {fileID: 738847762} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &738847761 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 738847760} + m_LocalRotation: {x: -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: 1429239428} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.25} + m_AnchorMax: {x: 1, y: 0.75} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &738847762 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 738847760} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &738847763 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 738847760} + m_CullTransparentMesh: 0 +--- !u!1 &754624349 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 754624350} + m_Layer: 5 + m_Name: Handle Slide Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &754624350 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 754624349} + m_LocalRotation: {x: -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: 1282963596} + m_Father: {fileID: 1429239428} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &782184843 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 782184844} + - component: {fileID: 782184847} + - component: {fileID: 782184846} + - component: {fileID: 782184845} + m_Layer: 5 + m_Name: BTNDisable + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &782184844 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 782184843} + m_LocalRotation: {x: 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: 1359014438} + m_Father: {fileID: 842449442} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 45} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &782184845 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 782184843} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 782184846} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1975274093} + m_TargetAssemblyTypeName: Actions, Assembly-CSharp + m_MethodName: Disactivate + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!114 &782184846 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 782184843} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &782184847 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 782184843} + m_CullTransparentMesh: 1 +--- !u!1001 &792468994 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 1124503100} + m_Modifications: + - target: {fileID: 4346727374823546882, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_Name + value: PoseMarker + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.z + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} +--- !u!4 &792468995 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + m_PrefabInstance: {fileID: 792468994} + m_PrefabAsset: {fileID: 0} +--- !u!1 &792942482 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 792942483} + - component: {fileID: 792942485} + - component: {fileID: 792942484} + m_Layer: 5 + m_Name: Fill + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &792942483 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 792942482} + m_LocalRotation: {x: -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: 972771893} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 10, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &792942484 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 792942482} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &792942485 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 792942482} + m_CullTransparentMesh: 0 +--- !u!1 &797507863 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 797507864} + m_Layer: 5 + m_Name: Fill Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &797507864 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 797507863} + m_LocalRotation: {x: -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: 1293483104} + m_Father: {fileID: 450299384} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.25} + m_AnchorMax: {x: 1, y: 0.75} + m_AnchoredPosition: {x: -5, y: 0} + m_SizeDelta: {x: -20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &808456830 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 808456831} + - component: {fileID: 808456832} + m_Layer: 0 + m_Name: Grip + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &808456831 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 808456830} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0.2, y: 0.2, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1895019948} + - {fileID: 1966680059} + m_Father: {fileID: 575172029} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &808456832 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 808456830} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c2fadf230d1919748a9aa21d40f74619, type: 3} + m_Name: + m_EditorClassIdentifier: + m_TrackingType: 0 + m_UpdateType: 0 + m_PositionInput: + m_UseReference: 1 + m_Action: + m_Name: Position + m_Type: 0 + m_ExpectedControlType: + m_Id: bef25a9a-d15a-4fa5-94cd-aa39c268aab0 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 8fd137d8-b4b0-4707-9446-a93d224fb36e + m_Path: {LeftHand}/devicePosition + m_Interactions: + m_Processors: + m_Groups: + m_Action: Position + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: 9019252231132517785, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_RotationInput: + m_UseReference: 1 + m_Action: + m_Name: Rotation + m_Type: 0 + m_ExpectedControlType: + m_Id: 9d5ab463-e64e-4a8c-9eae-766779e9f6ee + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 19c04ff2-41ea-4a30-9dba-5ebb06049b7c + m_Path: {LeftHand}/deviceRotation + m_Interactions: + m_Processors: + m_Groups: + m_Action: Rotation + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: -22420666449113973, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_PositionAction: + m_Name: Position + m_Type: 0 + m_ExpectedControlType: + m_Id: bef25a9a-d15a-4fa5-94cd-aa39c268aab0 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 8fd137d8-b4b0-4707-9446-a93d224fb36e + m_Path: {LeftHand}/devicePosition + m_Interactions: + m_Processors: + m_Groups: + m_Action: Position + m_Flags: 0 + m_Flags: 0 + m_RotationAction: + m_Name: Rotation + m_Type: 0 + m_ExpectedControlType: + m_Id: 9d5ab463-e64e-4a8c-9eae-766779e9f6ee + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 19c04ff2-41ea-4a30-9dba-5ebb06049b7c + m_Path: {LeftHand}/deviceRotation + m_Interactions: + m_Processors: + m_Groups: + m_Action: Rotation + m_Flags: 0 + m_Flags: 0 + m_HasMigratedActions: 1 +--- !u!1 &809132413 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 809132414} + - component: {fileID: 809132416} + - component: {fileID: 809132415} + 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 &809132414 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 809132413} + m_LocalRotation: {x: 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: 73711174} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &809132415 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 809132413} + 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: 0.8 + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 30 + m_fontSizeBase: 15 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 18 + m_fontSizeMax: 30 + 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: 3 + 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 &809132416 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 809132413} + m_CullTransparentMesh: 1 +--- !u!1 &809494369 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 809494370} + - component: {fileID: 809494372} + - component: {fileID: 809494371} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &809494370 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 809494369} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 477576974} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 85, y: 118} + m_SizeDelta: {x: 2000, y: 455.7} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &809494371 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 809494369} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 300 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 300 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Menu +--- !u!222 &809494372 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 809494369} + m_CullTransparentMesh: 0 +--- !u!1 &816202429 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 816202430} + - component: {fileID: 816202432} + - component: {fileID: 816202431} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &816202430 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 816202429} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 314711929} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 85, y: 118} + m_SizeDelta: {x: 2000, y: 455.7} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &816202431 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 816202429} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 150 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 300 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Secondary + + Press' +--- !u!222 &816202432 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 816202429} + m_CullTransparentMesh: 0 +--- !u!1 &822249762 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 822249763} + - component: {fileID: 822249765} + - component: {fileID: 822249764} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &822249763 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 822249762} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.099999994, y: 0.099999994, z: 0.099999994} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 884071218} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -0, y: 30} + m_SizeDelta: {x: 2000, y: 455.7} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &822249764 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 822249762} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 300 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 300 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Trigger +--- !u!222 &822249765 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 822249762} + m_CullTransparentMesh: 0 +--- !u!1 &834699193 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 834699197} + - component: {fileID: 834699196} + - component: {fileID: 834699195} + - component: {fileID: 834699194} + - component: {fileID: 834699198} + m_Layer: 5 + m_Name: Menu + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &834699194 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 834699193} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &834699195 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 834699193} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 1 +--- !u!223 &834699196 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 834699193} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 1027415646} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: -1 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &834699197 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 834699193} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 534} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 687116405} + m_Father: {fileID: 0} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 336, y: 101} + m_SizeDelta: {x: 400, y: 300} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &834699198 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 834699193} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: afe3cda3e244f60419474164d6ba3b0b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 0 + m_CheckFor2DOcclusion: 0 + m_CheckFor3DOcclusion: 0 + m_MaxDistance: 1000 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 0 +--- !u!1 &842449441 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 842449442} + - component: {fileID: 842449445} + - component: {fileID: 842449444} + - component: {fileID: 842449443} + m_Layer: 5 + m_Name: Panel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &842449442 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 842449441} + m_LocalRotation: {x: 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: 249607369} + - {fileID: 1884517997} + - {fileID: 73711174} + - {fileID: 129343578} + - {fileID: 108413853} + - {fileID: 782184844} + m_Father: {fileID: 1607231220} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -0.043060303, y: -0.061050415} + m_SizeDelta: {x: 0.08614254, y: -0.12179208} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &842449443 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 842449441} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 1 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!114 &842449444 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 842449441} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0.392} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &842449445 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 842449441} + m_CullTransparentMesh: 1 +--- !u!1 &857108630 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 857108631} + - component: {fileID: 857108633} + - component: {fileID: 857108632} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &857108631 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 857108630} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 734007753} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 56, y: 59} + m_SizeDelta: {x: 2000, y: 455.7} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &857108632 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 857108630} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 150 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 300 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Primary2DAxis + + Press' +--- !u!222 &857108633 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 857108630} + m_CullTransparentMesh: 0 +--- !u!1 &884071217 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 884071218} + - component: {fileID: 884071219} + m_Layer: 5 + m_Name: Trigger + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &884071218 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 884071217} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.6, y: 0.6, z: 0.6} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 926198744} + - {fileID: 822249763} + m_Father: {fileID: 1895019948} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 180, y: 0} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &884071219 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 884071217} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 47dc0f697f292694f85e0ea7d8eab70f, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionReference: {fileID: 2526168894431210536, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + slider: {fileID: 926198745} +--- !u!1 &913954203 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 913954204} + m_Layer: 5 + m_Name: Handle Slide Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &913954204 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 913954203} + m_LocalRotation: {x: -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: 1982292788} + m_Father: {fileID: 450299384} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &916444925 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 916444926} + - component: {fileID: 916444928} + - component: {fileID: 916444927} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &916444926 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 916444925} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 2109822211} + 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: 45, y: 120} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &916444927 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 916444925} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &916444928 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 916444925} + m_CullTransparentMesh: 0 +--- !u!1 &926198743 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 926198744} + - component: {fileID: 926198745} + m_Layer: 5 + m_Name: AxisValue + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &926198744 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 926198743} + m_LocalRotation: {x: -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: 1637098210} + - {fileID: 1878359651} + - {fileID: 1009605480} + m_Father: {fileID: 884071218} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 160, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &926198745 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 926198743} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 67db9e8f0e2ae9c40bc1e2b64352a6b4, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1675474517} + m_FillRect: {fileID: 671440993} + m_HandleRect: {fileID: 1675474516} + m_Direction: 0 + m_MinValue: 0 + m_MaxValue: 1 + m_WholeNumbers: 0 + m_Value: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &926490408 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 926490409} + - component: {fileID: 926490411} + - component: {fileID: 926490410} + m_Layer: 5 + m_Name: PoseName + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &926490409 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 926490408} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.05, y: 0.05, z: 0.05} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1077491875} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -25, y: -30} + m_SizeDelta: {x: 1000, y: 1000} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &926490410 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 926490408} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 300 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 3 + m_MaxSize: 300 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Aim Pose +--- !u!222 &926490411 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 926490408} + m_CullTransparentMesh: 0 +--- !u!1 &928743860 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 928743861} + - component: {fileID: 928743863} + - component: {fileID: 928743862} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &928743861 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 928743860} + m_LocalRotation: {x: -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: 500460512} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &928743862 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 928743860} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &928743863 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 928743860} + m_CullTransparentMesh: 0 +--- !u!1 &940804506 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 940804507} + - component: {fileID: 940804509} + - component: {fileID: 940804508} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &940804507 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 940804506} + m_LocalRotation: {x: -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: 1927509543} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &940804508 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 940804506} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &940804509 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 940804506} + m_CullTransparentMesh: 0 +--- !u!1 &952259559 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 952259560} + - component: {fileID: 952259562} + - component: {fileID: 952259561} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &952259560 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 952259559} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1752413237} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 45, y: 120} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &952259561 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 952259559} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &952259562 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 952259559} + m_CullTransparentMesh: 0 +--- !u!1 &960442035 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 960442036} + - component: {fileID: 960442038} + - component: {fileID: 960442037} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &960442036 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 960442035} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 519017180} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 45, y: 120} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &960442037 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 960442035} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &960442038 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 960442035} + m_CullTransparentMesh: 0 +--- !u!1 &972771892 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 972771893} + m_Layer: 5 + m_Name: Fill Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &972771893 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 972771892} + m_LocalRotation: {x: -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: 792942483} + m_Father: {fileID: 1827807643} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.25} + m_AnchorMax: {x: 1, y: 0.75} + m_AnchoredPosition: {x: -5, y: 0} + m_SizeDelta: {x: -20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &976331051 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 976331052} + - component: {fileID: 976331054} + - component: {fileID: 976331053} + 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 &976331052 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 976331051} + m_LocalRotation: {x: 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: 108413853} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &976331053 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 976331051} + 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: 0.2 + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 30 + m_fontSizeBase: 15 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 18 + m_fontSizeMax: 30 + 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: 3 + 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 &976331054 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 976331051} + m_CullTransparentMesh: 1 +--- !u!1 &981087862 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 981087863} + - component: {fileID: 981087865} + - component: {fileID: 981087864} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &981087863 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 981087862} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 132359200} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 45, y: 120} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &981087864 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 981087862} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &981087865 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 981087862} + m_CullTransparentMesh: 0 +--- !u!1 &984717216 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 984717217} + m_Layer: 5 + m_Name: Handle Slide Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &984717217 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 984717216} + m_LocalRotation: {x: -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: 1505236050} + m_Father: {fileID: 188389948} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &985629070 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 985629071} + m_Layer: 5 + m_Name: Handle Slide Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &985629071 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 985629070} + m_LocalRotation: {x: -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: 1338361370} + m_Father: {fileID: 2103217998} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &992594519 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 992594520} + - component: {fileID: 992594522} + - component: {fileID: 992594521} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &992594520 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 992594519} + m_LocalRotation: {x: -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: 2103217998} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.25} + m_AnchorMax: {x: 1, y: 0.75} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &992594521 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 992594519} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &992594522 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 992594519} + m_CullTransparentMesh: 0 +--- !u!1 &999549835 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 999549836} + - component: {fileID: 999549838} + - component: {fileID: 999549837} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &999549836 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 999549835} + m_LocalRotation: {x: -0, y: -0, z: 0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.8, y: 0.8, z: 0.8} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1187069174} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &999549837 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 999549835} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &999549838 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 999549835} + m_CullTransparentMesh: 0 +--- !u!1 &1009605479 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1009605480} + m_Layer: 5 + m_Name: Handle Slide Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1009605480 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1009605479} + m_LocalRotation: {x: -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: 1675474516} + m_Father: {fileID: 926198744} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1020558221 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1020558222} + - component: {fileID: 1020558224} + - component: {fileID: 1020558223} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1020558222 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1020558221} + m_LocalRotation: {x: -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: 564869630} + m_Father: {fileID: 726463591} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1020558223 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1020558221} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1020558224 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1020558221} + m_CullTransparentMesh: 0 +--- !u!1 &1023411884 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1023411885} + - component: {fileID: 1023411887} + - component: {fileID: 1023411886} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1023411885 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1023411884} + m_LocalRotation: {x: -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: 188389948} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.25} + m_AnchorMax: {x: 1, y: 0.75} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1023411886 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1023411884} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1023411887 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1023411884} + m_CullTransparentMesh: 0 +--- !u!1 &1027415645 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1027415648} + - component: {fileID: 1027415646} + - component: {fileID: 1027415647} + m_Layer: 0 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!20 &1027415646 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1027415645} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.01 + far clip plane: 1000 + field of view: 60 + orthographic: 0 + orthographic size: 5 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -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!81 &1027415647 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1027415645} + m_Enabled: 1 +--- !u!4 &1027415648 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1027415645} + m_LocalRotation: {x: -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: 505754392} + m_Father: {fileID: 1965683395} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1030242581 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1030242582} + - component: {fileID: 1030242584} + - component: {fileID: 1030242583} + 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 &1030242582 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1030242581} + m_LocalRotation: {x: 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: 1033140806} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1030242583 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1030242581} + 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: AutoMatic + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 30 + m_fontSizeBase: 15 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 18 + m_fontSizeMax: 30 + 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: 3 + 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 &1030242584 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1030242581} + m_CullTransparentMesh: 1 +--- !u!1 &1033140805 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1033140806} + - component: {fileID: 1033140809} + - component: {fileID: 1033140808} + - component: {fileID: 1033140807} + m_Layer: 5 + m_Name: BTNAutoMatic + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1033140806 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1033140805} + m_LocalRotation: {x: -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: 1030242582} + m_Father: {fileID: 687116405} + 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: 45} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1033140807 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1033140805} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1033140808} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1975274093} + m_TargetAssemblyTypeName: Actions, Assembly-CSharp + m_MethodName: SetConfig4 + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!114 &1033140808 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1033140805} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1033140809 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1033140805} + m_CullTransparentMesh: 1 +--- !u!1 &1055307309 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1055307310} + - component: {fileID: 1055307312} + - component: {fileID: 1055307311} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1055307310 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1055307309} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.099999994, y: 0.099999994, z: 0.099999994} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1404700747} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -0, y: 30} + m_SizeDelta: {x: 2000, y: 455.7} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1055307311 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1055307309} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 300 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 300 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Grip +--- !u!222 &1055307312 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1055307309} + m_CullTransparentMesh: 0 +--- !u!1 &1064279608 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1064279609} + - component: {fileID: 1064279611} + - component: {fileID: 1064279610} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1064279609 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1064279608} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 88397580} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 56, y: 59} + m_SizeDelta: {x: 2000, y: 455.7} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1064279610 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1064279608} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 150 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 300 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Primary2DAxis + + Press' +--- !u!222 &1064279611 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1064279608} + m_CullTransparentMesh: 0 +--- !u!1 &1077491874 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1077491875} + - component: {fileID: 1077491878} + - component: {fileID: 1077491877} + - component: {fileID: 1077491876} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1077491875 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1077491874} + m_LocalRotation: {x: 0.5, y: -0.5, z: 0.5, w: 0.5} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.001, y: 0.001, z: 0.001} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 926490409} + m_Father: {fileID: 1199194112} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 90, y: -90, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0.005} + m_SizeDelta: {x: 662, y: 423} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1077491876 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1077491874} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &1077491877 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1077491874} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 1 +--- !u!223 &1077491878 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1077491874} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 1027415646} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!1 &1124503099 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1124503100} + - component: {fileID: 1124503101} + m_Layer: 0 + m_Name: Grip + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1124503100 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1124503099} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.2, y: 0.2, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 2000798301} + - {fileID: 792468995} + m_Father: {fileID: 1633469202} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1124503101 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1124503099} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c2fadf230d1919748a9aa21d40f74619, type: 3} + m_Name: + m_EditorClassIdentifier: + m_TrackingType: 0 + m_UpdateType: 0 + m_PositionInput: + m_UseReference: 1 + m_Action: + m_Name: Position + m_Type: 0 + m_ExpectedControlType: + m_Id: bef25a9a-d15a-4fa5-94cd-aa39c268aab0 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 8fd137d8-b4b0-4707-9446-a93d224fb36e + m_Path: {RightHand}/devicePosition + m_Interactions: + m_Processors: + m_Groups: + m_Action: Position + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: 7443918988805782556, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_RotationInput: + m_UseReference: 1 + m_Action: + m_Name: Rotation + m_Type: 0 + m_ExpectedControlType: + m_Id: 9d5ab463-e64e-4a8c-9eae-766779e9f6ee + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 19c04ff2-41ea-4a30-9dba-5ebb06049b7c + m_Path: {RightHand}/deviceRotation + m_Interactions: + m_Processors: + m_Groups: + m_Action: Rotation + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: 7542131730279260107, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_PositionAction: + m_Name: Position + m_Type: 0 + m_ExpectedControlType: + m_Id: bef25a9a-d15a-4fa5-94cd-aa39c268aab0 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 8fd137d8-b4b0-4707-9446-a93d224fb36e + m_Path: {RightHand}/devicePosition + m_Interactions: + m_Processors: + m_Groups: + m_Action: Position + m_Flags: 0 + m_Flags: 0 + m_RotationAction: + m_Name: Rotation + m_Type: 0 + m_ExpectedControlType: + m_Id: 9d5ab463-e64e-4a8c-9eae-766779e9f6ee + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 19c04ff2-41ea-4a30-9dba-5ebb06049b7c + m_Path: {RightHand}/deviceRotation + m_Interactions: + m_Processors: + m_Groups: + m_Action: Rotation + m_Flags: 0 + m_Flags: 0 + m_HasMigratedActions: 1 +--- !u!1 &1149645102 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1149645103} + - component: {fileID: 1149645105} + - component: {fileID: 1149645104} + m_Layer: 5 + m_Name: clicked + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1149645103 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1149645102} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.25, y: 0.25, z: 0.025} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 88397580} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 33, y: 59} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1149645104 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1149645102} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1149645105 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1149645102} + m_CullTransparentMesh: 0 +--- !u!1 &1153712747 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1153712748} + - component: {fileID: 1153712751} + - component: {fileID: 1153712750} + - component: {fileID: 1153712749} + m_Layer: 5 + m_Name: BTNFast + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1153712748 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1153712747} + m_LocalRotation: {x: 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: 735377740} + m_Father: {fileID: 687116405} + 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: 45} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1153712749 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1153712747} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1153712750} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1975274093} + m_TargetAssemblyTypeName: Actions, Assembly-CSharp + m_MethodName: SetConfig1 + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!114 &1153712750 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1153712747} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1153712751 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1153712747} + m_CullTransparentMesh: 1 +--- !u!1 &1160576332 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1160576333} + - component: {fileID: 1160576335} + - component: {fileID: 1160576334} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1160576333 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1160576332} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 2112225941} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 85, y: 118} + m_SizeDelta: {x: 2000, y: 455.7} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1160576334 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1160576332} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 150 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 300 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Secondary + + Touch' +--- !u!222 &1160576335 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1160576332} + m_CullTransparentMesh: 0 +--- !u!1 &1168559735 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1168559736} + - component: {fileID: 1168559738} + - component: {fileID: 1168559737} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1168559736 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1168559735} + m_LocalRotation: {x: -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: 1632480871} + m_Father: {fileID: 181363875} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1168559737 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1168559735} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1168559738 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1168559735} + m_CullTransparentMesh: 0 +--- !u!1 &1187069173 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1187069174} + - component: {fileID: 1187069175} + m_Layer: 5 + m_Name: Pressed + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1187069174 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1187069173} + m_LocalRotation: {x: -0, y: -0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 999549836} + m_Father: {fileID: 1787898568} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1187069175 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1187069173} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1879fed0e0310334fb310daf7dcc4784, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionReference: {fileID: -8514278639596572500, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + enabledColor: {r: 0, g: 1, b: 0, a: 1} + disabledColor: {r: 1, g: 0, b: 0, a: 1} + image: {fileID: 999549837} +--- !u!1 &1199194111 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1199194112} + - component: {fileID: 1199194113} + m_Layer: 0 + m_Name: Aim + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1199194112 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1199194111} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0.2, y: 0.1, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1077491875} + - {fileID: 1540573411} + m_Father: {fileID: 575172029} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1199194113 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1199194111} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c2fadf230d1919748a9aa21d40f74619, type: 3} + m_Name: + m_EditorClassIdentifier: + m_TrackingType: 0 + m_UpdateType: 0 + m_PositionInput: + m_UseReference: 1 + m_Action: + m_Name: Position + m_Type: 0 + m_ExpectedControlType: + m_Id: 463dd22d-e68b-4bf2-9c64-eadb9cb595c7 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 433893d2-3f66-4fa9-8aab-0462fb8ffac4 + m_Path: {LeftHand}/pointerPosition + m_Interactions: + m_Processors: + m_Groups: + m_Action: Position + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: 1805487408676636314, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_RotationInput: + m_UseReference: 1 + m_Action: + m_Name: Rotation + m_Type: 0 + m_ExpectedControlType: + m_Id: 81472b8b-1d39-4f4f-8bd8-2a8ec5384508 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 818c41bc-76a6-47ef-bc96-b201ee90f995 + m_Path: {LeftHand}/pointerRotation + m_Interactions: + m_Processors: + m_Groups: + m_Action: Rotation + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: -3341103204585363708, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_PositionAction: + m_Name: Position + m_Type: 0 + m_ExpectedControlType: + m_Id: 463dd22d-e68b-4bf2-9c64-eadb9cb595c7 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 433893d2-3f66-4fa9-8aab-0462fb8ffac4 + m_Path: {LeftHand}/pointerPosition + m_Interactions: + m_Processors: + m_Groups: + m_Action: Position + m_Flags: 0 + m_Flags: 0 + m_RotationAction: + m_Name: Rotation + m_Type: 0 + m_ExpectedControlType: + m_Id: 81472b8b-1d39-4f4f-8bd8-2a8ec5384508 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 818c41bc-76a6-47ef-bc96-b201ee90f995 + m_Path: {LeftHand}/pointerRotation + m_Interactions: + m_Processors: + m_Groups: + m_Action: Rotation + m_Flags: 0 + m_Flags: 0 + m_HasMigratedActions: 1 +--- !u!1 &1234125456 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1234125457} + m_Layer: 5 + m_Name: Fill Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1234125457 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1234125456} + m_LocalRotation: {x: -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: 1353746733} + m_Father: {fileID: 234836316} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.25} + m_AnchorMax: {x: 1, y: 0.75} + m_AnchoredPosition: {x: -5, y: 0} + m_SizeDelta: {x: -20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1236875437 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1236875438} + - component: {fileID: 1236875441} + - component: {fileID: 1236875440} + - component: {fileID: 1236875439} + m_Layer: 5 + m_Name: BTN_Enable + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1236875438 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1236875437} + m_LocalRotation: {x: 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: 79147298} + m_Father: {fileID: 687116405} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 45} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1236875439 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1236875437} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1236875440} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1975274093} + m_TargetAssemblyTypeName: Actions, VIVE.OpenXR.Samples + m_MethodName: Activate + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!114 &1236875440 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1236875437} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1236875441 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1236875437} + m_CullTransparentMesh: 1 +--- !u!1 &1241861373 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1241861374} + m_Layer: 5 + m_Name: Fill Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1241861374 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1241861373} + m_LocalRotation: {x: -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: 1393391435} + m_Father: {fileID: 1962407545} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.25} + m_AnchorMax: {x: 1, y: 0.75} + m_AnchoredPosition: {x: -5, y: 0} + m_SizeDelta: {x: -20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1253640099 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1253640100} + - component: {fileID: 1253640101} + m_Layer: 5 + m_Name: AxisValue + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1253640100 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1253640099} + m_LocalRotation: {x: -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: 110771411} + - {fileID: 420291694} + - {fileID: 726463591} + m_Father: {fileID: 665743635} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 160, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1253640101 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1253640099} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 67db9e8f0e2ae9c40bc1e2b64352a6b4, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1020558223} + m_FillRect: {fileID: 1628544356} + m_HandleRect: {fileID: 1020558222} + m_Direction: 0 + m_MinValue: 0 + m_MaxValue: 1 + m_WholeNumbers: 0 + m_Value: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &1258770289 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1258770290} + - component: {fileID: 1258770292} + - component: {fileID: 1258770291} + m_Layer: 5 + m_Name: Text + m_TagString: SharpenMode + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1258770290 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1258770289} + m_LocalRotation: {x: 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: 687116405} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1258770291 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1258770289} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 20 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Mode +--- !u!222 &1258770292 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1258770289} + m_CullTransparentMesh: 1 +--- !u!1 &1276210517 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1276210518} + - component: {fileID: 1276210519} + m_Layer: 5 + m_Name: Primary2DAxisTouch + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1276210518 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1276210517} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 205689222} + - {fileID: 1400251027} + m_Father: {fileID: 1895019948} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 100, y: -128} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1276210519 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1276210517} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1879fed0e0310334fb310daf7dcc4784, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionReference: {fileID: 4360133727445611998, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + enabledColor: {r: 0, g: 1, b: 0, a: 1} + disabledColor: {r: 1, g: 0, b: 0, a: 1} + image: {fileID: 1400251028} +--- !u!1 &1282963595 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1282963596} + - component: {fileID: 1282963598} + - component: {fileID: 1282963597} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1282963596 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1282963595} + m_LocalRotation: {x: -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: 754624350} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1282963597 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1282963595} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1282963598 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1282963595} + m_CullTransparentMesh: 0 +--- !u!1 &1285870206 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1285870207} + - component: {fileID: 1285870210} + - component: {fileID: 1285870209} + - component: {fileID: 1285870208} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1285870207 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1285870206} + m_LocalRotation: {x: 0.5, y: -0.5, z: 0.5, w: 0.5} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.001, y: 0.001, z: 0.001} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 2046429202} + m_Father: {fileID: 1904389849} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 90, y: -90, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0.005} + m_SizeDelta: {x: 662, y: 423} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1285870208 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1285870206} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &1285870209 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1285870206} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 1 +--- !u!223 &1285870210 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1285870206} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 1027415646} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!1 &1293483103 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1293483104} + - component: {fileID: 1293483106} + - component: {fileID: 1293483105} + m_Layer: 5 + m_Name: Fill + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1293483104 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1293483103} + m_LocalRotation: {x: -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: 797507864} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 10, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1293483105 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1293483103} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1293483106 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1293483103} + m_CullTransparentMesh: 0 +--- !u!1 &1318287236 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1318287237} + - component: {fileID: 1318287239} + - component: {fileID: 1318287238} + m_Layer: 0 + m_Name: RightController + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1318287237 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1318287236} + m_LocalRotation: {x: 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: 1633469202} + m_Father: {fileID: 1507841254} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1318287238 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1318287236} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 873a88a3d45610d4489a58d37c448415, type: 3} + m_Name: + m_EditorClassIdentifier: + IsLeft: 0 + m_IsActive: {fileID: -1219534774619098812, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_TrackingState: {fileID: 7186331274470829537, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_ObjectToHide: {fileID: 1633469201} +--- !u!114 &1318287239 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1318287236} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a71a8cacc8de6e9449396d7cd616b05e, type: 3} + m_Name: + m_EditorClassIdentifier: + action: {fileID: 6454596279149084813, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + _amplitude: 1 + _duration: 0.1 +--- !u!1 &1333095558 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1333095559} + - component: {fileID: 1333095561} + - component: {fileID: 1333095560} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1333095559 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1333095558} + m_LocalRotation: {x: -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: 651063561} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.25} + m_AnchorMax: {x: 1, y: 0.75} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1333095560 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1333095558} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1333095561 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1333095558} + m_CullTransparentMesh: 0 +--- !u!1 &1338361369 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1338361370} + - component: {fileID: 1338361372} + - component: {fileID: 1338361371} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1338361370 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1338361369} + m_LocalRotation: {x: -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: 985629071} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1338361371 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1338361369} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1338361372 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1338361369} + m_CullTransparentMesh: 0 +--- !u!1 &1349632181 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1349632182} + - component: {fileID: 1349632184} + - component: {fileID: 1349632183} + 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 &1349632182 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1349632181} + m_LocalRotation: {x: 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: 129343578} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1349632183 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1349632181} + 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: '0.5 + +' + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 30 + m_fontSizeBase: 15 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 18 + m_fontSizeMax: 30 + 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: 3 + 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 &1349632184 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1349632181} + m_CullTransparentMesh: 1 +--- !u!1 &1351383506 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1351383507} + - component: {fileID: 1351383509} + - component: {fileID: 1351383508} + m_Layer: 5 + m_Name: clicked + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1351383507 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1351383506} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.25, y: 0.25, z: 0.025} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 152178807} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 33, y: 64} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1351383508 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1351383506} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1351383509 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1351383506} + m_CullTransparentMesh: 0 +--- !u!1 &1353132350 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1353132351} + - component: {fileID: 1353132354} + - component: {fileID: 1353132353} + - component: {fileID: 1353132352} + m_Layer: 5 + m_Name: DeviceInfo + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1353132351 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1353132350} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.05, y: 0.05, z: 0.05} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 2000798301} + m_RootOrder: 14 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 260, y: 0} + m_SizeDelta: {x: 10000, y: 1400} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1353132352 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1353132350} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 750fa446a80705b45a3059b8f87e989a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Property: + m_UseReference: 0 + m_Action: + m_Name: Property + m_Type: 0 + m_ExpectedControlType: + m_Id: f84292a7-bba3-4459-9093-88fe0e18958d + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: aadf2e66-314d-43ac-9af7-b97d6b2bdece + m_Path: {rightHand}/isTracked + m_Interactions: + m_Processors: + m_Groups: + m_Action: Property + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: 0} + m_RootObject: {fileID: 0} + m_TargetText: {fileID: 1353132353} +--- !u!114 &1353132353 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1353132350} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 300 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 300 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Name + + Manufacturer + + Characteristics + + Serial Number' +--- !u!222 &1353132354 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1353132350} + m_CullTransparentMesh: 0 +--- !u!1 &1353537409 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1353537410} + - component: {fileID: 1353537412} + - component: {fileID: 1353537411} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1353537410 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1353537409} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 202955361} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 56, y: 59} + m_SizeDelta: {x: 2000, y: 455.7} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1353537411 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1353537409} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 150 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 300 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Primary2DAxis + + Touch' +--- !u!222 &1353537412 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1353537409} + m_CullTransparentMesh: 0 +--- !u!1 &1353746732 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1353746733} + - component: {fileID: 1353746735} + - component: {fileID: 1353746734} + m_Layer: 5 + m_Name: Fill + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1353746733 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1353746732} + m_LocalRotation: {x: -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: 1234125457} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 10, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1353746734 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1353746732} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1353746735 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1353746732} + m_CullTransparentMesh: 0 +--- !u!1 &1359014437 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1359014438} + - component: {fileID: 1359014440} + - component: {fileID: 1359014439} + 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 &1359014438 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1359014437} + m_LocalRotation: {x: 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: 782184844} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1359014439 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1359014437} + 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: 'Disable + +' + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 30 + m_fontSizeBase: 15 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 18 + m_fontSizeMax: 30 + 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: 3 + 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 &1359014440 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1359014437} + m_CullTransparentMesh: 1 +--- !u!1 &1360444052 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1360444053} + - component: {fileID: 1360444055} + - component: {fileID: 1360444054} + m_Layer: 5 + m_Name: clicked + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1360444053 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1360444052} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.25, y: 0.25, z: 0.025} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 734007753} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 33, y: 59} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1360444054 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1360444052} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1360444055 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1360444052} + m_CullTransparentMesh: 0 +--- !u!1 &1380332190 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1380332191} + - component: {fileID: 1380332193} + - component: {fileID: 1380332192} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1380332191 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1380332190} + m_LocalRotation: {x: -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: 1827807643} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.25} + m_AnchorMax: {x: 1, y: 0.75} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1380332192 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1380332190} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1380332193 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1380332190} + m_CullTransparentMesh: 0 +--- !u!1 &1386445258 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1386445259} + - component: {fileID: 1386445261} + - component: {fileID: 1386445260} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1386445259 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1386445258} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 493389841} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 85, y: 118} + m_SizeDelta: {x: 2000, y: 455.7} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1386445260 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1386445258} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 150 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 300 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Primary + + Touch' +--- !u!222 &1386445261 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1386445258} + m_CullTransparentMesh: 0 +--- !u!1 &1393391434 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1393391435} + - component: {fileID: 1393391437} + - component: {fileID: 1393391436} + m_Layer: 5 + m_Name: Fill + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1393391435 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1393391434} + m_LocalRotation: {x: -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: 1241861374} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 10, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1393391436 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1393391434} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1393391437 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1393391434} + m_CullTransparentMesh: 0 +--- !u!1 &1400251026 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1400251027} + - component: {fileID: 1400251029} + - component: {fileID: 1400251028} + m_Layer: 5 + m_Name: clicked + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1400251027 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1400251026} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.25, y: 0.25, z: 0.025} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1276210518} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 33, y: 59} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1400251028 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1400251026} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1400251029 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1400251026} + m_CullTransparentMesh: 0 +--- !u!1 &1400357806 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1400357807} + - component: {fileID: 1400357808} + m_Layer: 5 + m_Name: Secondary2DAxisTouch + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1400357807 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1400357806} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 363280813} + - {fileID: 2124509572} + m_Father: {fileID: 2000798301} + m_RootOrder: 9 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 85, y: 37} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1400357808 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1400357806} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1879fed0e0310334fb310daf7dcc4784, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionReference: {fileID: -1925900790126126306, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + enabledColor: {r: 0, g: 1, b: 0, a: 1} + disabledColor: {r: 1, g: 0, b: 0, a: 1} + image: {fileID: 2124509573} +--- !u!1 &1404700746 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1404700747} + - component: {fileID: 1404700748} + m_Layer: 5 + m_Name: Grip + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1404700747 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1404700746} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1734618713} + - {fileID: 1055307310} + m_Father: {fileID: 2000798301} + m_RootOrder: 10 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -64.3, y: 68.5} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1404700748 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1404700746} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 47dc0f697f292694f85e0ea7d8eab70f, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionReference: {fileID: -5194266436686895582, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + slider: {fileID: 1734618714} +--- !u!1 &1407802558 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1407802559} + - component: {fileID: 1407802561} + - component: {fileID: 1407802560} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1407802559 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1407802558} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 493389841} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 45, y: 120} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1407802560 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1407802558} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1407802561 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1407802558} + m_CullTransparentMesh: 0 +--- !u!1 &1429239427 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1429239428} + - component: {fileID: 1429239429} + m_Layer: 5 + m_Name: xSlider + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1429239428 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1429239427} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 738847761} + - {fileID: 599418061} + - {fileID: 754624350} + m_Father: {fileID: 1702208610} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + 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: 160, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1429239429 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1429239427} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 67db9e8f0e2ae9c40bc1e2b64352a6b4, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1282963597} + m_FillRect: {fileID: 1756695445} + m_HandleRect: {fileID: 1282963596} + m_Direction: 0 + m_MinValue: -1 + m_MaxValue: 1 + m_WholeNumbers: 0 + m_Value: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &1439845566 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1439845567} + - component: {fileID: 1439845568} + m_Layer: 5 + m_Name: Touched + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1439845567 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1439845566} + m_LocalRotation: {x: -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: 1883017219} + m_Father: {fileID: 1675474516} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + 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!114 &1439845568 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1439845566} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1879fed0e0310334fb310daf7dcc4784, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionReference: {fileID: -382439264014408777, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + enabledColor: {r: 0, g: 1, b: 0, a: 1} + disabledColor: {r: 1, g: 0, b: 0, a: 1} + image: {fileID: 1883017220} +--- !u!1 &1443860185 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1443860186} + - component: {fileID: 1443860188} + - component: {fileID: 1443860187} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1443860186 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1443860185} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 519017180} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 85, y: 118} + m_SizeDelta: {x: 2000, y: 455.7} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1443860187 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1443860185} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 150 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 300 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Primary + + Press' +--- !u!222 &1443860188 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1443860185} + m_CullTransparentMesh: 0 +--- !u!1 &1445953865 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1445953866} + - component: {fileID: 1445953868} + - component: {fileID: 1445953867} + m_Layer: 5 + m_Name: clicked + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1445953866 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1445953865} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.25, y: 0.25, z: 0.025} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1599684337} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 33, y: 64} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1445953867 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1445953865} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1445953868 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1445953865} + m_CullTransparentMesh: 0 +--- !u!1 &1449319990 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1449319991} + - component: {fileID: 1449319993} + - component: {fileID: 1449319992} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1449319991 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1449319990} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1853779096} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 88.5, y: 0} + m_SizeDelta: {x: 2000, y: 455.7} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1449319992 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1449319990} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 300 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 3 + m_MaxSize: 300 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: "Secondary2DAxis\xDF\xE5" +--- !u!222 &1449319993 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1449319990} + m_CullTransparentMesh: 0 +--- !u!1 &1474588656 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1474588657} + m_Layer: 5 + m_Name: Handle Slide Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1474588657 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1474588656} + m_LocalRotation: {x: -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: 1679149130} + m_Father: {fileID: 1962407545} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1475348422 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1475348423} + - component: {fileID: 1475348425} + - component: {fileID: 1475348424} + m_Layer: 5 + m_Name: touched + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1475348423 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1475348422} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.25, y: 0.25, z: 0.025} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 48056034} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 62, y: -3} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1475348424 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1475348422} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1475348425 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1475348422} + m_CullTransparentMesh: 0 +--- !u!1 &1493209258 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1493209259} + - component: {fileID: 1493209261} + - component: {fileID: 1493209260} + m_Layer: 5 + m_Name: Fill + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1493209259 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1493209258} + m_LocalRotation: {x: -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: 604210402} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 10, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1493209260 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1493209258} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1493209261 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1493209258} + m_CullTransparentMesh: 0 +--- !u!1 &1505236049 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1505236050} + - component: {fileID: 1505236052} + - component: {fileID: 1505236051} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1505236050 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1505236049} + m_LocalRotation: {x: -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: 984717217} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1505236051 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1505236049} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1505236052 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1505236049} + m_CullTransparentMesh: 0 +--- !u!1 &1506951201 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1506951202} + - component: {fileID: 1506951204} + - component: {fileID: 1506951203} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1506951202 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1506951201} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1786380874} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 88.5, y: 0} + m_SizeDelta: {x: 2000, y: 455.7} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1506951203 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1506951201} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 300 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 3 + m_MaxSize: 300 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Primary2DAxis +--- !u!222 &1506951204 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1506951201} + m_CullTransparentMesh: 0 +--- !u!1 &1507841249 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1507841254} + - component: {fileID: 1507841253} + - component: {fileID: 1507841252} + - component: {fileID: 1507841251} + - component: {fileID: 1507841250} + m_Layer: 0 + m_Name: PlayerRig + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1507841250 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1507841249} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1caf898641806b3448ff86ad2e1b0727, type: 3} + m_Name: + m_EditorClassIdentifier: + m_GazeRaycast: + Enabled: 1 + m_ControllerRaycast: + Enabled: 1 + m_HandRaycast: + Enabled: 1 +--- !u!114 &1507841251 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1507841249} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b6292cddb0024284ea1f3c804ace5d87, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionAsset: {fileID: -944628639613478452, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} +--- !u!114 &1507841252 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1507841249} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6a579b9c6142ede44a4a991db9f3f279, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionReference: + m_UseReference: 0 + m_Action: + m_Name: Action Reference + m_Type: 0 + m_ExpectedControlType: + m_Id: 89d6dca9-4d0a-456f-bf8f-da8775262884 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 66bc0fcc-9478-4663-915d-8eb928c886bc + m_Path: /pose/isTracked + m_Interactions: + m_Processors: + m_Groups: + m_Action: Action Reference + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: 0} + m_TargetGameobject: {fileID: 403309408} +--- !u!114 &1507841253 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1507841249} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: abafcbe629b1aa54886e2789b79365f4, type: 3} + m_Name: + m_EditorClassIdentifier: + m_RecenteredImage: {fileID: 0} + m_RecenteredOffColor: {r: 0, g: 0, b: 0, a: 1} + m_RecenteredColor: {r: 1, g: 0, b: 0, a: 1} + m_RecenteredColorResetTime: 5 + m_CurrentTrackingOriginMode: 0 + m_CurrentTrackingOriginModeDisplay: {fileID: 0} + m_DesiredTrackingOriginMode: 1 + m_SupportedTrackingOriginModes: 0 +--- !u!4 &1507841254 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1507841249} + m_LocalRotation: {x: -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: 403309410} + - {fileID: 1965683395} + - {fileID: 412766872} + - {fileID: 1318287237} + m_Father: {fileID: 0} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1515106836 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1515106837} + - component: {fileID: 1515106839} + - component: {fileID: 1515106838} + 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 &1515106837 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1515106836} + m_LocalRotation: {x: 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: 1884517997} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1515106838 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1515106836} + 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: '1.0 + +' + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 30 + m_fontSizeBase: 15 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 18 + m_fontSizeMax: 30 + 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: 3 + 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 &1515106839 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1515106836} + m_CullTransparentMesh: 1 +--- !u!1 &1522350615 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1522350616} + m_Layer: 5 + m_Name: Fill Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1522350616 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1522350615} + m_LocalRotation: {x: -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: 2036483776} + m_Father: {fileID: 2103217998} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.25} + m_AnchorMax: {x: 1, y: 0.75} + m_AnchoredPosition: {x: -5, y: 0} + m_SizeDelta: {x: -20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1001 &1540573410 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 1199194112} + m_Modifications: + - target: {fileID: 3201029004716767610, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_Mesh + value: + objectReference: {fileID: 3613567641014311022, guid: 815c9e4802ddea645a37bd99f011c9b4, type: 3} + - target: {fileID: 4346727372943234170, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.y + value: 0.2 + objectReference: {fileID: 0} + - target: {fileID: 4346727372952809589, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.y + value: 0.2 + objectReference: {fileID: 0} + - target: {fileID: 4346727373925079742, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.y + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 4346727373925079742, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.z + value: 9.8 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823546882, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_Name + value: PoseMarker + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.z + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6251018130860582685, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_Mesh + value: + objectReference: {fileID: 3613567641014311022, guid: 815c9e4802ddea645a37bd99f011c9b4, type: 3} + - target: {fileID: 8595007410106638205, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_Mesh + value: + objectReference: {fileID: 3613567641014311022, guid: 815c9e4802ddea645a37bd99f011c9b4, type: 3} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} +--- !u!4 &1540573411 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + m_PrefabInstance: {fileID: 1540573410} + m_PrefabAsset: {fileID: 0} +--- !u!1 &1555408135 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1555408136} + - component: {fileID: 1555408138} + - component: {fileID: 1555408137} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1555408136 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1555408135} + m_LocalRotation: {x: -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: 234836316} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.25} + m_AnchorMax: {x: 1, y: 0.75} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1555408137 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1555408135} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1555408138 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1555408135} + m_CullTransparentMesh: 0 +--- !u!1 &1578399587 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1578399588} + - component: {fileID: 1578399590} + - component: {fileID: 1578399589} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1578399588 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1578399587} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1835541129} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 85, y: 118} + m_SizeDelta: {x: 2000, y: 455.7} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1578399589 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1578399587} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 150 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 300 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Secondary + + Press' +--- !u!222 &1578399590 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1578399587} + m_CullTransparentMesh: 0 +--- !u!1 &1584053135 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1584053136} + - component: {fileID: 1584053138} + - component: {fileID: 1584053137} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1584053136 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1584053135} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 132359200} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 85, y: 118} + m_SizeDelta: {x: 2000, y: 455.7} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1584053137 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1584053135} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 150 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 300 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Parking + + Touch' +--- !u!222 &1584053138 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1584053135} + m_CullTransparentMesh: 0 +--- !u!1 &1599684336 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1599684337} + - component: {fileID: 1599684338} + m_Layer: 5 + m_Name: Secondary2DAxisClick + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1599684337 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1599684336} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 28729982} + - {fileID: 1445953866} + m_Father: {fileID: 1895019948} + m_RootOrder: 8 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 100, y: 70} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1599684338 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1599684336} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1879fed0e0310334fb310daf7dcc4784, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionReference: {fileID: -7428500947354388255, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + enabledColor: {r: 0, g: 1, b: 0, a: 1} + disabledColor: {r: 1, g: 0, b: 0, a: 1} + image: {fileID: 1445953867} +--- !u!1 &1607231215 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1607231220} + - component: {fileID: 1607231219} + - component: {fileID: 1607231218} + - component: {fileID: 1607231217} + - component: {fileID: 1607231216} + m_Layer: 5 + m_Name: Menu2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1607231216 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1607231215} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: afe3cda3e244f60419474164d6ba3b0b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 0 + m_CheckFor2DOcclusion: 0 + m_CheckFor3DOcclusion: 0 + m_MaxDistance: 1000 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 0 +--- !u!114 &1607231217 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1607231215} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &1607231218 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1607231215} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 1 +--- !u!223 &1607231219 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1607231215} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 1027415646} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: -1 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &1607231220 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1607231215} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 534} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 842449442} + m_Father: {fileID: 0} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 551, y: 102} + m_SizeDelta: {x: 400, y: 300} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1610439958 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1610439959} + - component: {fileID: 1610439961} + - component: {fileID: 1610439960} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1610439959 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1610439958} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.099999994, y: 0.099999994, z: 0.099999994} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 665743635} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -0, y: 30} + m_SizeDelta: {x: 2000, y: 455.7} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1610439960 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1610439958} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 300 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 300 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Grip +--- !u!222 &1610439961 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1610439958} + m_CullTransparentMesh: 0 +--- !u!1 &1628544355 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1628544356} + - component: {fileID: 1628544358} + - component: {fileID: 1628544357} + m_Layer: 5 + m_Name: Fill + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1628544356 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1628544355} + m_LocalRotation: {x: -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: 420291694} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 10, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1628544357 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1628544355} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1628544358 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1628544355} + m_CullTransparentMesh: 0 +--- !u!1 &1632480870 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1632480871} + - component: {fileID: 1632480872} + m_Layer: 5 + m_Name: Touched + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1632480871 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1632480870} + m_LocalRotation: {x: -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: 1787898568} + m_Father: {fileID: 1168559736} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1632480872 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1632480870} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1879fed0e0310334fb310daf7dcc4784, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionReference: {fileID: 5862474197572769877, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + enabledColor: {r: 0, g: 1, b: 0, a: 1} + disabledColor: {r: 1, g: 0, b: 0, a: 1} + image: {fileID: 1787898569} +--- !u!1 &1633469201 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1633469202} + m_Layer: 0 + m_Name: VisibleElements + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1633469202 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1633469201} + m_LocalRotation: {x: 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: 1124503100} + - {fileID: 1904389849} + m_Father: {fileID: 1318287237} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1637098209 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1637098210} + - component: {fileID: 1637098212} + - component: {fileID: 1637098211} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1637098210 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1637098209} + m_LocalRotation: {x: -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: 926198744} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.25} + m_AnchorMax: {x: 1, y: 0.75} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1637098211 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1637098209} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1637098212 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1637098209} + m_CullTransparentMesh: 0 +--- !u!1 &1639142702 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1639142703} + - component: {fileID: 1639142705} + - component: {fileID: 1639142704} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1639142703 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1639142702} + m_LocalRotation: {x: -0, y: -0, z: 0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.25, y: 0.25, z: 0.25} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 52979419} + m_Father: {fileID: 88930301} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1639142704 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1639142702} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1639142705 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1639142702} + m_CullTransparentMesh: 0 +--- !u!1 &1647796919 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1647796920} + - component: {fileID: 1647796921} + m_Layer: 5 + m_Name: ParkingTouch + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1647796920 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1647796919} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1918457193} + - {fileID: 1682578394} + m_Father: {fileID: 1895019948} + m_RootOrder: 13 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: -171} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1647796921 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1647796919} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1879fed0e0310334fb310daf7dcc4784, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionReference: {fileID: 1636192856678293987, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + enabledColor: {r: 0, g: 1, b: 0, a: 1} + disabledColor: {r: 1, g: 0, b: 0, a: 1} + image: {fileID: 1682578395} +--- !u!1 &1652216110 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1652216111} + - component: {fileID: 1652216113} + - component: {fileID: 1652216112} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1652216111 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1652216110} + m_LocalRotation: {x: -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: 450299384} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.25} + m_AnchorMax: {x: 1, y: 0.75} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1652216112 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1652216110} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1652216113 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1652216110} + m_CullTransparentMesh: 0 +--- !u!1 &1675474515 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1675474516} + - component: {fileID: 1675474518} + - component: {fileID: 1675474517} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1675474516 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1675474515} + m_LocalRotation: {x: -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: 1439845567} + m_Father: {fileID: 1009605480} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1675474517 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1675474515} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1675474518 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1675474515} + m_CullTransparentMesh: 0 +--- !u!1 &1679149129 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1679149130} + - component: {fileID: 1679149132} + - component: {fileID: 1679149131} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1679149130 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1679149129} + m_LocalRotation: {x: -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: 1474588657} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1679149131 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1679149129} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1679149132 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1679149129} + m_CullTransparentMesh: 0 +--- !u!1 &1682578393 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1682578394} + - component: {fileID: 1682578396} + - component: {fileID: 1682578395} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1682578394 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1682578393} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1647796920} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 45, y: 120} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1682578395 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1682578393} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1682578396 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1682578393} + m_CullTransparentMesh: 0 +--- !u!1 &1700335083 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1700335084} + m_Layer: 5 + m_Name: Fill Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1700335084 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1700335083} + m_LocalRotation: {x: -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: 1777049647} + m_Father: {fileID: 1734618713} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.25} + m_AnchorMax: {x: 1, y: 0.75} + m_AnchoredPosition: {x: -5, y: 0} + m_SizeDelta: {x: -20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1702208609 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1702208610} + - component: {fileID: 1702208611} + m_Layer: 5 + m_Name: Secondary2DAxis + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1702208610 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1702208609} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 362364443} + - {fileID: 1429239428} + - {fileID: 1962407545} + m_Father: {fileID: 2000798301} + m_RootOrder: 7 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 100, y: 70} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1702208611 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1702208609} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 68ffad370daf7de4097bcd7cb411838c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionReference: {fileID: 5748190851293166289, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + xAxisSlider: {fileID: 1429239429} + yAxisSlider: {fileID: 1962407546} +--- !u!1 &1705807085 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1705807086} + - component: {fileID: 1705807088} + - component: {fileID: 1705807087} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1705807086 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1705807085} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 477576974} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 45, y: 120} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1705807087 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1705807085} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1705807088 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1705807085} + m_CullTransparentMesh: 0 +--- !u!1 &1734618712 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1734618713} + - component: {fileID: 1734618714} + m_Layer: 5 + m_Name: AxisValue + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1734618713 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1734618712} + m_LocalRotation: {x: -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: 377467458} + - {fileID: 1700335084} + - {fileID: 181363875} + m_Father: {fileID: 1404700747} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 160, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1734618714 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1734618712} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 67db9e8f0e2ae9c40bc1e2b64352a6b4, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1168559737} + m_FillRect: {fileID: 1777049647} + m_HandleRect: {fileID: 1168559736} + m_Direction: 0 + m_MinValue: 0 + m_MaxValue: 1 + m_WholeNumbers: 0 + m_Value: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &1752413236 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1752413237} + - component: {fileID: 1752413238} + m_Layer: 5 + m_Name: PrimaryButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1752413237 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1752413236} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 567801070} + - {fileID: 952259560} + m_Father: {fileID: 1895019948} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 4} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1752413238 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1752413236} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1879fed0e0310334fb310daf7dcc4784, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionReference: {fileID: 5113088590926889233, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + enabledColor: {r: 0, g: 1, b: 0, a: 1} + disabledColor: {r: 1, g: 0, b: 0, a: 1} + image: {fileID: 952259561} +--- !u!1 &1756695444 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1756695445} + - component: {fileID: 1756695447} + - component: {fileID: 1756695446} + m_Layer: 5 + m_Name: Fill + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1756695445 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1756695444} + m_LocalRotation: {x: -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: 599418061} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 10, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1756695446 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1756695444} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1756695447 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1756695444} + m_CullTransparentMesh: 0 +--- !u!1 &1769057601 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1769057602} + - component: {fileID: 1769057604} + - component: {fileID: 1769057603} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1769057602 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1769057601} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.099999994, y: 0.099999994, z: 0.099999994} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 271055095} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -0, y: 30} + m_SizeDelta: {x: 2000, y: 455.7} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1769057603 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1769057601} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 300 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 300 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Trigger +--- !u!222 &1769057604 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1769057601} + m_CullTransparentMesh: 0 +--- !u!1 &1777049646 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1777049647} + - component: {fileID: 1777049649} + - component: {fileID: 1777049648} + m_Layer: 5 + m_Name: Fill + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1777049647 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1777049646} + m_LocalRotation: {x: -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: 1700335084} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 10, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1777049648 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1777049646} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1777049649 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1777049646} + m_CullTransparentMesh: 0 +--- !u!1 &1786380873 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1786380874} + - component: {fileID: 1786380875} + m_Layer: 5 + m_Name: Primary2DAxis + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1786380874 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1786380873} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1506951202} + - {fileID: 234836316} + - {fileID: 2103217998} + m_Father: {fileID: 2000798301} + 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: 100, y: -70} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1786380875 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1786380873} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 68ffad370daf7de4097bcd7cb411838c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionReference: {fileID: 3396702884570900202, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + xAxisSlider: {fileID: 234836317} + yAxisSlider: {fileID: 2103217999} +--- !u!1 &1787898567 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1787898568} + - component: {fileID: 1787898570} + - component: {fileID: 1787898569} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1787898568 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1787898567} + m_LocalRotation: {x: -0, y: -0, z: 0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.25, y: 0.25, z: 0.25} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1187069174} + m_Father: {fileID: 1632480871} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1787898569 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1787898567} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1787898570 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1787898567} + m_CullTransparentMesh: 0 +--- !u!1 &1796106020 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1796106021} + m_Layer: 5 + m_Name: Fill Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1796106021 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1796106020} + m_LocalRotation: {x: -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: 361058385} + m_Father: {fileID: 651063561} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.25} + m_AnchorMax: {x: 1, y: 0.75} + m_AnchoredPosition: {x: -5, y: 0} + m_SizeDelta: {x: -20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1813311548 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1813311549} + - component: {fileID: 1813311551} + - component: {fileID: 1813311550} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1813311549 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1813311548} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 663512792} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 85, y: 118} + m_SizeDelta: {x: 2000, y: 455.7} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1813311550 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1813311548} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 300 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 300 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Menu +--- !u!222 &1813311551 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1813311548} + m_CullTransparentMesh: 0 +--- !u!1 &1827807642 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1827807643} + - component: {fileID: 1827807644} + m_Layer: 5 + m_Name: ySlider + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1827807643 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1827807642} + m_LocalRotation: {x: 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: 1380332191} + - {fileID: 972771893} + - {fileID: 500460512} + m_Father: {fileID: 1853779096} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 160, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1827807644 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1827807642} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 67db9e8f0e2ae9c40bc1e2b64352a6b4, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 928743862} + m_FillRect: {fileID: 792942483} + m_HandleRect: {fileID: 928743861} + m_Direction: 0 + m_MinValue: -1 + m_MaxValue: 1 + m_WholeNumbers: 0 + m_Value: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &1828502048 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1828502049} + - component: {fileID: 1828502051} + - component: {fileID: 1828502050} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1828502049 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1828502048} + m_LocalRotation: {x: -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: 140148530} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1828502050 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1828502048} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1828502051 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1828502048} + m_CullTransparentMesh: 0 +--- !u!1 &1832899316 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1832899317} + - component: {fileID: 1832899320} + - component: {fileID: 1832899319} + - component: {fileID: 1832899318} + m_Layer: 5 + m_Name: DeviceInfo + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1832899317 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1832899316} + m_LocalRotation: {x: -0, y: -0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.05, y: 0.05, z: 0.05} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1895019948} + m_RootOrder: 14 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 260, y: 0} + m_SizeDelta: {x: 10000, y: 1400} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1832899318 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1832899316} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 750fa446a80705b45a3059b8f87e989a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Property: + m_UseReference: 0 + m_Action: + m_Name: Property + m_Type: 0 + m_ExpectedControlType: + m_Id: c3a7da97-f536-4cb8-9a96-bd7d23c21c61 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: bd1e38d1-6c12-40ae-a427-075c4f5eb830 + m_Path: {leftHand}/isTracked + m_Interactions: + m_Processors: + m_Groups: + m_Action: Property + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: 0} + m_RootObject: {fileID: 0} + m_TargetText: {fileID: 1832899319} +--- !u!114 &1832899319 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1832899316} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 300 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 300 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Name + + Manufacturer + + Characteristics + + Serial Number' +--- !u!222 &1832899320 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1832899316} + m_CullTransparentMesh: 0 +--- !u!1 &1835541128 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1835541129} + - component: {fileID: 1835541130} + m_Layer: 5 + m_Name: SecondaryButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1835541129 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1835541128} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1578399588} + - {fileID: 346176065} + m_Father: {fileID: 2000798301} + m_RootOrder: 11 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: -95} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1835541130 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1835541128} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1879fed0e0310334fb310daf7dcc4784, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionReference: {fileID: -1644001223835636349, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + enabledColor: {r: 0, g: 1, b: 0, a: 1} + disabledColor: {r: 1, g: 0, b: 0, a: 1} + image: {fileID: 346176066} +--- !u!1 &1852084996 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1852084997} + - component: {fileID: 1852084999} + - component: {fileID: 1852084998} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1852084997 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1852084996} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 242984141} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 45, y: 120} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1852084998 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1852084996} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1852084999 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1852084996} + m_CullTransparentMesh: 0 +--- !u!1 &1853779095 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1853779096} + - component: {fileID: 1853779097} + m_Layer: 5 + m_Name: Secondary2DAxis + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1853779096 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1853779095} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1449319991} + - {fileID: 188389948} + - {fileID: 1827807643} + m_Father: {fileID: 1895019948} + m_RootOrder: 7 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 100, y: 70} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1853779097 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1853779095} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 68ffad370daf7de4097bcd7cb411838c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionReference: {fileID: 4150019624855575819, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + xAxisSlider: {fileID: 188389949} + yAxisSlider: {fileID: 1827807644} +--- !u!1 &1878359650 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1878359651} + m_Layer: 5 + m_Name: Fill Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1878359651 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1878359650} + m_LocalRotation: {x: -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: 671440993} + m_Father: {fileID: 926198744} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.25} + m_AnchorMax: {x: 1, y: 0.75} + m_AnchoredPosition: {x: -5, y: 0} + m_SizeDelta: {x: -20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1883017218 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1883017219} + - component: {fileID: 1883017221} + - component: {fileID: 1883017220} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1883017219 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1883017218} + m_LocalRotation: {x: -0, y: -0, z: 0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.25, y: 0.25, z: 0.25} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 94066322} + m_Father: {fileID: 1439845567} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1883017220 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1883017218} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1883017221 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1883017218} + m_CullTransparentMesh: 0 +--- !u!1 &1884517996 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1884517997} + - component: {fileID: 1884518000} + - component: {fileID: 1884517999} + - component: {fileID: 1884517998} + m_Layer: 5 + m_Name: BTN1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1884517997 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1884517996} + m_LocalRotation: {x: 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: 1515106837} + m_Father: {fileID: 842449442} + 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: 45} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1884517998 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1884517996} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1884517999} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1975274093} + m_TargetAssemblyTypeName: Actions, VIVE.OpenXR.Samples + m_MethodName: SetLevel1 + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!114 &1884517999 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1884517996} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1884518000 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1884517996} + m_CullTransparentMesh: 1 +--- !u!1 &1895019947 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1895019948} + - component: {fileID: 1895019951} + - component: {fileID: 1895019950} + - component: {fileID: 1895019949} + m_Layer: 5 + m_Name: ActionMapInfo + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1895019948 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1895019947} + m_LocalRotation: {x: 0.5, y: -0.5, z: 0.5, w: 0.5} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.001, y: 0.001, z: 0.001} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 884071218} + - {fileID: 1752413237} + - {fileID: 493389841} + - {fileID: 477576974} + - {fileID: 22659357} + - {fileID: 734007753} + - {fileID: 1276210518} + - {fileID: 1853779096} + - {fileID: 1599684337} + - {fileID: 48056034} + - {fileID: 665743635} + - {fileID: 314711929} + - {fileID: 2112225941} + - {fileID: 1647796920} + - {fileID: 1832899317} + - {fileID: 302010308} + m_Father: {fileID: 808456831} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 90, y: -90, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0.005} + m_SizeDelta: {x: 1226, y: 740} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1895019949 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1895019947} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &1895019950 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1895019947} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 1 +--- !u!223 &1895019951 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1895019947} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 1027415646} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!1 &1904389848 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1904389849} + - component: {fileID: 1904389850} + m_Layer: 0 + m_Name: Aim + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1904389849 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1904389848} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.2, y: 0.1, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1285870207} + - {fileID: 584592337} + m_Father: {fileID: 1633469202} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1904389850 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1904389848} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c2fadf230d1919748a9aa21d40f74619, type: 3} + m_Name: + m_EditorClassIdentifier: + m_TrackingType: 0 + m_UpdateType: 0 + m_PositionInput: + m_UseReference: 1 + m_Action: + m_Name: Position + m_Type: 0 + m_ExpectedControlType: + m_Id: 463dd22d-e68b-4bf2-9c64-eadb9cb595c7 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 433893d2-3f66-4fa9-8aab-0462fb8ffac4 + m_Path: {RightHand}/pointerPosition + m_Interactions: + m_Processors: + m_Groups: + m_Action: Position + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: -5730229631511484051, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_RotationInput: + m_UseReference: 1 + m_Action: + m_Name: Rotation + m_Type: 0 + m_ExpectedControlType: + m_Id: 81472b8b-1d39-4f4f-8bd8-2a8ec5384508 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 818c41bc-76a6-47ef-bc96-b201ee90f995 + m_Path: {RightHand}/pointerRotation + m_Interactions: + m_Processors: + m_Groups: + m_Action: Rotation + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: -5246335118593862002, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_PositionAction: + m_Name: Position + m_Type: 0 + m_ExpectedControlType: + m_Id: 463dd22d-e68b-4bf2-9c64-eadb9cb595c7 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 433893d2-3f66-4fa9-8aab-0462fb8ffac4 + m_Path: {RightHand}/pointerPosition + m_Interactions: + m_Processors: + m_Groups: + m_Action: Position + m_Flags: 0 + m_Flags: 0 + m_RotationAction: + m_Name: Rotation + m_Type: 0 + m_ExpectedControlType: + m_Id: 81472b8b-1d39-4f4f-8bd8-2a8ec5384508 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 818c41bc-76a6-47ef-bc96-b201ee90f995 + m_Path: {RightHand}/pointerRotation + m_Interactions: + m_Processors: + m_Groups: + m_Action: Rotation + m_Flags: 0 + m_Flags: 0 + m_HasMigratedActions: 1 +--- !u!1 &1905042551 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1905042552} + - component: {fileID: 1905042554} + - component: {fileID: 1905042553} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1905042552 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1905042551} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 2112225941} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 45, y: 120} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1905042553 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1905042551} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1905042554 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1905042551} + m_CullTransparentMesh: 0 +--- !u!1 &1911681172 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1911681173} + - component: {fileID: 1911681174} + m_Layer: 5 + m_Name: ySlider + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1911681173 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1911681172} + m_LocalRotation: {x: 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: 705274132} + - {fileID: 590164717} + - {fileID: 140148530} + m_Father: {fileID: 22659357} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 160, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1911681174 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1911681172} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 67db9e8f0e2ae9c40bc1e2b64352a6b4, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1828502050} + m_FillRect: {fileID: 147340397} + m_HandleRect: {fileID: 1828502049} + m_Direction: 0 + m_MinValue: -1 + m_MaxValue: 1 + m_WholeNumbers: 0 + m_Value: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &1918457192 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1918457193} + - component: {fileID: 1918457195} + - component: {fileID: 1918457194} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1918457193 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1918457192} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1647796920} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 85, y: 118} + m_SizeDelta: {x: 2000, y: 455.7} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1918457194 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1918457192} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 150 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 300 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Parking + + Touch' +--- !u!222 &1918457195 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1918457192} + m_CullTransparentMesh: 0 +--- !u!1 &1927509542 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1927509543} + m_Layer: 5 + m_Name: Handle Slide Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1927509543 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1927509542} + m_LocalRotation: {x: -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: 940804507} + m_Father: {fileID: 651063561} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1932757387 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1932757388} + - component: {fileID: 1932757391} + - component: {fileID: 1932757390} + - component: {fileID: 1932757389} + m_Layer: 5 + m_Name: BTNQuality + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1932757388 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1932757387} + m_LocalRotation: {x: -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: 160825840} + m_Father: {fileID: 687116405} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 45} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1932757389 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1932757387} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1932757390} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1975274093} + m_TargetAssemblyTypeName: Actions, Assembly-CSharp + m_MethodName: SetConfig3 + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!114 &1932757390 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1932757387} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1932757391 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1932757387} + m_CullTransparentMesh: 1 +--- !u!1 &1962407544 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1962407545} + - component: {fileID: 1962407546} + m_Layer: 5 + m_Name: ySlider + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1962407545 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1962407544} + m_LocalRotation: {x: 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: 9994869} + - {fileID: 1241861374} + - {fileID: 1474588657} + m_Father: {fileID: 1702208610} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 160, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1962407546 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1962407544} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 67db9e8f0e2ae9c40bc1e2b64352a6b4, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1679149131} + m_FillRect: {fileID: 1393391435} + m_HandleRect: {fileID: 1679149130} + m_Direction: 0 + m_MinValue: -1 + m_MaxValue: 1 + m_WholeNumbers: 0 + m_Value: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &1965683394 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1965683395} + - component: {fileID: 1965683396} + m_Layer: 0 + m_Name: Head + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1965683395 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1965683394} + m_LocalRotation: {x: 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: 1027415648} + m_Father: {fileID: 1507841254} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1965683396 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1965683394} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c2fadf230d1919748a9aa21d40f74619, type: 3} + m_Name: + m_EditorClassIdentifier: + m_TrackingType: 0 + m_UpdateType: 0 + m_PositionInput: + m_UseReference: 0 + m_Action: + m_Name: Position + m_Type: 0 + m_ExpectedControlType: + m_Id: 27e93ac4-1a8d-4587-aaae-4b08826ac82f + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 999d0eef-dcb5-4f3b-a509-22da9f558d12 + m_Path: /centerEyePosition + m_Interactions: + m_Processors: + m_Groups: + m_Action: Position + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: 0} + m_RotationInput: + m_UseReference: 0 + m_Action: + m_Name: Rotation + m_Type: 0 + m_ExpectedControlType: + m_Id: f061ad31-8802-4a77-8c67-cbdab9a06599 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: e3da2ddc-60a9-45c0-944f-71a4259458e6 + m_Path: /centerEyeRotation + m_Interactions: + m_Processors: + m_Groups: + m_Action: Rotation + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: 0} + m_PositionAction: + m_Name: Position + m_Type: 0 + m_ExpectedControlType: + m_Id: 27e93ac4-1a8d-4587-aaae-4b08826ac82f + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 999d0eef-dcb5-4f3b-a509-22da9f558d12 + m_Path: /centerEyePosition + m_Interactions: + m_Processors: + m_Groups: + m_Action: Position + m_Flags: 0 + m_Flags: 0 + m_RotationAction: + m_Name: Rotation + m_Type: 0 + m_ExpectedControlType: + m_Id: f061ad31-8802-4a77-8c67-cbdab9a06599 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: e3da2ddc-60a9-45c0-944f-71a4259458e6 + m_Path: /centerEyeRotation + m_Interactions: + m_Processors: + m_Groups: + m_Action: Rotation + m_Flags: 0 + m_Flags: 0 + m_HasMigratedActions: 1 +--- !u!1001 &1966680058 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 808456831} + m_Modifications: + - target: {fileID: 4346727374823546882, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_Name + value: PoseMarker + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.z + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} +--- !u!4 &1966680059 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + m_PrefabInstance: {fileID: 1966680058} + m_PrefabAsset: {fileID: 0} +--- !u!1 &1975274092 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1975274094} + - component: {fileID: 1975274093} + m_Layer: 0 + m_Name: Actions + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1975274093 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1975274092} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 236ba43e00db447429d508f9ae943b68, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!4 &1975274094 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1975274092} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 4.140381, y: 1.4993911, z: 5} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1982292787 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1982292788} + - component: {fileID: 1982292790} + - component: {fileID: 1982292789} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1982292788 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1982292787} + m_LocalRotation: {x: -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: 88930301} + m_Father: {fileID: 913954204} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1982292789 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1982292787} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1982292790 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1982292787} + m_CullTransparentMesh: 0 +--- !u!1 &2000798300 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2000798301} + - component: {fileID: 2000798304} + - component: {fileID: 2000798303} + - component: {fileID: 2000798302} + m_Layer: 5 + m_Name: ActionMapInfo + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2000798301 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2000798300} + m_LocalRotation: {x: 0.5, y: -0.5, z: 0.5, w: 0.5} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.001, y: 0.001, z: 0.001} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 271055095} + - {fileID: 519017180} + - {fileID: 2109822211} + - {fileID: 663512792} + - {fileID: 1786380874} + - {fileID: 88397580} + - {fileID: 202955361} + - {fileID: 1702208610} + - {fileID: 152178807} + - {fileID: 1400357807} + - {fileID: 1404700747} + - {fileID: 1835541129} + - {fileID: 242984141} + - {fileID: 132359200} + - {fileID: 1353132351} + - {fileID: 2041842842} + m_Father: {fileID: 1124503100} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 90, y: -90, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0.005} + m_SizeDelta: {x: 1226, y: 740} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2000798302 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2000798300} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &2000798303 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2000798300} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 1 +--- !u!223 &2000798304 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2000798300} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 1027415646} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!1 &2036483775 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2036483776} + - component: {fileID: 2036483778} + - component: {fileID: 2036483777} + m_Layer: 5 + m_Name: Fill + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2036483776 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2036483775} + m_LocalRotation: {x: -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: 1522350616} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 10, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2036483777 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2036483775} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &2036483778 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2036483775} + m_CullTransparentMesh: 0 +--- !u!1 &2041842841 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2041842842} + - component: {fileID: 2041842844} + - component: {fileID: 2041842843} + m_Layer: 5 + m_Name: PoseName + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2041842842 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2041842841} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.05, y: 0.05, z: 0.05} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 2000798301} + m_RootOrder: 15 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -25, y: 30} + m_SizeDelta: {x: 1000, y: 1000} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2041842843 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2041842841} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 300 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 3 + m_MaxSize: 300 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Grip Pose +--- !u!222 &2041842844 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2041842841} + m_CullTransparentMesh: 0 +--- !u!1 &2046429201 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2046429202} + - component: {fileID: 2046429204} + - component: {fileID: 2046429203} + m_Layer: 5 + m_Name: PoseName + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2046429202 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2046429201} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.05, y: 0.05, z: 0.05} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1285870207} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -25, y: -30} + m_SizeDelta: {x: 1000, y: 1000} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2046429203 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2046429201} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 300 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 3 + m_MaxSize: 300 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Aim Pose +--- !u!222 &2046429204 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2046429201} + m_CullTransparentMesh: 0 +--- !u!1 &2103217997 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2103217998} + - component: {fileID: 2103217999} + m_Layer: 5 + m_Name: ySlider + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2103217998 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2103217997} + m_LocalRotation: {x: 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: 992594520} + - {fileID: 1522350616} + - {fileID: 985629071} + m_Father: {fileID: 1786380874} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 160, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2103217999 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2103217997} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 67db9e8f0e2ae9c40bc1e2b64352a6b4, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1338361371} + m_FillRect: {fileID: 2036483776} + m_HandleRect: {fileID: 1338361370} + m_Direction: 0 + m_MinValue: -1 + m_MaxValue: 1 + m_WholeNumbers: 0 + m_Value: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &2109822210 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2109822211} + - component: {fileID: 2109822212} + m_Layer: 5 + m_Name: PrimaryTouch + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2109822211 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2109822210} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 916444926} + - {fileID: 501104678} + m_Father: {fileID: 2000798301} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: -27} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2109822212 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2109822210} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1879fed0e0310334fb310daf7dcc4784, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionReference: {fileID: -4964576040970502374, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + enabledColor: {r: 0, g: 1, b: 0, a: 1} + disabledColor: {r: 1, g: 0, b: 0, a: 1} + image: {fileID: 916444927} +--- !u!1 &2112225940 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2112225941} + - component: {fileID: 2112225942} + m_Layer: 5 + m_Name: SecondaryTouch + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2112225941 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2112225940} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1160576333} + - {fileID: 1905042552} + m_Father: {fileID: 1895019948} + m_RootOrder: 12 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: -133} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2112225942 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2112225940} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1879fed0e0310334fb310daf7dcc4784, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionReference: {fileID: -5405649100492650258, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + enabledColor: {r: 0, g: 1, b: 0, a: 1} + disabledColor: {r: 1, g: 0, b: 0, a: 1} + image: {fileID: 1905042553} +--- !u!1 &2124509571 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2124509572} + - component: {fileID: 2124509574} + - component: {fileID: 2124509573} + m_Layer: 5 + m_Name: touched + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2124509572 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2124509571} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.25, y: 0.25, z: 0.025} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1400357807} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 62, y: -3} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2124509573 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2124509571} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &2124509574 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2124509571} + m_CullTransparentMesh: 0 diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/CompositionLayer2/Scenes/CompositionLayerTest_Sharpening.unity.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/CompositionLayer2/Scenes/CompositionLayerTest_Sharpening.unity.meta new file mode 100644 index 0000000..c6c30a5 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/CompositionLayer2/Scenes/CompositionLayerTest_Sharpening.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f0f909b2c35aefd4ca006344b5348b17 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/CompositionLayer2/Scripts/Actions.cs b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/CompositionLayer2/Scripts/Actions.cs new file mode 100644 index 0000000..22b261b --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/CompositionLayer2/Scripts/Actions.cs @@ -0,0 +1,82 @@ +// Copyright HTC Corporation All Rights Reserved. + +using UnityEngine; +using UnityEngine.UI; +using VIVE.OpenXR.CompositionLayer; + +namespace VIVE.OpenXR.Samples.CompositionLayer +{ + public class Actions : MonoBehaviour + { + static private XrSharpeningModeHTC mode = XrSharpeningModeHTC.FAST; + static private float level = 1.0f; + static private GameObject button01, button02; + + // Start is called before the first frame update + void Start() + { + button01 = GameObject.FindGameObjectWithTag("SharpenMode"); + button01.GetComponentInChildren().text = "Mode : "; + button02 = GameObject.FindGameObjectWithTag("SharpenLevel"); + button02.GetComponentInChildren().text = "Level : "; + } + + static public void SetConfig1() + { + mode = XrSharpeningModeHTC.FAST; + button01.GetComponentInChildren().text = "Mode : " + mode.ToString(); + } + + static public void SetConfig2() + { + mode = XrSharpeningModeHTC.NORMAL; + button01.GetComponentInChildren().text = "Mode : " + mode.ToString(); + } + + static public void SetConfig3() + { + mode = XrSharpeningModeHTC.QUALITY; + button01.GetComponentInChildren().text = "Mode : " + mode.ToString(); + } + + static public void SetConfig4() + { + mode = XrSharpeningModeHTC.AUTOMATIC; + button01.GetComponentInChildren().text = "Mode : " + mode.ToString(); + } + + static public void SetLevel1() + { + level = 1.0f; + button02.GetComponentInChildren().text = "Level : " + level.ToString(); + } + + static public void SetLevel2() + { + level = 0.8f; + button02.GetComponentInChildren().text = "Level : " + level.ToString(); + } + + static public void SetLevel3() + { + level = 0.5f; + button02.GetComponentInChildren().text = "Level : " + level.ToString(); + } + + static public void SetLevel4() + { + level = 0.2f; + button02.GetComponentInChildren().text = "Level : " + level.ToString(); + } + + static public void Disactivate() + { + XR_HTC_composition_layer_extra_settings.Interop.DisableSharpening(); + } + + static public void Activate() + { + XR_HTC_composition_layer_extra_settings.Interop.EnableSharpening(mode, level); + } + } +} \ No newline at end of file diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/CompositionLayer2/Scripts/Actions.cs.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/CompositionLayer2/Scripts/Actions.cs.meta new file mode 100644 index 0000000..8997502 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/CompositionLayer2/Scripts/Actions.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 236ba43e00db447429d508f9ae943b68 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/CompositionLayer2/Scripts/PassthroughTest_Manager.cs b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/CompositionLayer2/Scripts/PassthroughTest_Manager.cs index 220636b..9c7d8e4 100644 --- a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/CompositionLayer2/Scripts/PassthroughTest_Manager.cs +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/CompositionLayer2/Scripts/PassthroughTest_Manager.cs @@ -1,13 +1,15 @@ -using System.Collections; +// Copyright HTC Corporation All Rights Reserved. + using System.Collections.Generic; using UnityEngine; -using UnityEngine.InputSystem; using UnityEngine.UI; -using UnityEngine.XR.OpenXR; + using VIVE.OpenXR.CompositionLayer; -using VIVE.OpenXR.CompositionLayer.Passthrough; +using VIVE.OpenXR.Passthrough; using VIVE.OpenXR.Samples; +using XrPassthroughHTC = VIVE.OpenXR.Passthrough.XrPassthroughHTC; + public class PassthroughTest_Manager : MonoBehaviour { public GameObject projectedMeshAnchor = null, hmd = null, rigOrigin = null; @@ -21,7 +23,7 @@ public class PassthroughTest_Manager : MonoBehaviour { get { - List currentLayerIDs = CompositionLayerPassthroughAPI.GetCurrentPassthroughLayerIDs(); + List currentLayerIDs = PassthroughAPI.GetCurrentPassthroughLayerIDs(); if (currentLayerIDs != null && currentLayerIDs.Contains(activePassthroughID)) //Layer is active { //Debug.Log("passthroughActive: true"); @@ -34,7 +36,7 @@ public class PassthroughTest_Manager : MonoBehaviour private PassthroughLayerForm currentActiveLayerForm = PassthroughLayerForm.Planar; private LayerType currentActiveLayerType = LayerType.Overlay; private ProjectedPassthroughSpaceType currentActiveSpaceType = ProjectedPassthroughSpaceType.Worldlock; - private int activePassthroughID = 0; + private XrPassthroughHTC activePassthroughID = 0; private float scale = 1f, scaleModifier = 1f, alpha = 1f; private Vector3[] quadVertices = { new Vector3 (-1f, -1f, 0.0f), @@ -133,13 +135,13 @@ public class PassthroughTest_Manager : MonoBehaviour { if (scaleChanged) { - CompositionLayerPassthroughAPI.SetProjectedPassthroughScale(activePassthroughID, new Vector3(scale * scaleModifier, scale * scaleModifier, scale * scaleModifier)); + PassthroughAPI.SetProjectedPassthroughScale(activePassthroughID, new Vector3(scale * scaleModifier, scale * scaleModifier, scale * scaleModifier)); scaleChanged = false; } if (spaceTypeChanged) { - CompositionLayerPassthroughAPI.SetProjectedPassthroughSpaceType(activePassthroughID, currentActiveSpaceType); + PassthroughAPI.SetProjectedPassthroughSpaceType(activePassthroughID, currentActiveSpaceType); spaceTypeChanged = false; } @@ -149,11 +151,11 @@ public class PassthroughTest_Manager : MonoBehaviour { case ProjectedPassthroughSpaceType.Headlock: //Apply HMD offset Vector3 relativePosition = hmd.transform.InverseTransformPoint(projectedMeshAnchor.transform.position); - CompositionLayerPassthroughAPI.SetProjectedPassthroughMeshPosition(activePassthroughID, relativePosition, false); + PassthroughAPI.SetProjectedPassthroughMeshPosition(activePassthroughID, relativePosition, false); break; case ProjectedPassthroughSpaceType.Worldlock: default: - CompositionLayerPassthroughAPI.SetProjectedPassthroughMeshPosition(activePassthroughID, projectedMeshAnchor.transform.position); + PassthroughAPI.SetProjectedPassthroughMeshPosition(activePassthroughID, projectedMeshAnchor.transform.position); break; } positionChanged = false; @@ -165,11 +167,11 @@ public class PassthroughTest_Manager : MonoBehaviour { case ProjectedPassthroughSpaceType.Headlock: //Apply HMD offset Quaternion relativeRotation = Quaternion.Inverse(hmd.transform.rotation).normalized * projectedMeshAnchor.transform.rotation.normalized; - CompositionLayerPassthroughAPI.SetProjectedPassthroughMeshOrientation(activePassthroughID, relativeRotation, false); + PassthroughAPI.SetProjectedPassthroughMeshOrientation(activePassthroughID, relativeRotation, false); break; case ProjectedPassthroughSpaceType.Worldlock: default: - CompositionLayerPassthroughAPI.SetProjectedPassthroughMeshOrientation(activePassthroughID, projectedMeshAnchor.transform.rotation); + PassthroughAPI.SetProjectedPassthroughMeshOrientation(activePassthroughID, projectedMeshAnchor.transform.rotation); break; } orientationChanged = false; @@ -186,7 +188,7 @@ public class PassthroughTest_Manager : MonoBehaviour { if (passthroughActive) return; - activePassthroughID = CompositionLayerPassthroughAPI.CreatePlanarPassthrough(layerType, PassthroughSessionDestroyed, alpha); + PassthroughAPI.CreatePlanarPassthrough(out activePassthroughID, layerType, PassthroughSessionDestroyed, alpha); if (activePassthroughID != 0) { @@ -204,7 +206,7 @@ public class PassthroughTest_Manager : MonoBehaviour { if (passthroughActive) return; - activePassthroughID = CompositionLayerPassthroughAPI.CreateProjectedPassthrough(layerType, PassthroughSessionDestroyed, alpha); + PassthroughAPI.CreateProjectedPassthrough(out activePassthroughID, layerType, PassthroughSessionDestroyed, alpha); if (activePassthroughID != 0) { @@ -214,9 +216,9 @@ public class PassthroughTest_Manager : MonoBehaviour } } - private void PassthroughSessionDestroyed(int passthroughID) //Handle destruction of passthrough layer when OpenXR session is destroyed + private void PassthroughSessionDestroyed(XrPassthroughHTC passthrough) //Handle destruction of passthrough layer when OpenXR session is destroyed { - CompositionLayerPassthroughAPI.DestroyPassthrough(passthroughID); + PassthroughAPI.DestroyPassthrough(passthrough); activePassthroughID = 0; } @@ -224,17 +226,17 @@ public class PassthroughTest_Manager : MonoBehaviour { if (passthroughActive && activePassthroughID != 0 && currentActiveLayerForm == PassthroughLayerForm.Projected) { - CompositionLayerPassthroughAPI.SetProjectedPassthroughMesh(activePassthroughID, quadVertices, quadIndicies, false); + PassthroughAPI.SetProjectedPassthroughMesh(activePassthroughID, quadVertices, quadIndicies, false); switch (currentActiveSpaceType) { case ProjectedPassthroughSpaceType.Headlock: //Apply HMD offset Vector3 relativePosition = hmd.transform.InverseTransformPoint(projectedMeshAnchor.transform.position); Quaternion relativeRotation = Quaternion.Inverse(hmd.transform.rotation).normalized * projectedMeshAnchor.transform.rotation.normalized; - CompositionLayerPassthroughAPI.SetProjectedPassthroughMeshTransform(activePassthroughID, currentActiveSpaceType, relativePosition, relativeRotation, new Vector3(scale * scaleModifier, scale * scaleModifier, scale * scaleModifier), false); + PassthroughAPI.SetProjectedPassthroughMeshTransform(activePassthroughID, currentActiveSpaceType, relativePosition, relativeRotation, new Vector3(scale * scaleModifier, scale * scaleModifier, scale * scaleModifier), false); break; case ProjectedPassthroughSpaceType.Worldlock: default: - CompositionLayerPassthroughAPI.SetProjectedPassthroughMeshTransform(activePassthroughID, currentActiveSpaceType, projectedMeshAnchor.transform.position, projectedMeshAnchor.transform.rotation, new Vector3(scale * scaleModifier, scale * scaleModifier, scale * scaleModifier)); + PassthroughAPI.SetProjectedPassthroughMeshTransform(activePassthroughID, currentActiveSpaceType, projectedMeshAnchor.transform.position, projectedMeshAnchor.transform.rotation, new Vector3(scale * scaleModifier, scale * scaleModifier, scale * scaleModifier)); break; } } @@ -244,17 +246,17 @@ public class PassthroughTest_Manager : MonoBehaviour { if (passthroughActive && activePassthroughID != 0 && currentActiveLayerForm == PassthroughLayerForm.Projected) { - CompositionLayerPassthroughAPI.SetProjectedPassthroughMesh(activePassthroughID, mesh.vertices, mesh.triangles, true); + PassthroughAPI.SetProjectedPassthroughMesh(activePassthroughID, mesh.vertices, mesh.triangles, true); switch (currentActiveSpaceType) { case ProjectedPassthroughSpaceType.Headlock: //Apply HMD offset Vector3 relativePosition = hmd.transform.InverseTransformPoint(projectedMeshAnchor.transform.position); Quaternion relativeRotation = Quaternion.Inverse(hmd.transform.rotation).normalized * projectedMeshAnchor.transform.rotation.normalized; - CompositionLayerPassthroughAPI.SetProjectedPassthroughMeshTransform(activePassthroughID, currentActiveSpaceType, relativePosition, relativeRotation, new Vector3(scale * scaleModifier, scale * scaleModifier, scale * scaleModifier), false); + PassthroughAPI.SetProjectedPassthroughMeshTransform(activePassthroughID, currentActiveSpaceType, relativePosition, relativeRotation, new Vector3(scale * scaleModifier, scale * scaleModifier, scale * scaleModifier), false); break; case ProjectedPassthroughSpaceType.Worldlock: default: - CompositionLayerPassthroughAPI.SetProjectedPassthroughMeshTransform(activePassthroughID, currentActiveSpaceType, projectedMeshAnchor.transform.position, projectedMeshAnchor.transform.rotation, new Vector3(scale * scaleModifier, scale * scaleModifier, scale * scaleModifier)); + PassthroughAPI.SetProjectedPassthroughMeshTransform(activePassthroughID, currentActiveSpaceType, projectedMeshAnchor.transform.position, projectedMeshAnchor.transform.rotation, new Vector3(scale * scaleModifier, scale * scaleModifier, scale * scaleModifier)); break; } } @@ -264,7 +266,7 @@ public class PassthroughTest_Manager : MonoBehaviour { if (passthroughActive && activePassthroughID != 0) { - CompositionLayerPassthroughAPI.SetPassthroughLayerType(activePassthroughID, LayerType.Overlay); + PassthroughAPI.SetPassthroughLayerType(activePassthroughID, LayerType.Overlay); currentActiveLayerType = LayerType.Overlay; } } @@ -273,7 +275,7 @@ public class PassthroughTest_Manager : MonoBehaviour { if (passthroughActive && activePassthroughID != 0) { - CompositionLayerPassthroughAPI.SetPassthroughLayerType(activePassthroughID, LayerType.Underlay); + PassthroughAPI.SetPassthroughLayerType(activePassthroughID, LayerType.Underlay); currentActiveLayerType = LayerType.Underlay; } } @@ -282,7 +284,7 @@ public class PassthroughTest_Manager : MonoBehaviour { if (passthroughActive && activePassthroughID != 0 && currentActiveLayerForm == PassthroughLayerForm.Projected) { - if (CompositionLayerPassthroughAPI.SetProjectedPassthroughSpaceType(activePassthroughID, ProjectedPassthroughSpaceType.Headlock)) + if (PassthroughAPI.SetProjectedPassthroughSpaceType(activePassthroughID, ProjectedPassthroughSpaceType.Headlock)) { positionChanged = orientationChanged = spaceTypeChanged = true; @@ -297,7 +299,7 @@ public class PassthroughTest_Manager : MonoBehaviour { if (passthroughActive && activePassthroughID != 0 && currentActiveLayerForm == PassthroughLayerForm.Projected) { - if (CompositionLayerPassthroughAPI.SetProjectedPassthroughSpaceType(activePassthroughID, ProjectedPassthroughSpaceType.Worldlock)) + if (PassthroughAPI.SetProjectedPassthroughSpaceType(activePassthroughID, ProjectedPassthroughSpaceType.Worldlock)) { positionChanged = orientationChanged = spaceTypeChanged = true; @@ -312,7 +314,7 @@ public class PassthroughTest_Manager : MonoBehaviour { if (passthroughActive && activePassthroughID != 0) { - CompositionLayerPassthroughAPI.DestroyPassthrough(activePassthroughID); + PassthroughAPI.DestroyPassthrough(activePassthroughID); activePassthroughID = 0; } } @@ -323,7 +325,7 @@ public class PassthroughTest_Manager : MonoBehaviour alpha = newAlpha; if (passthroughActive && activePassthroughID != 0) { - CompositionLayerPassthroughAPI.SetPassthroughAlpha(activePassthroughID, newAlpha); + PassthroughAPI.SetPassthroughAlpha(activePassthroughID, newAlpha); } } diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/CompositionLayer2/Textures/LeftRight.png b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/CompositionLayer2/Textures/LeftRight.png new file mode 100644 index 0000000..54496d7 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/CompositionLayer2/Textures/LeftRight.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c03841d88a1964dd2935a191feca5b64207790d71469c6e5d3bc7cd5b509fde9 +size 533695 diff --git a/com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Arts/VRMfile/VRM1/Female1/Female1.Textures/Thumbnail.png.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/CompositionLayer2/Textures/LeftRight.png.meta similarity index 98% rename from com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Arts/VRMfile/VRM1/Female1/Female1.Textures/Thumbnail.png.meta rename to com.htc.upm.vive.openxr/Samples~/Samples/Samples/CompositionLayer2/Textures/LeftRight.png.meta index d6da4bb..18165d7 100644 --- a/com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Arts/VRMfile/VRM1/Female1/Female1.Textures/Thumbnail.png.meta +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/CompositionLayer2/Textures/LeftRight.png.meta @@ -1,12 +1,12 @@ fileFormatVersion: 2 -guid: b6bd01dd07c39324db099768d3508e44 +guid: a4b9b85c531c54d42a14c904411403ef TextureImporter: internalIDToNameTable: [] externalObjects: {} serializedVersion: 12 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/CompositionLayer2/Textures/building1.png b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/CompositionLayer2/Textures/building1.png new file mode 100644 index 0000000..66b78f6 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/CompositionLayer2/Textures/building1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f644530d4de472b416510e5839353b819690c71646cf8cae24cd7316dec9a27a +size 10445916 diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/CompositionLayer2/Textures/building1.png.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/CompositionLayer2/Textures/building1.png.meta new file mode 100644 index 0000000..2772e65 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/CompositionLayer2/Textures/building1.png.meta @@ -0,0 +1,135 @@ +fileFormatVersion: 2 +guid: a2e3af03ee1f79f4c84f6ac60c7c0ef4 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + 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 + ignoreMasterTextureLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + 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: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/CompositionLayer2/Textures/building2.png b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/CompositionLayer2/Textures/building2.png new file mode 100644 index 0000000..92aa8c7 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/CompositionLayer2/Textures/building2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:85a7b3d967bc302e91834586af46744b195186da570aa3ed0bdc85216a971f71 +size 11045899 diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/CompositionLayer2/Textures/building2.png.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/CompositionLayer2/Textures/building2.png.meta new file mode 100644 index 0000000..c838c16 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/CompositionLayer2/Textures/building2.png.meta @@ -0,0 +1,135 @@ +fileFormatVersion: 2 +guid: 47a77b2cee8d2284c9c99ba705fa4e40 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + 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 + ignoreMasterTextureLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + 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: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/CompositionLayer2/Textures/mono.jpg b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/CompositionLayer2/Textures/mono.jpg new file mode 100644 index 0000000..bbbff99 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/CompositionLayer2/Textures/mono.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c1abe9c123817d5b2188198428ab69fe0d448c363049efd3c290292cc23cf853 +size 55681 diff --git a/com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Arts/VRMfile/VRM1/Female1/Female1.Textures/_10.png.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/CompositionLayer2/Textures/mono.jpg.meta similarity index 98% rename from com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Arts/VRMfile/VRM1/Female1/Female1.Textures/_10.png.meta rename to com.htc.upm.vive.openxr/Samples~/Samples/Samples/CompositionLayer2/Textures/mono.jpg.meta index 1209f02..da1b511 100644 --- a/com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Arts/VRMfile/VRM1/Female1/Female1.Textures/_10.png.meta +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/CompositionLayer2/Textures/mono.jpg.meta @@ -1,12 +1,12 @@ fileFormatVersion: 2 -guid: 158236e8016b54b4fb7002417060e027 +guid: 5a77defd3f00c104bbf89dca35a81294 TextureImporter: internalIDToNameTable: [] externalObjects: {} serializedVersion: 12 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/CompositionLayer2/Textures/topdown.jpg b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/CompositionLayer2/Textures/topdown.jpg new file mode 100644 index 0000000..a8ab11b --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/CompositionLayer2/Textures/topdown.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0c3ee28e4166d50be917428aec1d4a07d1692a3f2463d887a7f9750cec3b3e06 +size 76371 diff --git a/com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Arts/VRMfile/VRM1/Female1/Female1.Textures/_14.png.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/CompositionLayer2/Textures/topdown.jpg.meta similarity index 98% rename from com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Arts/VRMfile/VRM1/Female1/Female1.Textures/_14.png.meta rename to com.htc.upm.vive.openxr/Samples~/Samples/Samples/CompositionLayer2/Textures/topdown.jpg.meta index 00795aa..6413183 100644 --- a/com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Arts/VRMfile/VRM1/Female1/Female1.Textures/_14.png.meta +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/CompositionLayer2/Textures/topdown.jpg.meta @@ -1,12 +1,12 @@ fileFormatVersion: 2 -guid: 6f4d12c56900bf2428f6d5abd2aa8f6e +guid: d07a4308157d7894c85d61e33c1eb589 TextureImporter: internalIDToNameTable: [] externalObjects: {} serializedVersion: 12 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Editor/TMPChecker/VIVE.OpenXR.Samples.TMPCheck.asmdef b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Editor/TMPChecker/VIVE.OpenXR.Samples.TMPCheck.asmdef index 3e62faa..3e041a9 100644 --- a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Editor/TMPChecker/VIVE.OpenXR.Samples.TMPCheck.asmdef +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Editor/TMPChecker/VIVE.OpenXR.Samples.TMPCheck.asmdef @@ -14,6 +14,11 @@ "name": "com.unity.textmeshpro", "expression": "", "define": "TMPExist" + }, + { + "name": "Unity", + "expression": "6000.0.0", + "define": "TMPExist" } ], "noEngineReferences": false diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/EyeTracker/EyeTrackerTest.cs b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/EyeTracker/EyeTrackerTest.cs index 7ae20d2..5d26599 100644 --- a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/EyeTracker/EyeTrackerTest.cs +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/EyeTracker/EyeTrackerTest.cs @@ -4,11 +4,11 @@ using UnityEngine; using UnityEngine.UI; using VIVE.OpenXR.EyeTracker; -namespace VIVE.OpenXR.Samples.OpenXRInput +namespace VIVE.OpenXR.Samples.EyeTracker { public class EyeTrackerTest : MonoBehaviour { - const string LOG_TAG = "VIVE.OpenXR.Samples.OpenXRInput.EyeTrackerText"; + const string LOG_TAG = "VIVE.OpenXR.Samples.EyeTracker.EyeTrackerText"; void DEBUG(string msg) { Debug.Log(LOG_TAG + " " + msg); } public Transform leftGazeTransform = null; public Transform rightGazeTransform = null; diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/FacialTracking/Scripts/LipExpText.cs b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/FacialTracking/Scripts/LipExpText.cs index 0ae450d..bf16f85 100644 --- a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/FacialTracking/Scripts/LipExpText.cs +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/FacialTracking/Scripts/LipExpText.cs @@ -31,10 +31,10 @@ namespace VIVE.OpenXR.Samples.FacialTracking MouthUpperOverturn = XrLipExpressionHTC.XR_LIP_EXPRESSION_MOUTH_UPPER_OVERTURN_HTC, MouthLowerOverturn = XrLipExpressionHTC.XR_LIP_EXPRESSION_MOUTH_LOWER_OVERTURN_HTC, // 10 MouthPout = XrLipExpressionHTC.XR_LIP_EXPRESSION_MOUTH_POUT_HTC, - MouthSmileRight = XrLipExpressionHTC.XR_LIP_EXPRESSION_MOUTH_SMILE_RIGHT_HTC, - MouthSmileLeft = XrLipExpressionHTC.XR_LIP_EXPRESSION_MOUTH_SMILE_LEFT_HTC, - MouthSadRight = XrLipExpressionHTC.XR_LIP_EXPRESSION_MOUTH_SAD_RIGHT_HTC, - MouthSadLeft = XrLipExpressionHTC.XR_LIP_EXPRESSION_MOUTH_SAD_LEFT_HTC, // 15 + MouthRaiserRight = XrLipExpressionHTC.XR_LIP_EXPRESSION_MOUTH_RAISER_RIGHT_HTC, + MouthRaiserLeft = XrLipExpressionHTC.XR_LIP_EXPRESSION_MOUTH_RAISER_LEFT_HTC, + MouthStretcherRight = XrLipExpressionHTC.XR_LIP_EXPRESSION_MOUTH_STRETCHER_RIGHT_HTC, + MouthStretcherLeft = XrLipExpressionHTC.XR_LIP_EXPRESSION_MOUTH_STRETCHER_LEFT_HTC, // 15 CheekPuffRight = XrLipExpressionHTC.XR_LIP_EXPRESSION_CHEEK_PUFF_RIGHT_HTC, CheekPuffLeft = XrLipExpressionHTC.XR_LIP_EXPRESSION_CHEEK_PUFF_LEFT_HTC, CheekSuck = XrLipExpressionHTC.XR_LIP_EXPRESSION_CHEEK_SUCK_HTC, diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/FacialTracking/ViveSR/Models/version2/Avatar_Shieh/Avatar_Shieh_V2.fbx b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/FacialTracking/ViveSR/Models/version2/Avatar_Shieh/Avatar_Shieh_V2.fbx index c78f010..e1a9fab 100644 --- a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/FacialTracking/ViveSR/Models/version2/Avatar_Shieh/Avatar_Shieh_V2.fbx +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/FacialTracking/ViveSR/Models/version2/Avatar_Shieh/Avatar_Shieh_V2.fbx @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2e185f5a3ba2ed43177a648ee4e8cdf355282e56301bd4d7ab4e860e801f39fb -size 15079595 +oid sha256:e2df92bbb1ab2081169abde24bd1724afcc507c8eedf1aa9535faf80d349bf72 +size 15079679 diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/FacialTracking/ViveSR/Scenes/Face/FaceModel.unity b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/FacialTracking/ViveSR/Scenes/Face/FaceModel.unity index 01408eb..812553c 100644 --- a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/FacialTracking/ViveSR/Scenes/Face/FaceModel.unity +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/FacialTracking/ViveSR/Scenes/Face/FaceModel.unity @@ -2206,7 +2206,7 @@ MonoBehaviour: m_HorizontalOverflow: 0 m_VerticalOverflow: 0 m_LineSpacing: 1 - m_Text: 'MouthSmileRight:' + m_Text: 'MouthRaiserRight:' --- !u!114 &7920586719574310195 MonoBehaviour: m_ObjectHideFlags: 0 @@ -2253,7 +2253,7 @@ GameObject: - component: {fileID: 7920586719574310194} - component: {fileID: 7920586719574310195} m_Layer: 5 - m_Name: MouthSmileRight + m_Name: MouthRaiserRight m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -2488,7 +2488,7 @@ MonoBehaviour: m_HorizontalOverflow: 0 m_VerticalOverflow: 0 m_LineSpacing: 1 - m_Text: 'MouthSmileLeft:' + m_Text: 'MouthRaiserLeft:' --- !u!114 &7920586719626268234 MonoBehaviour: m_ObjectHideFlags: 0 @@ -2535,7 +2535,7 @@ GameObject: - component: {fileID: 7920586719626268233} - component: {fileID: 7920586719626268234} m_Layer: 5 - m_Name: MouthSmileLeft + m_Name: MouthRaiserLeft m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -4051,7 +4051,7 @@ GameObject: - component: {fileID: 7920586720091468126} - component: {fileID: 7920586720091468127} m_Layer: 5 - m_Name: MouthSadLeft + m_Name: MouthStretcherLeft m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -4098,7 +4098,7 @@ MonoBehaviour: m_HorizontalOverflow: 0 m_VerticalOverflow: 0 m_LineSpacing: 1 - m_Text: 'MouthSadLeft:' + m_Text: 'MouthStretcherLeft:' --- !u!114 &7920586720091468127 MonoBehaviour: m_ObjectHideFlags: 0 @@ -4961,7 +4961,7 @@ GameObject: - component: {fileID: 7920586720398776223} - component: {fileID: 7920586720398776208} m_Layer: 5 - m_Name: MouthSadRight + m_Name: MouthStretcherRight m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -5008,7 +5008,7 @@ MonoBehaviour: m_HorizontalOverflow: 0 m_VerticalOverflow: 0 m_LineSpacing: 1 - m_Text: 'MouthSadRight:' + m_Text: 'MouthStretcherRight:' --- !u!114 &7920586720406047248 MonoBehaviour: m_ObjectHideFlags: 0 @@ -7193,6 +7193,7 @@ MonoBehaviour: m_EditorClassIdentifier: m_TrackingType: 0 m_UpdateType: 0 + m_IgnoreTrackingState: 0 m_PositionInput: m_UseReference: 0 m_Action: @@ -7233,6 +7234,18 @@ MonoBehaviour: m_Flags: 0 m_Flags: 0 m_Reference: {fileID: 0} + m_TrackingStateInput: + m_UseReference: 0 + m_Action: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: 37527834-e56e-4a3b-8e3a-657ba53bc50c + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 0} m_PositionAction: m_Name: Position m_Type: 0 @@ -7267,7 +7280,6 @@ MonoBehaviour: m_Action: Rotation m_Flags: 0 m_Flags: 0 - m_HasMigratedActions: 1 --- !u!1 &8315893866599987621 GameObject: m_ObjectHideFlags: 0 @@ -7308,7 +7320,7 @@ LineRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 0} + - {fileID: 10306, guid: 0000000000000000f000000000000000, type: 0} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -7334,7 +7346,7 @@ LineRenderer: - {x: 0, y: 0, z: 1} m_Parameters: serializedVersion: 3 - widthMultiplier: 1 + widthMultiplier: 0.001 widthCurve: serializedVersion: 2 m_Curve: @@ -7449,9 +7461,10 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_CameraOffset: {fileID: 8315893868100911252} - m_CameraObject: {fileID: 0} m_TrackingOrigin: 1 + m_CameraHeight: 0 m_CameraYOffset: 0 + m_ActionAsset: {fileID: 0} --- !u!114 &8315893866959931017 MonoBehaviour: m_ObjectHideFlags: 0 @@ -7561,6 +7574,7 @@ MonoBehaviour: m_EditorClassIdentifier: m_TrackingType: 0 m_UpdateType: 0 + m_IgnoreTrackingState: 0 m_PositionInput: m_UseReference: 0 m_Action: @@ -7601,6 +7615,18 @@ MonoBehaviour: m_Flags: 0 m_Flags: 0 m_Reference: {fileID: 0} + m_TrackingStateInput: + m_UseReference: 0 + m_Action: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: 7bcbd21e-bd98-413d-8be6-f2cf4158d439 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 0} m_PositionAction: m_Name: Position m_Type: 0 @@ -7635,7 +7661,6 @@ MonoBehaviour: m_Action: Rotation m_Flags: 0 m_Flags: 0 - m_HasMigratedActions: 1 --- !u!81 &8315893867055095324 AudioListener: m_ObjectHideFlags: 0 @@ -8209,7 +8234,7 @@ LineRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 0} + - {fileID: 10306, guid: 0000000000000000f000000000000000, type: 0} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -8235,7 +8260,7 @@ LineRenderer: - {x: 0, y: 0, z: 1} m_Parameters: serializedVersion: 3 - widthMultiplier: 1 + widthMultiplier: 0.001 widthCurve: serializedVersion: 2 m_Curve: @@ -8302,6 +8327,7 @@ MonoBehaviour: m_EditorClassIdentifier: m_TrackingType: 0 m_UpdateType: 0 + m_IgnoreTrackingState: 0 m_PositionInput: m_UseReference: 0 m_Action: @@ -8342,6 +8368,18 @@ MonoBehaviour: m_Flags: 0 m_Flags: 0 m_Reference: {fileID: 0} + m_TrackingStateInput: + m_UseReference: 0 + m_Action: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: 56d84f34-6b84-4475-aacf-acb4b8c4fff1 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 0} m_PositionAction: m_Name: Position m_Type: 0 @@ -8376,7 +8414,6 @@ MonoBehaviour: m_Action: Rotation m_Flags: 0 m_Flags: 0 - m_HasMigratedActions: 1 --- !u!114 &8315893868601279389 MonoBehaviour: m_ObjectHideFlags: 0 diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/FacialTracking/ViveSR/Scripts/Lip/SRanipal_LipData_v2.cs b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/FacialTracking/ViveSR/Scripts/Lip/SRanipal_LipData_v2.cs index 57d9294..63c7f7c 100644 --- a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/FacialTracking/ViveSR/Scripts/Lip/SRanipal_LipData_v2.cs +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/FacialTracking/ViveSR/Scripts/Lip/SRanipal_LipData_v2.cs @@ -19,10 +19,10 @@ namespace VIVE.OpenXR.Samples.FacialTracking XR_LIP_SHAPE_MOUTH_UPPER_OVERTURN_HTC = 9, XR_LIP_SHAPE_MOUTH_LOWER_OVERTURN_HTC = 10, XR_LIP_SHAPE_MOUTH_POUT_HTC = 11, - XR_LIP_SHAPE_MOUTH_SMILE_RIGHT_HTC = 12, - XR_LIP_SHAPE_MOUTH_SMILE_LEFT_HTC = 13, - XR_LIP_SHAPE_MOUTH_SAD_RIGHT_HTC = 14, - XR_LIP_SHAPE_MOUTH_SAD_LEFT_HTC = 15, + XR_LIP_SHAPE_MOUTH_RAISER_RIGHT_HTC = 12, + XR_LIP_SHAPE_MOUTH_RAISER_LEFT_HTC = 13, + XR_LIP_SHAPE_MOUTH_STRETCHER_RIGHT_HTC = 14, + XR_LIP_SHAPE_MOUTH_STRETCHER_LEFT_HTC = 15, XR_LIP_SHAPE_CHEEK_PUFF_RIGHT_HTC = 16, XR_LIP_SHAPE_CHEEK_PUFF_LEFT_HTC = 17, XR_LIP_SHAPE_CHEEK_SUCK_HTC = 18, @@ -61,10 +61,10 @@ namespace VIVE.OpenXR.Samples.FacialTracking Mouth_Upper_Overturn = 9, Mouth_Lower_Overturn = 10, Mouth_Pout = 11, - Mouth_Smile_Right = 12, - Mouth_Smile_Left = 13, - Mouth_Sad_Right = 14, - Mouth_Sad_Left = 15, + Mouth_Raiser_Right = 12, + Mouth_Raiser_Left = 13, + Mouth_Stretcher_Right = 14, + Mouth_Stretcher_Left = 15, Cheek_Puff_Right = 16, Cheek_Puff_Left = 17, Cheek_Suck = 18, diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/FoveatedRendering/Scenes/FoveatedRenderingTest.unity b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/FoveatedRendering/Scenes/FoveatedRenderingTest.unity index 5449b16..b09102c 100644 --- a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/FoveatedRendering/Scenes/FoveatedRenderingTest.unity +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/FoveatedRendering/Scenes/FoveatedRenderingTest.unity @@ -38,7 +38,7 @@ RenderSettings: m_ReflectionIntensity: 1 m_CustomReflection: {fileID: 0} m_Sun: {fileID: 0} - m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} + m_IndirectSpecularColor: {r: 0.00041345108, g: 0.0018249135, b: 0.007063424, a: 1} m_UseRadianceAmbientProbe: 0 --- !u!157 &3 LightmapSettings: @@ -809,6 +809,88 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 261496586} m_CullTransparentMesh: 0 +--- !u!1 &286458677 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 286458678} + - component: {fileID: 286458680} + - component: {fileID: 286458679} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &286458678 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 286458677} + m_LocalRotation: {x: 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: 1569503504} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -0.70000076} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &286458679 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 286458677} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 20 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: '04 + +' +--- !u!222 &286458680 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 286458677} + m_CullTransparentMesh: 0 --- !u!1 &375610618 GameObject: m_ObjectHideFlags: 0 @@ -1525,7 +1607,7 @@ RectTransform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 598791915} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalPosition: {x: 0, y: 0, z: -0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: @@ -1535,7 +1617,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: -164, y: -10} + m_AnchoredPosition: {x: -164, y: 2} m_SizeDelta: {x: 160, y: 40} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &598791917 @@ -2441,7 +2523,7 @@ RectTransform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1032262195} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalPosition: {x: 0, y: 0, z: -0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] @@ -2450,7 +2532,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: 32} + m_AnchoredPosition: {x: -0, y: 60} m_SizeDelta: {x: 200, y: 30} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &1032262197 @@ -2819,7 +2901,7 @@ RectTransform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1156546616} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalPosition: {x: 0, y: 0, z: 0.000014590721} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: @@ -2829,7 +2911,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: -10} + m_AnchoredPosition: {x: 0.000003919316, y: 2.900032} m_SizeDelta: {x: 160, y: 40} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &1156546618 @@ -3145,11 +3227,175 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1304529720} m_CullTransparentMesh: 0 +--- !u!1 &1311522208 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1311522209} + - component: {fileID: 1311522211} + - component: {fileID: 1311522210} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1311522209 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1311522208} + m_LocalRotation: {x: 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: 1500432160} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -0.70000076} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1311522210 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1311522208} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 20 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: '02 + +' +--- !u!222 &1311522211 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1311522208} + m_CullTransparentMesh: 0 --- !u!4 &1340868358 stripped Transform: m_CorrespondingSourceObject: {fileID: 7207139245002135405, guid: aa6466f3484ac344fb3c59a5b6398f84, type: 3} m_PrefabInstance: {fileID: 1595761234} m_PrefabAsset: {fileID: 0} +--- !u!1 &1357737388 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1357737389} + - component: {fileID: 1357737391} + - component: {fileID: 1357737390} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1357737389 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1357737388} + m_LocalRotation: {x: 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: 1746006656} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -0.70000076} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1357737390 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1357737388} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 20 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: '01 + +' +--- !u!222 &1357737391 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1357737388} + m_CullTransparentMesh: 0 --- !u!1 &1387899324 GameObject: m_ObjectHideFlags: 0 @@ -3768,6 +4014,274 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1437512620} m_CullTransparentMesh: 0 +--- !u!1 &1500432159 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1500432160} + - component: {fileID: 1500432163} + - component: {fileID: 1500432162} + - component: {fileID: 1500432161} + m_Layer: 5 + m_Name: EnableButton02 + m_TagString: EnableButton02 + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1500432160 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1500432159} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.000050912302} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1311522209} + m_Father: {fileID: 1963012289} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -1.8000003, y: -59.900047} + m_SizeDelta: {x: 50, y: 40} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1500432161 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1500432159} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 0 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 0.84313726, g: 0.9529412, b: 0.9529412, a: 1} + m_HighlightedColor: {r: 0.62352943, g: 1, b: 0.8117647, a: 1} + m_PressedColor: {r: 0.6901961, g: 0.6901961, b: 0.6901961, a: 1} + m_SelectedColor: {r: 0.62352943, g: 1, b: 0.8117647, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1500432162} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 50164868} + m_TargetAssemblyTypeName: MyFoveatedTest, VIVE.OpenXR.Samples + m_MethodName: FoveationIsDynamic_setbit02 + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: FoveationIsEnable + m_BoolArgument: 0 + m_CallState: 2 +--- !u!114 &1500432162 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1500432159} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1500432163 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1500432159} + m_CullTransparentMesh: 0 +--- !u!1 &1569503503 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1569503504} + - component: {fileID: 1569503507} + - component: {fileID: 1569503506} + - component: {fileID: 1569503505} + m_Layer: 5 + m_Name: EnableButton03 + m_TagString: EnableButton03 + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1569503504 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1569503503} + m_LocalRotation: {x: 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: 286458678} + m_Father: {fileID: 1963012289} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 57, y: -60} + m_SizeDelta: {x: 50, y: 40} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1569503505 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1569503503} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 0 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 0.84313726, g: 0.9529412, b: 0.9529412, a: 1} + m_HighlightedColor: {r: 0.62352943, g: 1, b: 0.8117647, a: 1} + m_PressedColor: {r: 0.6901961, g: 0.6901961, b: 0.6901961, a: 1} + m_SelectedColor: {r: 0.62352943, g: 1, b: 0.8117647, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1569503506} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 50164868} + m_TargetAssemblyTypeName: MyFoveatedTest, VIVE.OpenXR.Samples + m_MethodName: FoveationIsDynamic_setbit04 + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: FoveationIsEnable + m_BoolArgument: 0 + m_CallState: 2 +--- !u!114 &1569503506 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1569503503} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1569503507 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1569503503} + m_CullTransparentMesh: 0 --- !u!1 &1579826486 GameObject: m_ObjectHideFlags: 0 @@ -3796,7 +4310,7 @@ RectTransform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1579826486} m_LocalRotation: {x: -0.073153175, y: -0.03617139, z: -0.0058424906, w: 0.9966475} - m_LocalPosition: {x: 0, y: 0, z: 2.227} + m_LocalPosition: {x: 0, y: 0, z: 2.189} m_LocalScale: {x: 0.003, y: 0.003, z: 0.003} m_ConstrainProportionsScale: 0 m_Children: @@ -3806,8 +4320,8 @@ RectTransform: m_LocalEulerAnglesHint: {x: -8.409, y: -4.13, z: -0.36800003} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0.024, y: 1.219} - m_SizeDelta: {x: 500, y: 105.5513} + m_AnchoredPosition: {x: 0.028, y: 1.479} + m_SizeDelta: {x: 500, y: 200} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &1579826488 MonoBehaviour: @@ -4435,6 +4949,140 @@ MeshFilter: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1732386426} m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1746006655 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1746006656} + - component: {fileID: 1746006659} + - component: {fileID: 1746006658} + - component: {fileID: 1746006657} + m_Layer: 5 + m_Name: EnableButton01 + m_TagString: EnableButton01 + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1746006656 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1746006655} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.000050912302} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1357737389} + m_Father: {fileID: 1963012289} + 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: -58.4, y: -59.900047} + m_SizeDelta: {x: 50, y: 40} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1746006657 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1746006655} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 0 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 0.84313726, g: 0.9529412, b: 0.9529412, a: 1} + m_HighlightedColor: {r: 0.62352943, g: 1, b: 0.8117647, a: 1} + m_PressedColor: {r: 0.6901961, g: 0.6901961, b: 0.6901961, a: 1} + m_SelectedColor: {r: 0.62352943, g: 1, b: 0.8117647, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1746006658} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 50164868} + m_TargetAssemblyTypeName: MyFoveatedTest, VIVE.OpenXR.Samples + m_MethodName: FoveationIsDynamic_setbit01 + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: FoveationIsEnable + m_BoolArgument: 0 + m_CallState: 2 +--- !u!114 &1746006658 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1746006655} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1746006659 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1746006655} + m_CullTransparentMesh: 0 --- !u!20 &1757660637 stripped Camera: m_CorrespondingSourceObject: {fileID: 7207139244786812522, guid: aa6466f3484ac344fb3c59a5b6398f84, type: 3} @@ -4912,7 +5560,7 @@ RectTransform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1817510136} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalPosition: {x: 0, y: 0, z: 0.000014590721} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: @@ -4922,7 +5570,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: 165, y: -10} + m_AnchoredPosition: {x: 165, y: 2.5000305} m_SizeDelta: {x: 160, y: 40} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &1817510138 @@ -5339,6 +5987,9 @@ RectTransform: - {fileID: 1156546617} - {fileID: 1817510137} - {fileID: 598791916} + - {fileID: 1746006656} + - {fileID: 1500432160} + - {fileID: 1569503504} m_Father: {fileID: 1579826487} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/FoveatedRendering/Scripts/MyFoveatedTest.cs b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/FoveatedRendering/Scripts/MyFoveatedTest.cs index e90eca6..e0475e8 100644 --- a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/FoveatedRendering/Scripts/MyFoveatedTest.cs +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/FoveatedRendering/Scripts/MyFoveatedTest.cs @@ -1,22 +1,20 @@ -// "VIVE SDK -// © 2017 HTC Corporation. All Rights Reserved. -// -// Unless otherwise required by copyright law and practice, -// upon the execution of HTC SDK license agreement, -// HTC grants you access to and use of the VIVE SDK(s). -// You shall fully comply with all of HTC’s SDK license agreement terms and -// conditions signed by you and all SDK and API requirements, -// specifications, and documentation provided by HTC to You." +// Copyright HTC Corporation All Rights Reserved. using System; using UnityEngine; +using UnityEngine.UI; using VIVE.OpenXR; +using XrFoveationModeHTC = VIVE.OpenXR.Foveation.XrFoveationModeHTC; +using XrFoveationLevelHTC = VIVE.OpenXR.Foveation.XrFoveationLevelHTC; +using XrFoveationConfigurationHTC = VIVE.OpenXR.Foveation.XrFoveationConfigurationHTC; + public class MyFoveatedTest : MonoBehaviour { private float FOVLarge = 57; private float FOVSmall = 19; private float FOVMiddle = 38; + private GameObject button01, button02, button03; public static XrFoveationConfigurationHTC config_left, config_right; public static XrFoveationConfigurationHTC[] configs = { config_left, config_right }; @@ -33,6 +31,13 @@ public class MyFoveatedTest : MonoBehaviour configs[1].focalCenterOffset.y = 0.0f; } + void Start() + { + button01 = GameObject.FindGameObjectWithTag("EnableButton01"); + button02 = GameObject.FindGameObjectWithTag("EnableButton02"); + button03 = GameObject.FindGameObjectWithTag("EnableButton03"); + } + public void FoveationIsDisable() { ViveFoveation.ApplyFoveationHTC(XrFoveationModeHTC.XR_FOVEATION_MODE_DISABLE_HTC, 0, null); @@ -43,11 +48,33 @@ public class MyFoveatedTest : MonoBehaviour ViveFoveation.ApplyFoveationHTC(XrFoveationModeHTC.XR_FOVEATION_MODE_FIXED_HTC, 0, null); } + bool FoveationIsDynamic_bit01 = true; + bool FoveationIsDynamic_bit02 = true; + bool FoveationIsDynamic_bit04 = true; + + public void FoveationIsDynamic_setbit01(){ + FoveationIsDynamic_bit01 = !FoveationIsDynamic_bit01; + if (button01 != null) + button01.GetComponentInChildren().text = FoveationIsDynamic_bit01 ? "01" : "00"; + } + + public void FoveationIsDynamic_setbit02(){ + FoveationIsDynamic_bit02 = !FoveationIsDynamic_bit02; + if (button02 != null) + button02.GetComponentInChildren().text = FoveationIsDynamic_bit02 ? "02" : "00"; + } + + public void FoveationIsDynamic_setbit04(){ + FoveationIsDynamic_bit04 = !FoveationIsDynamic_bit04; + if (button03 != null) + button03.GetComponentInChildren().text = FoveationIsDynamic_bit04 ? "04" : "00"; + } + public void FoveationIsDynamic() { - UInt64 flags = ViveFoveation.XR_FOVEATION_DYNAMIC_CLEAR_FOV_ENABLED_BIT_HTC | - ViveFoveation.XR_FOVEATION_DYNAMIC_FOCAL_CENTER_OFFSET_ENABLED_BIT_HTC | - ViveFoveation.XR_FOVEATION_DYNAMIC_LEVEL_ENABLED_BIT_HTC; + UInt64 flags = (FoveationIsDynamic_bit01 ? ViveFoveation.XR_FOVEATION_DYNAMIC_LEVEL_ENABLED_BIT_HTC : 0x00) | + (FoveationIsDynamic_bit02 ? ViveFoveation.XR_FOVEATION_DYNAMIC_CLEAR_FOV_ENABLED_BIT_HTC : 0x00) | + (FoveationIsDynamic_bit04 ? ViveFoveation.XR_FOVEATION_DYNAMIC_FOCAL_CENTER_OFFSET_ENABLED_BIT_HTC : 0x00); ViveFoveation.ApplyFoveationHTC(XrFoveationModeHTC.XR_FOVEATION_MODE_DYNAMIC_HTC, 0, null, flags); } diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/HandInteractionExt.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/HandInteractionExt.meta new file mode 100644 index 0000000..1fb5ece --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/HandInteractionExt.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8a5b8b3c975ef694fba0f3acdf5bc0f6 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/HandInteractionExt/HandInteractionExt.cs b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/HandInteractionExt/HandInteractionExt.cs new file mode 100644 index 0000000..8a79a6f --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/HandInteractionExt/HandInteractionExt.cs @@ -0,0 +1,294 @@ +// Copyright HTC Corporation All Rights Reserved. + +using UnityEngine; +using UnityEngine.InputSystem; +using UnityEngine.UI; +using UnityEngine.XR; + +namespace VIVE.OpenXR.Samples.HandInteractionExt +{ + [RequireComponent(typeof(Text))] + public class HandInteractionExt : MonoBehaviour + { + public bool isLeft = true; + + public InputActionReference pointerPose = null; + public InputActionReference pointerValue = null; + public InputActionReference pointerReady = null; + + public InputActionReference gripPose = null; + public InputActionReference gripValue = null; + public InputActionReference gripReady = null; + + public InputActionReference pinchPose = null; + public InputActionReference pinchValue = null; + public InputActionReference pinchReady = null; + + public InputActionReference pokePose = null; + + private Text m_Text = null; + private void Start() + { + m_Text = GetComponent(); + } + + void Update() + { + if (m_Text == null) { return; } + + m_Text.text = (isLeft ? "Left Pointer: " : "Right Pointer: "); + m_Text.text += "\n isTracked: "; + { + if (CommonHelper.GetPoseIsTracked(pointerPose, out bool value, out string msg)) + { + m_Text.text += value; + } + else + { + m_Text.text += msg; + } + } + m_Text.text += "\n trackingState: "; + { + if (CommonHelper.GetPoseTrackingState(pointerPose, out InputTrackingState value, out string msg)) + { + m_Text.text += value; + } + else + { + m_Text.text += msg; + } + } + m_Text.text += "\n position ("; + { + if (CommonHelper.GetPosePosition(pointerPose, out Vector3 value, out string msg)) + { + m_Text.text += value.x.ToString() + ", " + value.y.ToString() + ", " + value.z.ToString(); + } + else + { + m_Text.text += msg; + } + } + m_Text.text += ")\n rotation ("; + { + if (CommonHelper.GetPoseRotation(pointerPose, out Quaternion value, out string msg)) + { + m_Text.text += value.x.ToString() + ", " + value.y.ToString() + ", " + value.z.ToString() + ", " + value.w.ToString(); + } + else + { + m_Text.text += msg; + } + } + m_Text.text += ")\nValue: "; + { + if (CommonHelper.GetAnalog(pointerValue, out float value, out string msg)) + { + m_Text.text += value.ToString(); + } + else + { + m_Text.text += msg; + } + } + m_Text.text += "\nReady: "; + { + if (CommonHelper.GetButton(pointerReady, out bool value, out string msg)) + { + m_Text.text += value; + } + else + { + m_Text.text += msg; + } + } + m_Text.text += "\n\n"; + + m_Text.text += (isLeft ? "Left Grip: " : "Right Grip: "); + m_Text.text += "\n isTracked: "; + { + if (CommonHelper.GetPoseIsTracked(gripPose, out bool value, out string msg)) + { + m_Text.text += value; + } + else + { + m_Text.text += msg; + } + } + m_Text.text += "\n trackingState: "; + { + if (CommonHelper.GetPoseTrackingState(gripPose, out InputTrackingState value, out string msg)) + { + m_Text.text += value; + } + else + { + m_Text.text += msg; + } + } + m_Text.text += "\n position ("; + { + if (CommonHelper.GetPosePosition(gripPose, out Vector3 value, out string msg)) + { + m_Text.text += value.x.ToString() + ", " + value.y.ToString() + ", " + value.z.ToString(); + } + else + { + m_Text.text += msg; + } + } + m_Text.text += ")\n rotation ("; + { + if (CommonHelper.GetPoseRotation(gripPose, out Quaternion value, out string msg)) + { + m_Text.text += value.x.ToString() + ", " + value.y.ToString() + ", " + value.z.ToString() + ", " + value.w.ToString(); + } + else + { + m_Text.text += msg; + } + } + m_Text.text += ")\nValue: "; + { + if (CommonHelper.GetAnalog(gripValue, out float value, out string msg)) + { + m_Text.text += value.ToString(); + } + else + { + m_Text.text += msg; + } + } + m_Text.text += "\nReady: "; + { + if (CommonHelper.GetButton(gripReady, out bool value, out string msg)) + { + m_Text.text += value; + } + else + { + m_Text.text += msg; + } + } + m_Text.text += "\n\n"; + + m_Text.text += (isLeft ? "Left Pinch: " : "Right Pinch: "); + m_Text.text += "\n isTracked: "; + { + if (CommonHelper.GetPoseIsTracked(pinchPose, out bool value, out string msg)) + { + m_Text.text += value; + } + else + { + m_Text.text += msg; + } + } + m_Text.text += "\n trackingState: "; + { + if (CommonHelper.GetPoseTrackingState(pinchPose, out InputTrackingState value, out string msg)) + { + m_Text.text += value; + } + else + { + m_Text.text += msg; + } + } + m_Text.text += "\n position ("; + { + if (CommonHelper.GetPosePosition(pinchPose, out Vector3 value, out string msg)) + { + m_Text.text += value.x.ToString() + ", " + value.y.ToString() + ", " + value.z.ToString(); + } + else + { + m_Text.text += msg; + } + } + m_Text.text += ")\n rotation ("; + { + if (CommonHelper.GetPoseRotation(pinchPose, out Quaternion value, out string msg)) + { + m_Text.text += value.x.ToString() + ", " + value.y.ToString() + ", " + value.z.ToString() + ", " + value.w.ToString(); + } + else + { + m_Text.text += msg; + } + } + m_Text.text += ")\nValue: "; + { + if (CommonHelper.GetAnalog(pinchValue, out float value, out string msg)) + { + m_Text.text += value.ToString(); + } + else + { + m_Text.text += msg; + } + } + m_Text.text += "\nReady: "; + { + if (CommonHelper.GetButton(pinchReady, out bool value, out string msg)) + { + m_Text.text += value; + } + else + { + m_Text.text += msg; + } + } + m_Text.text += "\n\n"; + + m_Text.text += (isLeft ? "Left Poke: " : "Right Poke: "); + m_Text.text += "\n isTracked: "; + { + if (CommonHelper.GetPoseIsTracked(pokePose, out bool value, out string msg)) + { + m_Text.text += value; + } + else + { + m_Text.text += msg; + } + } + m_Text.text += "\n trackingState: "; + { + if (CommonHelper.GetPoseTrackingState(pokePose, out InputTrackingState value, out string msg)) + { + m_Text.text += value; + } + else + { + m_Text.text += msg; + } + } + m_Text.text += "\n position ("; + { + if (CommonHelper.GetPosePosition(pokePose, out Vector3 value, out string msg)) + { + m_Text.text += value.x.ToString() + ", " + value.y.ToString() + ", " + value.z.ToString(); + } + else + { + m_Text.text += msg; + } + } + m_Text.text += ")\n rotation ("; + { + if (CommonHelper.GetPoseRotation(pokePose, out Quaternion value, out string msg)) + { + m_Text.text += value.x.ToString() + ", " + value.y.ToString() + ", " + value.z.ToString() + ", " + value.w.ToString(); + } + else + { + m_Text.text += msg; + } + } + m_Text.text += ")"; + } + } +} \ No newline at end of file diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/HandInteractionExt/HandInteractionExt.cs.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/HandInteractionExt/HandInteractionExt.cs.meta new file mode 100644 index 0000000..a25f528 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/HandInteractionExt/HandInteractionExt.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e25dee7271229074b89aeda5179f44dc +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/HandInteractionExt/HandInteractionExt.inputactions b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/HandInteractionExt/HandInteractionExt.inputactions new file mode 100644 index 0000000..7aa5e1a --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/HandInteractionExt/HandInteractionExt.inputactions @@ -0,0 +1,526 @@ +{ + "name": "HandInteractionExt", + "maps": [ + { + "name": "Hand", + "id": "d604bbb9-5521-468f-a4aa-d0caff739814", + "actions": [ + { + "name": "isTrackedL", + "type": "Button", + "id": "4af9c851-52d5-4e89-ac40-3a2479ad6205", + "expectedControlType": "Button", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "trackingStateL", + "type": "Value", + "id": "a0d0317b-4ad2-429f-9005-8eed4e1e83e0", + "expectedControlType": "Integer", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "isTrackedR", + "type": "Button", + "id": "671ae28c-ae46-4e10-95fa-aa69e01c561e", + "expectedControlType": "Button", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "trackingStateR", + "type": "Value", + "id": "161ed295-72c9-4e74-9956-b2ff786d6eb6", + "expectedControlType": "Integer", + "processors": "", + "interactions": "", + "initialStateCheck": true + } + ], + "bindings": [ + { + "name": "", + "id": "75c0a887-b27b-4bd5-846b-ba5ab1df0a5a", + "path": "{LeftHand}/isTracked", + "interactions": "", + "processors": "", + "groups": "", + "action": "isTrackedL", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "b605cbf6-38fb-422a-b12d-48e386a67e9a", + "path": "{RightHand}/isTracked", + "interactions": "", + "processors": "", + "groups": "", + "action": "isTrackedR", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "9535518b-92b1-45ff-9525-624d0c52de13", + "path": "{RightHand}/trackingState", + "interactions": "", + "processors": "", + "groups": "", + "action": "trackingStateR", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "1ccbb62c-6370-4507-847e-8fda100510e8", + "path": "{LeftHand}/trackingState", + "interactions": "", + "processors": "", + "groups": "", + "action": "trackingStateL", + "isComposite": false, + "isPartOfComposite": false + } + ] + }, + { + "name": "HandGrip", + "id": "f132d79b-02f5-4eb6-a752-2c3aa84b1139", + "actions": [ + { + "name": "PoseL", + "type": "PassThrough", + "id": "a3ed84bf-b54f-4678-9d6f-abffd735e9e7", + "expectedControlType": "Pose", + "processors": "", + "interactions": "", + "initialStateCheck": false + }, + { + "name": "ValueL", + "type": "Value", + "id": "87058d55-27b6-40d1-9630-7594dab6de20", + "expectedControlType": "Axis", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "ReadyL", + "type": "Button", + "id": "3c3aae7e-d51f-4eb5-b6ed-1fb13220d188", + "expectedControlType": "Button", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "PoseR", + "type": "PassThrough", + "id": "2dc1f1ce-0d35-4168-9579-1dd7ef6d6ca3", + "expectedControlType": "Pose", + "processors": "", + "interactions": "", + "initialStateCheck": false + }, + { + "name": "ValueR", + "type": "Value", + "id": "62ced5a3-0cd7-4ea4-aa15-1d46d39ab5e6", + "expectedControlType": "Axis", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "ReadyR", + "type": "Button", + "id": "4d41e176-1484-4cf3-980e-801a27833c1e", + "expectedControlType": "Button", + "processors": "", + "interactions": "", + "initialStateCheck": true + } + ], + "bindings": [ + { + "name": "", + "id": "3f8f640a-e097-4061-8658-06dc0ca6d956", + "path": "{LeftHand}/devicePose", + "interactions": "", + "processors": "", + "groups": "", + "action": "PoseL", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "d41d33db-8b6c-4f21-9459-fd203551d990", + "path": "{RightHand}/devicePose", + "interactions": "", + "processors": "", + "groups": "", + "action": "PoseR", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "48b33d4f-e9f9-4890-b836-d7303386c8b0", + "path": "{LeftHand}/graspValue", + "interactions": "", + "processors": "", + "groups": "", + "action": "ValueL", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "e43dc5cd-3e96-4453-b6b2-818250c91436", + "path": "{RightHand}/graspValue", + "interactions": "", + "processors": "", + "groups": "", + "action": "ValueR", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "3e8a289a-aa43-44fd-bbdf-ed15035ad5ef", + "path": "{RightHand}/graspReady", + "interactions": "", + "processors": "", + "groups": "", + "action": "ReadyR", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "79e10ffe-7276-4a95-b380-9d244bc2b213", + "path": "{LeftHand}/graspReady", + "interactions": "", + "processors": "", + "groups": "", + "action": "ReadyL", + "isComposite": false, + "isPartOfComposite": false + } + ] + }, + { + "name": "HandPointer", + "id": "36692239-474e-4e07-a8bf-7a4467782431", + "actions": [ + { + "name": "PoseL", + "type": "PassThrough", + "id": "fc753b1d-edb3-4a34-9af3-31ed9dc68ca3", + "expectedControlType": "Pose", + "processors": "", + "interactions": "", + "initialStateCheck": false + }, + { + "name": "ValueL", + "type": "Value", + "id": "475ad15e-1ea0-469f-8ba6-39dbc087f8ba", + "expectedControlType": "Axis", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "ReadyL", + "type": "Button", + "id": "47e8c4a6-2dc9-411f-b9b3-08dd949b4326", + "expectedControlType": "Button", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "PoseR", + "type": "PassThrough", + "id": "7d766280-e032-4e9a-bb74-55ab7a57c3e6", + "expectedControlType": "Pose", + "processors": "", + "interactions": "", + "initialStateCheck": false + }, + { + "name": "ValueR", + "type": "Value", + "id": "ecc71b87-e471-4bac-a287-a10392a2b90a", + "expectedControlType": "Axis", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "ReadyR", + "type": "Button", + "id": "23dbd4a9-8abd-40bf-a19d-d3c75f8090c2", + "expectedControlType": "Button", + "processors": "", + "interactions": "", + "initialStateCheck": true + } + ], + "bindings": [ + { + "name": "", + "id": "e14b6395-bf59-44fe-a429-90d3543e328a", + "path": "{LeftHand}/pointer", + "interactions": "", + "processors": "", + "groups": "", + "action": "PoseL", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "cbaae569-a034-4ce6-8cdd-eef5586aaa7e", + "path": "{RightHand}/pointer", + "interactions": "", + "processors": "", + "groups": "", + "action": "PoseR", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "514be0ed-99f4-4f3a-a53b-672c0caeb1d5", + "path": "{LeftHand}/pointerActivateValue", + "interactions": "", + "processors": "", + "groups": "", + "action": "ValueL", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "b3c9d90b-0ad0-42c6-9cda-1ac1d74719a5", + "path": "{RightHand}/pointerActivateValue", + "interactions": "", + "processors": "", + "groups": "", + "action": "ValueR", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "03ca7d96-43df-406f-8b41-c3b8168cbcbc", + "path": "{RightHand}/pointerActivateReady", + "interactions": "", + "processors": "", + "groups": "", + "action": "ReadyR", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "0f20788a-3543-4fd0-8e4e-9ad56108877e", + "path": "{LeftHand}/pointerActivateReady", + "interactions": "", + "processors": "", + "groups": "", + "action": "ReadyL", + "isComposite": false, + "isPartOfComposite": false + } + ] + }, + { + "name": "HandPinch", + "id": "73e09043-36b0-4cec-bda2-c1c5b861b792", + "actions": [ + { + "name": "PoseL", + "type": "PassThrough", + "id": "8c32c730-5a57-4777-940f-89a87509cc55", + "expectedControlType": "Pose", + "processors": "", + "interactions": "", + "initialStateCheck": false + }, + { + "name": "ValueL", + "type": "Value", + "id": "6540a9fa-617c-4002-b2e3-88f570d80cdf", + "expectedControlType": "Axis", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "ReadyL", + "type": "Button", + "id": "9db1cd9a-767f-4c73-b5b4-a456d29222ef", + "expectedControlType": "Button", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "PoseR", + "type": "PassThrough", + "id": "0cfeb9fc-a2ea-4d3a-bef2-16b09aae7701", + "expectedControlType": "Pose", + "processors": "", + "interactions": "", + "initialStateCheck": false + }, + { + "name": "ValueR", + "type": "Value", + "id": "8bd29d21-773b-48ed-83e8-f271af3ec869", + "expectedControlType": "Axis", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "ReadyR", + "type": "Button", + "id": "7aa30173-4639-4222-afe7-9233088036c9", + "expectedControlType": "Button", + "processors": "", + "interactions": "", + "initialStateCheck": true + } + ], + "bindings": [ + { + "name": "", + "id": "8b2b329b-db08-4841-a1e6-df36cb6318bc", + "path": "{LeftHand}/pinchPose", + "interactions": "", + "processors": "", + "groups": "", + "action": "PoseL", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "92e779f7-ba6f-417d-9f4c-9d5f81790686", + "path": "{RightHand}/pinchPose", + "interactions": "", + "processors": "", + "groups": "", + "action": "PoseR", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "f5f748fd-da48-423b-864a-340e9934041f", + "path": "{LeftHand}/pinchValue", + "interactions": "", + "processors": "", + "groups": "", + "action": "ValueL", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "838dbd9a-6c54-4959-9a92-0168b20d3632", + "path": "{RightHand}/pinchValue", + "interactions": "", + "processors": "", + "groups": "", + "action": "ValueR", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "30bc3116-8581-42b7-9a73-8f4ce570083e", + "path": "{RightHand}/pinchReady", + "interactions": "", + "processors": "", + "groups": "", + "action": "ReadyR", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "9591b4cc-cf0b-4096-91ae-848358b0f366", + "path": "{LeftHand}/pinchReady", + "interactions": "", + "processors": "", + "groups": "", + "action": "ReadyL", + "isComposite": false, + "isPartOfComposite": false + } + ] + }, + { + "name": "HandPoke", + "id": "a4cfc781-c114-4451-96d5-857c3a9385fa", + "actions": [ + { + "name": "PoseL", + "type": "PassThrough", + "id": "e9feeab8-c68c-47d7-8560-8f3b2c44d2bf", + "expectedControlType": "Pose", + "processors": "", + "interactions": "", + "initialStateCheck": false + }, + { + "name": "PoseR", + "type": "PassThrough", + "id": "1bac4e9e-ce3d-4218-bbca-255ef780cf6c", + "expectedControlType": "Pose", + "processors": "", + "interactions": "", + "initialStateCheck": false + } + ], + "bindings": [ + { + "name": "", + "id": "efd73d26-df7d-4b90-93c2-202a5f70c05c", + "path": "{LeftHand}/pokePose", + "interactions": "", + "processors": "", + "groups": "", + "action": "PoseL", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "124f3c45-0d83-4302-9f2a-cb945f7c268e", + "path": "{RightHand}/pokePose", + "interactions": "", + "processors": "", + "groups": "", + "action": "PoseR", + "isComposite": false, + "isPartOfComposite": false + } + ] + } + ], + "controlSchemes": [] +} \ No newline at end of file diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/HandInteractionExt/HandInteractionExt.inputactions.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/HandInteractionExt/HandInteractionExt.inputactions.meta new file mode 100644 index 0000000..211f7b2 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/HandInteractionExt/HandInteractionExt.inputactions.meta @@ -0,0 +1,14 @@ +fileFormatVersion: 2 +guid: a3cf112ff75fe4944a9c9f651df874b7 +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: 8404be70184654265930450def6a9037, type: 3} + generateWrapperCode: 0 + wrapperCodePath: + wrapperClassName: + wrapperCodeNamespace: diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/HandInteractionExt/HandInteractionExt.unity b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/HandInteractionExt/HandInteractionExt.unity new file mode 100644 index 0000000..382ac2d --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/HandInteractionExt/HandInteractionExt.unity @@ -0,0 +1,8927 @@ +%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.18028378, g: 0.22571412, b: 0.30692285, a: 1} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 12 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 12 + m_Resolution: 2 + m_BakeResolution: 40 + m_AtlasSize: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + m_ReflectionCompression: 2 + m_MixedBakeMode: 2 + m_BakeBackend: 1 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 512 + m_PVRBounces: 2 + m_PVREnvironmentSampleCount: 256 + m_PVREnvironmentReferencePointCount: 2048 + m_PVRFilteringMode: 1 + m_PVRDenoiserTypeDirect: 1 + m_PVRDenoiserTypeIndirect: 1 + m_PVRDenoiserTypeAO: 1 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVREnvironmentMIS: 1 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightProbeSampleCountMultiplier: 4 + m_LightingDataAsset: {fileID: 0} + m_LightingSettings: {fileID: 0} +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + maxJobWorkers: 0 + preserveTilesOutsideBounds: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &4560209 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4560210} + m_Layer: 0 + m_Name: VisibleElements + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4560210 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4560209} + m_LocalRotation: {x: 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: 743277235} + - {fileID: 1616849654} + m_Father: {fileID: 1447731699} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &20675710 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 2123683506} + m_Modifications: + - target: {fileID: 4346727374823546882, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_Name + value: PoseMarker + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.z + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} +--- !u!4 &20675711 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + m_PrefabInstance: {fileID: 20675710} + m_PrefabAsset: {fileID: 0} +--- !u!1 &59975510 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 59975514} + - component: {fileID: 59975513} + - component: {fileID: 59975512} + - component: {fileID: 59975511} + m_Layer: 0 + m_Name: CanvasControllerL + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &59975511 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 59975510} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &59975512 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 59975510} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 1 +--- !u!223 &59975513 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 59975510} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &59975514 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 59975510} + m_LocalRotation: {x: 0, y: -0.13052624, z: 0, w: 0.9914449} + m_LocalPosition: {x: 0, y: 0, z: 5.5} + m_LocalScale: {x: 0.01, y: 0.01, z: 0.01} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1962967396} + m_Father: {fileID: 0} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: -15, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -7.5, y: 1} + m_SizeDelta: {x: 500, y: 620} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &109797349 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 109797350} + - component: {fileID: 109797353} + - component: {fileID: 109797352} + - component: {fileID: 109797351} + m_Layer: 0 + m_Name: Status + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &109797350 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 109797349} + m_LocalRotation: {x: 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: 1598290185} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: -20} + m_SizeDelta: {x: 480, y: 580} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &109797351 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 109797349} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e25dee7271229074b89aeda5179f44dc, type: 3} + m_Name: + m_EditorClassIdentifier: + isLeft: 0 + pointerPose: {fileID: -636850554879344728, guid: a3cf112ff75fe4944a9c9f651df874b7, type: 3} + pointerValue: {fileID: 7658033307293846933, guid: a3cf112ff75fe4944a9c9f651df874b7, type: 3} + pointerReady: {fileID: 7816772702543665953, guid: a3cf112ff75fe4944a9c9f651df874b7, type: 3} + gripPose: {fileID: 662888850959169890, guid: a3cf112ff75fe4944a9c9f651df874b7, type: 3} + gripValue: {fileID: 1461144899622690318, guid: a3cf112ff75fe4944a9c9f651df874b7, type: 3} + gripReady: {fileID: 7810572072306077725, guid: a3cf112ff75fe4944a9c9f651df874b7, type: 3} + pinchPose: {fileID: -8870959747692489066, guid: a3cf112ff75fe4944a9c9f651df874b7, type: 3} + pinchValue: {fileID: 2011078882671819029, guid: a3cf112ff75fe4944a9c9f651df874b7, type: 3} + pinchReady: {fileID: 627858204395316972, guid: a3cf112ff75fe4944a9c9f651df874b7, type: 3} + pokePose: {fileID: -3099022531769913961, guid: a3cf112ff75fe4944a9c9f651df874b7, type: 3} +--- !u!114 &109797352 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 109797349} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.8536516, g: 0.8784314, b: 0.1764706, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 12 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Right Hand +--- !u!222 &109797353 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 109797349} + m_CullTransparentMesh: 1 +--- !u!1001 &112337715 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 747964066} + m_Modifications: + - target: {fileID: 4346727374823546882, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_Name + value: PoseMarker + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.z + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} +--- !u!4 &112337716 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + m_PrefabInstance: {fileID: 112337715} + m_PrefabAsset: {fileID: 0} +--- !u!1 &113036720 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 113036721} + m_Layer: 0 + m_Name: VisibleElements + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &113036721 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 113036720} + m_LocalRotation: {x: 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: 354121543} + - {fileID: 490089191} + m_Father: {fileID: 1221802855} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &114799316 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 114799317} + - component: {fileID: 114799320} + - component: {fileID: 114799319} + - component: {fileID: 114799318} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &114799317 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 114799316} + m_LocalRotation: {x: 0.5, y: -0.5, z: 0.5, w: 0.5} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.0010000002, y: 0.001, z: 0.001} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 341811923} + m_Father: {fileID: 747964066} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 90, y: -90, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0.0050000018} + m_SizeDelta: {x: 662, y: 423} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &114799318 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 114799316} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &114799319 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 114799316} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 1 +--- !u!223 &114799320 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 114799316} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!1 &114975756 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 114975757} + - component: {fileID: 114975759} + - component: {fileID: 114975758} + m_Layer: 5 + m_Name: PoseName + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &114975757 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 114975756} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.05, y: 0.05, z: 0.05} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1582072419} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -25, y: -30} + m_SizeDelta: {x: 1000, y: 1000} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &114975758 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 114975756} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 300 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 3 + m_MaxSize: 300 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Poke + +' +--- !u!222 &114975759 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 114975756} + m_CullTransparentMesh: 0 +--- !u!1 &141580939 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 141580940} + - component: {fileID: 141580942} + - component: {fileID: 141580941} + m_Layer: 5 + m_Name: PoseName + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &141580940 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 141580939} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.05, y: 0.05, z: 0.05} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 2073298332} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -25, y: -30} + m_SizeDelta: {x: 1000, y: 1000} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &141580941 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 141580939} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 300 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 3 + m_MaxSize: 300 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Grip +--- !u!222 &141580942 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 141580939} + m_CullTransparentMesh: 0 +--- !u!1 &272417596 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 272417597} + - component: {fileID: 272417600} + - component: {fileID: 272417599} + - component: {fileID: 272417598} + m_Layer: 0 + m_Name: Status + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &272417597 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 272417596} + m_LocalRotation: {x: 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: 1962967396} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: -20} + m_SizeDelta: {x: 480, y: 580} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &272417598 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 272417596} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e25dee7271229074b89aeda5179f44dc, type: 3} + m_Name: + m_EditorClassIdentifier: + isLeft: 1 + pointerPose: {fileID: -6495569650943898615, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + pointerValue: {fileID: 1009390453385153553, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + pointerReady: {fileID: 7652248086422532061, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + gripPose: {fileID: -1624222239408711063, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + gripValue: {fileID: -5476692708957821156, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + gripReady: {fileID: -4435285547674554661, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + pinchPose: {fileID: -5869930637306203335, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + pinchValue: {fileID: -7971585710944104737, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + pinchReady: {fileID: -8627716924726853789, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + pokePose: {fileID: -5253613819293204042, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} +--- !u!114 &272417599 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 272417596} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.21964316, g: 0.8784314, b: 0.1764706, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 12 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Left Controller +--- !u!222 &272417600 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 272417596} + m_CullTransparentMesh: 1 +--- !u!1 &295198976 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 295198977} + - component: {fileID: 295198979} + - component: {fileID: 295198978} + m_Layer: 0 + m_Name: Title + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &295198977 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 295198976} + m_LocalRotation: {x: 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: 1962967396} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 290} + m_SizeDelta: {x: 480, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &295198978 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 295198976} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.0670861, g: 0.7924528, b: 0.063545756, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Left Controller +--- !u!222 &295198979 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 295198976} + m_CullTransparentMesh: 1 +--- !u!1 &337786709 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 337786710} + - component: {fileID: 337786711} + m_Layer: 0 + m_Name: RightHand + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &337786710 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 337786709} + m_LocalRotation: {x: -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: 1528882533595726734} + - {fileID: 1016180699} + m_Father: {fileID: 700388022} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &337786711 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 337786709} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 873a88a3d45610d4489a58d37c448415, type: 3} + m_Name: + m_EditorClassIdentifier: + IsLeft: 0 + m_IsActive: {fileID: 8928210179554594763, guid: a3cf112ff75fe4944a9c9f651df874b7, type: 3} + m_TrackingState: {fileID: -775720036105915609, guid: a3cf112ff75fe4944a9c9f651df874b7, type: 3} + m_ObjectToHide: {fileID: 1016180698} +--- !u!1 &341811922 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 341811923} + - component: {fileID: 341811925} + - component: {fileID: 341811924} + m_Layer: 5 + m_Name: PoseName + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &341811923 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 341811922} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.05, y: 0.05, z: 0.05} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 114799317} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -25, y: -30} + m_SizeDelta: {x: 1000, y: 1000} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &341811924 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 341811922} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 300 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 3 + m_MaxSize: 300 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Poke +--- !u!222 &341811925 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 341811922} + m_CullTransparentMesh: 0 +--- !u!1001 &341865017 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 827015173} + m_Modifications: + - target: {fileID: 4346727374823546882, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_Name + value: PoseMarker + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.z + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} +--- !u!4 &341865018 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + m_PrefabInstance: {fileID: 341865017} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &354121542 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 113036721} + m_Modifications: + - target: {fileID: 4346727374823546882, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_Name + value: PoseMarker + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.z + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} +--- !u!4 &354121543 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + m_PrefabInstance: {fileID: 354121542} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &396260580 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 696719460} + m_Modifications: + - target: {fileID: 4346727374823546882, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_Name + value: PoseMarker + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.z + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} +--- !u!4 &396260581 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + m_PrefabInstance: {fileID: 396260580} + m_PrefabAsset: {fileID: 0} +--- !u!1 &490089190 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 490089191} + - component: {fileID: 490089194} + - component: {fileID: 490089193} + - component: {fileID: 490089192} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &490089191 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 490089190} + m_LocalRotation: {x: 0.5, y: -0.5, z: 0.5, w: 0.5} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.0010000002, y: 0.001, z: 0.001} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 499973108} + m_Father: {fileID: 113036721} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 90, y: -90, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0.005} + m_SizeDelta: {x: 662, y: 423} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &490089192 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 490089190} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &490089193 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 490089190} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 1 +--- !u!223 &490089194 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 490089190} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!1 &499973107 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 499973108} + - component: {fileID: 499973110} + - component: {fileID: 499973109} + m_Layer: 5 + m_Name: PoseName + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &499973108 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 499973107} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.05, y: 0.05, z: 0.05} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 490089191} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -25, y: -30} + m_SizeDelta: {x: 1000, y: 1000} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &499973109 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 499973107} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 300 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 3 + m_MaxSize: 300 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Pinch + +' +--- !u!222 &499973110 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 499973107} + m_CullTransparentMesh: 0 +--- !u!1 &502637465 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 502637466} + m_Layer: 0 + m_Name: VisibleElements + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &502637466 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 502637465} + m_LocalRotation: {x: 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: 1829859946} + - {fileID: 1582072419} + m_Father: {fileID: 2064717941} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &536899353 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 536899354} + - component: {fileID: 536899356} + - component: {fileID: 536899355} + m_Layer: 5 + m_Name: PoseName + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &536899354 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 536899353} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.05, y: 0.05, z: 0.05} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 987801178} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -25, y: -30} + m_SizeDelta: {x: 1000, y: 1000} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &536899355 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 536899353} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 300 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 3 + m_MaxSize: 300 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Pointer +--- !u!222 &536899356 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 536899353} + m_CullTransparentMesh: 0 +--- !u!1 &542039896 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 542039897} + m_Layer: 0 + m_Name: VisibleElements + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &542039897 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 542039896} + m_LocalRotation: {x: 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: 1495351304} + - {fileID: 1607832858} + m_Father: {fileID: 1933349423} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &648816139 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 648816140} + m_Layer: 0 + m_Name: Poses + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &648816140 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 648816139} + m_LocalRotation: {x: 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: 1387253792} + - {fileID: 1969357016} + - {fileID: 1001076697} + - {fileID: 1947228663} + m_Father: {fileID: 1056226117} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &648875438 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 648875439} + - component: {fileID: 648875440} + - component: {fileID: 648875441} + m_Layer: 0 + m_Name: PinchL + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &648875439 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 648875438} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -0.2, y: 0.1, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 827015173} + m_Father: {fileID: 6088718223946704801} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &648875440 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 648875438} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d767f31532f3830418d2a90282fb22c1, type: 3} + m_Name: + m_EditorClassIdentifier: + PoseName: ControllerPinchL + VisibleElements: {fileID: 827015172} + m_DevicePose: {fileID: -5869930637306203335, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} +--- !u!114 &648875441 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 648875438} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c2fadf230d1919748a9aa21d40f74619, type: 3} + m_Name: + m_EditorClassIdentifier: + m_TrackingType: 0 + m_UpdateType: 0 + m_PositionInput: + m_UseReference: 0 + m_Action: + m_Name: Position Input + m_Type: 0 + m_ExpectedControlType: + m_Id: 1a070ede-ef7e-4168-bbd7-72252662d2ae + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: c39516d0-3025-48c4-9f07-48fb2233ab87 + m_Path: {LeftHand}/pinchPosition + m_Interactions: + m_Processors: + m_Groups: + m_Action: Position Input + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: 0} + m_RotationInput: + m_UseReference: 0 + m_Action: + m_Name: Rotation Input + m_Type: 0 + m_ExpectedControlType: + m_Id: b9ff5c3c-5783-49d0-bd84-73713f029f13 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 3b5d8646-5dfa-4e70-b1ff-c332af01b84c + m_Path: {LeftHand}/pinchRotation + m_Interactions: + m_Processors: + m_Groups: + m_Action: Rotation Input + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: 0} + m_PositionAction: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_RotationAction: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_HasMigratedActions: 1 +--- !u!1 &672225543 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 672225544} + - component: {fileID: 672225546} + - component: {fileID: 672225545} + m_Layer: 0 + m_Name: Title + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &672225544 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 672225543} + m_LocalRotation: {x: 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: 1240471480} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 290} + m_SizeDelta: {x: 480, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &672225545 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 672225543} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.87279403, g: 0.8773585, b: 0.120016046, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Right Controller +--- !u!222 &672225546 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 672225543} + m_CullTransparentMesh: 1 +--- !u!1 &680256674 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 680256675} + m_Layer: 0 + m_Name: VisibleElements + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &680256675 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 680256674} + m_LocalRotation: {x: 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: 1226082258} + - {fileID: 2073298332} + m_Father: {fileID: 1969357016} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &695798340 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 1827888744} + m_Modifications: + - target: {fileID: 4346727374823546882, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_Name + value: PoseMarker + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.z + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} +--- !u!4 &695798341 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + m_PrefabInstance: {fileID: 695798340} + m_PrefabAsset: {fileID: 0} +--- !u!1 &696719459 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 696719460} + m_Layer: 0 + m_Name: VisibleElements + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &696719460 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 696719459} + m_LocalRotation: {x: 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: 396260581} + - {fileID: 1769538597} + m_Father: {fileID: 1947228663} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &697572425 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 697572426} + - component: {fileID: 697572428} + - component: {fileID: 697572427} + m_Layer: 5 + m_Name: PoseName + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &697572426 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 697572425} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.05, y: 0.05, z: 0.05} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1607832858} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -25, y: -30} + m_SizeDelta: {x: 1000, y: 1000} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &697572427 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 697572425} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 300 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 3 + m_MaxSize: 300 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Poke + +' +--- !u!222 &697572428 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 697572425} + m_CullTransparentMesh: 0 +--- !u!1 &700388021 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 700388022} + m_Layer: 0 + m_Name: ControllerPoseControllerAim + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &700388022 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 700388021} + m_LocalRotation: {x: 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: 6088718223833369451} + - {fileID: 1620124919} + - {fileID: 6088718224276371993} + - {fileID: 337786710} + m_Father: {fileID: 6088718224664260447} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &718567066 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 718567067} + - component: {fileID: 718567068} + - component: {fileID: 718567069} + m_Layer: 0 + m_Name: PinchR + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &718567067 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 718567066} + m_LocalRotation: {x: -0.38268343, y: -0, z: -0, w: 0.92387956} + m_LocalPosition: {x: 0.2, y: -0.1, z: 0.2} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1827888744} + m_Father: {fileID: 1708107230} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: -45, y: 0, z: 0} +--- !u!114 &718567068 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 718567066} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d767f31532f3830418d2a90282fb22c1, type: 3} + m_Name: + m_EditorClassIdentifier: + PoseName: HandPinchR + VisibleElements: {fileID: 1827888743} + m_DevicePose: {fileID: -8870959747692489066, guid: a3cf112ff75fe4944a9c9f651df874b7, type: 3} +--- !u!114 &718567069 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 718567066} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c2fadf230d1919748a9aa21d40f74619, type: 3} + m_Name: + m_EditorClassIdentifier: + m_TrackingType: 0 + m_UpdateType: 0 + m_PositionInput: + m_UseReference: 0 + m_Action: + m_Name: Position Input + m_Type: 0 + m_ExpectedControlType: + m_Id: 671f32f8-26ef-40f6-86d1-35d4847e25af + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 82e7705c-fd46-4e2a-a1e9-571bbc131536 + m_Path: {RightHand}/pinchPosition + m_Interactions: + m_Processors: + m_Groups: + m_Action: Position Input + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: 0} + m_RotationInput: + m_UseReference: 0 + m_Action: + m_Name: Rotation Input + m_Type: 0 + m_ExpectedControlType: + m_Id: d7e8f591-8a79-4ad2-9fa4-c252037f031a + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 432518d4-621f-48d0-8df4-dd133901e519 + m_Path: {RightHand}/pinchRotation + m_Interactions: + m_Processors: + m_Groups: + m_Action: Rotation Input + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: 0} + m_PositionAction: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_RotationAction: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_HasMigratedActions: 1 +--- !u!1001 &743277234 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 4560210} + m_Modifications: + - target: {fileID: 4346727374823546882, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_Name + value: PoseMarker + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.z + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} +--- !u!4 &743277235 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + m_PrefabInstance: {fileID: 743277234} + m_PrefabAsset: {fileID: 0} +--- !u!1 &747964065 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 747964066} + m_Layer: 0 + m_Name: VisibleElements + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &747964066 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 747964065} + m_LocalRotation: {x: 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: 112337716} + - {fileID: 114799317} + m_Father: {fileID: 1693846217} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &800589367 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 800589369} + - component: {fileID: 800589368} + 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 &800589368 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 800589367} + 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 &800589369 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 800589367} + 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_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} +--- !u!1 &827015172 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 827015173} + m_Layer: 0 + m_Name: VisibleElements + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &827015173 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 827015172} + m_LocalRotation: {x: 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: 341865018} + - {fileID: 1783195440} + m_Father: {fileID: 648875439} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &839192567 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 839192568} + - component: {fileID: 839192571} + - component: {fileID: 839192570} + - component: {fileID: 839192569} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &839192568 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 839192567} + m_LocalRotation: {x: 0.5, y: -0.5, z: 0.5, w: 0.5} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.0010000002, y: 0.001, z: 0.001} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 921620002} + m_Father: {fileID: 1827888744} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 90, y: -90, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0.005} + m_SizeDelta: {x: 662, y: 423} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &839192569 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 839192567} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &839192570 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 839192567} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 1 +--- !u!223 &839192571 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 839192567} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!1001 &853127050 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 2082185081} + m_Modifications: + - target: {fileID: 4346727374823546882, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_Name + value: PoseMarker + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.z + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} +--- !u!4 &853127051 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + m_PrefabInstance: {fileID: 853127050} + m_PrefabAsset: {fileID: 0} +--- !u!1 &921620001 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 921620002} + - component: {fileID: 921620004} + - component: {fileID: 921620003} + m_Layer: 5 + m_Name: PoseName + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &921620002 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 921620001} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.05, y: 0.05, z: 0.05} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 839192568} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -25, y: -30} + m_SizeDelta: {x: 1000, y: 1000} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &921620003 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 921620001} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 300 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 3 + m_MaxSize: 300 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Pinch +--- !u!222 &921620004 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 921620001} + m_CullTransparentMesh: 0 +--- !u!1 &987801177 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 987801178} + - component: {fileID: 987801181} + - component: {fileID: 987801180} + - component: {fileID: 987801179} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &987801178 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 987801177} + m_LocalRotation: {x: 0.5, y: -0.5, z: 0.5, w: 0.5} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.0010000002, y: 0.001, z: 0.001} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 536899354} + m_Father: {fileID: 1431664736} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 90, y: -90, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0.005} + m_SizeDelta: {x: 662, y: 423} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &987801179 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 987801177} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &987801180 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 987801177} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 1 +--- !u!223 &987801181 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 987801177} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!1 &1001076696 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1001076697} + - component: {fileID: 1001076698} + - component: {fileID: 1001076699} + m_Layer: 0 + m_Name: PinchL + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1001076697 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1001076696} + m_LocalRotation: {x: -0.38268343, y: -0, z: -0, w: 0.92387956} + m_LocalPosition: {x: -0.2, y: -0.1, z: 0.2} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 2123683506} + m_Father: {fileID: 648816140} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: -45, y: 0, z: 0} +--- !u!114 &1001076698 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1001076696} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d767f31532f3830418d2a90282fb22c1, type: 3} + m_Name: + m_EditorClassIdentifier: + PoseName: HandPinchL + VisibleElements: {fileID: 2123683505} + m_DevicePose: {fileID: 8422739735587986807, guid: a3cf112ff75fe4944a9c9f651df874b7, type: 3} +--- !u!114 &1001076699 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1001076696} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c2fadf230d1919748a9aa21d40f74619, type: 3} + m_Name: + m_EditorClassIdentifier: + m_TrackingType: 0 + m_UpdateType: 0 + m_PositionInput: + m_UseReference: 0 + m_Action: + m_Name: Position Input + m_Type: 0 + m_ExpectedControlType: + m_Id: be467eaa-ac04-4088-acc6-cd761ae97638 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: e37e15da-50d1-4071-a6ab-0b85be8c0c14 + m_Path: {LeftHand}/pinchPosition + m_Interactions: + m_Processors: + m_Groups: + m_Action: Position Input + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: 0} + m_RotationInput: + m_UseReference: 0 + m_Action: + m_Name: Rotation Input + m_Type: 0 + m_ExpectedControlType: + m_Id: b367da37-aab6-41e1-8cda-fe9c3748053d + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 2516f8b5-6c23-4826-8c50-492cc9f5146d + m_Path: {LeftHand}/pinchRotation + m_Interactions: + m_Processors: + m_Groups: + m_Action: Rotation Input + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: 0} + m_PositionAction: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_RotationAction: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_HasMigratedActions: 1 +--- !u!1 &1007103283 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1007103284} + - component: {fileID: 1007103286} + - component: {fileID: 1007103285} + m_Layer: 5 + m_Name: PoseName + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1007103284 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1007103283} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.05, y: 0.05, z: 0.05} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1769538597} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -25, y: -30} + m_SizeDelta: {x: 1000, y: 1000} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1007103285 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1007103283} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 300 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 3 + m_MaxSize: 300 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Poke +--- !u!222 &1007103286 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1007103283} + m_CullTransparentMesh: 0 +--- !u!1 &1016180698 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1016180699} + m_Layer: 0 + m_Name: VisibleElements + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1016180699 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1016180698} + m_LocalRotation: {x: 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: 1708107230} + - {fileID: 543450652138717645} + m_Father: {fileID: 337786710} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &1043234596 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 1431664736} + m_Modifications: + - target: {fileID: 4346727374823546882, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_Name + value: PoseMarker + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.z + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} +--- !u!4 &1043234597 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + m_PrefabInstance: {fileID: 1043234596} + m_PrefabAsset: {fileID: 0} +--- !u!1 &1056226116 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1056226117} + m_Layer: 0 + m_Name: VisibleElements + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1056226117 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1056226116} + m_LocalRotation: {x: 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: 648816140} + - {fileID: 543450652974811723} + m_Father: {fileID: 1620124919} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1186812268 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1186812269} + - component: {fileID: 1186812271} + - component: {fileID: 1186812270} + m_Layer: 0 + m_Name: Title + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1186812269 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1186812268} + m_LocalRotation: {x: 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: 1598290185} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 290} + m_SizeDelta: {x: 480, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1186812270 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1186812268} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.87279403, g: 0.8773585, b: 0.120016046, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Right Hand +--- !u!222 &1186812271 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1186812268} + m_CullTransparentMesh: 1 +--- !u!1 &1221802854 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1221802855} + - component: {fileID: 1221802856} + - component: {fileID: 1221802857} + m_Layer: 0 + m_Name: PinchR + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1221802855 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1221802854} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0.2, y: 0.1, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 113036721} + m_Father: {fileID: 6088718223551412298} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1221802856 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1221802854} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d767f31532f3830418d2a90282fb22c1, type: 3} + m_Name: + m_EditorClassIdentifier: + PoseName: ControllerPinchR + VisibleElements: {fileID: 113036720} + m_DevicePose: {fileID: 2539153377240041288, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} +--- !u!114 &1221802857 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1221802854} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c2fadf230d1919748a9aa21d40f74619, type: 3} + m_Name: + m_EditorClassIdentifier: + m_TrackingType: 0 + m_UpdateType: 0 + m_PositionInput: + m_UseReference: 0 + m_Action: + m_Name: Position Input + m_Type: 0 + m_ExpectedControlType: + m_Id: 36cc1ffe-f520-4abf-a33c-88cc468874ed + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: af976f02-cb30-4730-8d68-a63cdd2bd331 + m_Path: {RightHand}/pinchPosition + m_Interactions: + m_Processors: + m_Groups: + m_Action: Position Input + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: 0} + m_RotationInput: + m_UseReference: 0 + m_Action: + m_Name: Rotation Input + m_Type: 0 + m_ExpectedControlType: + m_Id: 0bbc3998-684b-462f-8531-57fe224ad0b7 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 95323fbd-2cde-4589-9cfa-0a3a81e793cd + m_Path: {RightHand}/pinchRotation + m_Interactions: + m_Processors: + m_Groups: + m_Action: Rotation Input + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: 0} + m_PositionAction: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_RotationAction: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_HasMigratedActions: 1 +--- !u!1001 &1226082257 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 680256675} + m_Modifications: + - target: {fileID: 4346727374823546882, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_Name + value: PoseMarker + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.z + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} +--- !u!4 &1226082258 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + m_PrefabInstance: {fileID: 1226082257} + m_PrefabAsset: {fileID: 0} +--- !u!1 &1240471479 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1240471480} + - component: {fileID: 1240471482} + - component: {fileID: 1240471481} + m_Layer: 0 + m_Name: Panel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1240471480 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1240471479} + m_LocalRotation: {x: 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: 672225544} + - {fileID: 1891399351} + m_Father: {fileID: 1758761036} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1240471481 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1240471479} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1240471482 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1240471479} + m_CullTransparentMesh: 1 +--- !u!1 &1313201398 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1313201399} + - component: {fileID: 1313201402} + - component: {fileID: 1313201401} + - component: {fileID: 1313201400} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1313201399 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1313201398} + m_LocalRotation: {x: 0.5, y: -0.5, z: 0.5, w: 0.5} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.0010000002, y: 0.001, z: 0.001} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1719149637} + m_Father: {fileID: 2123683506} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 90, y: -90, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0.005} + m_SizeDelta: {x: 662, y: 423} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1313201400 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1313201398} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &1313201401 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1313201398} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 1 +--- !u!223 &1313201402 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1313201398} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!1 &1387253791 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1387253792} + - component: {fileID: 1387253793} + - component: {fileID: 1387253794} + m_Layer: 0 + m_Name: PointerL + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1387253792 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1387253791} + m_LocalRotation: {x: -0.38268343, y: -0, z: -0, w: 0.92387956} + m_LocalPosition: {x: -0.2, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 2082185081} + m_Father: {fileID: 648816140} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: -45, y: 0, z: 0} +--- !u!114 &1387253793 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1387253791} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d767f31532f3830418d2a90282fb22c1, type: 3} + m_Name: + m_EditorClassIdentifier: + PoseName: HandPointerL + VisibleElements: {fileID: 2082185080} + m_DevicePose: {fileID: 8195979127133379619, guid: a3cf112ff75fe4944a9c9f651df874b7, type: 3} +--- !u!114 &1387253794 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1387253791} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c2fadf230d1919748a9aa21d40f74619, type: 3} + m_Name: + m_EditorClassIdentifier: + m_TrackingType: 0 + m_UpdateType: 0 + m_PositionInput: + m_UseReference: 0 + m_Action: + m_Name: Position Input + m_Type: 0 + m_ExpectedControlType: + m_Id: f308f13d-1924-4422-8e58-0905ec3665d9 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: f4da5114-86b2-4fc3-8e4a-e9c77e4af95c + m_Path: {LeftHand}/pointerPosition + m_Interactions: + m_Processors: + m_Groups: + m_Action: Position Input + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: 0} + m_RotationInput: + m_UseReference: 0 + m_Action: + m_Name: Rotation Input + m_Type: 0 + m_ExpectedControlType: + m_Id: 0d598cb9-487f-4ab8-b6a7-0c16d98523cd + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 3b8af6d0-c9a9-460b-a8fa-a1a9a535b1ac + m_Path: {LeftHand}/pointerRotation + m_Interactions: + m_Processors: + m_Groups: + m_Action: Rotation Input + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: 0} + m_PositionAction: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_RotationAction: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_HasMigratedActions: 1 +--- !u!1 &1414890483 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1414890484} + - component: {fileID: 1414890486} + - component: {fileID: 1414890485} + m_Layer: 0 + m_Name: Title + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1414890484 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1414890483} + m_LocalRotation: {x: 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: 4548105312430586151} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 290} + m_SizeDelta: {x: 480, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1414890485 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1414890483} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.0670861, g: 0.7924528, b: 0.063545756, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Left Hand +--- !u!222 &1414890486 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1414890483} + m_CullTransparentMesh: 1 +--- !u!1 &1431664735 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1431664736} + m_Layer: 0 + m_Name: VisibleElements + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1431664736 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1431664735} + m_LocalRotation: {x: 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: 1043234597} + - {fileID: 987801178} + m_Father: {fileID: 2141434880} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1444725033 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1444725034} + - component: {fileID: 1444725036} + - component: {fileID: 1444725035} + m_Layer: 5 + m_Name: PoseName + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1444725034 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1444725033} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.05, y: 0.05, z: 0.05} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1783195440} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -25, y: -30} + m_SizeDelta: {x: 1000, y: 1000} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1444725035 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1444725033} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 300 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 3 + m_MaxSize: 300 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Pinch + +' +--- !u!222 &1444725036 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1444725033} + m_CullTransparentMesh: 0 +--- !u!1 &1447731698 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1447731699} + - component: {fileID: 1447731700} + - component: {fileID: 1447731701} + m_Layer: 0 + m_Name: GripR + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1447731699 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1447731698} + m_LocalRotation: {x: -0.38268343, y: -0, z: -0, w: 0.92387956} + m_LocalPosition: {x: 0.2, y: -0.1, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 4560210} + m_Father: {fileID: 1708107230} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: -45, y: 0, z: 0} +--- !u!114 &1447731700 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1447731698} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d767f31532f3830418d2a90282fb22c1, type: 3} + m_Name: + m_EditorClassIdentifier: + PoseName: HandGripR + VisibleElements: {fileID: 4560209} + m_DevicePose: {fileID: 662888850959169890, guid: a3cf112ff75fe4944a9c9f651df874b7, type: 3} +--- !u!114 &1447731701 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1447731698} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c2fadf230d1919748a9aa21d40f74619, type: 3} + m_Name: + m_EditorClassIdentifier: + m_TrackingType: 0 + m_UpdateType: 0 + m_PositionInput: + m_UseReference: 0 + m_Action: + m_Name: Position Input + m_Type: 0 + m_ExpectedControlType: + m_Id: 5bb63151-b687-47c6-9108-f2b19c86ad6a + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 21cf3f01-8b58-4f9e-af5d-ceac34530491 + m_Path: {RightHand}/devicePosition + m_Interactions: + m_Processors: + m_Groups: + m_Action: Position Input + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: 0} + m_RotationInput: + m_UseReference: 0 + m_Action: + m_Name: Rotation Input + m_Type: 0 + m_ExpectedControlType: + m_Id: 5434533c-51d9-4aea-b00a-4424bc5d0794 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: cce6a273-1fe0-41cf-abd3-fea816149e41 + m_Path: {RightHand}/deviceRotation + m_Interactions: + m_Processors: + m_Groups: + m_Action: Rotation Input + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: 0} + m_PositionAction: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_RotationAction: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_HasMigratedActions: 1 +--- !u!1001 &1495351303 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 542039897} + m_Modifications: + - target: {fileID: 4346727374823546882, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_Name + value: PoseMarker + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.z + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} +--- !u!4 &1495351304 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + m_PrefabInstance: {fileID: 1495351303} + m_PrefabAsset: {fileID: 0} +--- !u!1 &1529176663 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1529176664} + - component: {fileID: 1529176666} + - component: {fileID: 1529176665} + m_Layer: 5 + m_Name: PoseName + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1529176664 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1529176663} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.05, y: 0.05, z: 0.05} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1616849654} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -25, y: -30} + m_SizeDelta: {x: 1000, y: 1000} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1529176665 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1529176663} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 300 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 3 + m_MaxSize: 300 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Grip +--- !u!222 &1529176666 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1529176663} + m_CullTransparentMesh: 0 +--- !u!1 &1582072418 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1582072419} + - component: {fileID: 1582072422} + - component: {fileID: 1582072421} + - component: {fileID: 1582072420} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1582072419 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1582072418} + m_LocalRotation: {x: 0.5, y: -0.5, z: 0.5, w: 0.5} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.0010000002, y: 0.001, z: 0.001} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 114975757} + m_Father: {fileID: 502637466} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 90, y: -90, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0.0050000018} + m_SizeDelta: {x: 662, y: 423} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1582072420 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1582072418} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &1582072421 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1582072418} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 1 +--- !u!223 &1582072422 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1582072418} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!1 &1598290184 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1598290185} + - component: {fileID: 1598290187} + - component: {fileID: 1598290186} + m_Layer: 0 + m_Name: Panel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1598290185 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1598290184} + m_LocalRotation: {x: 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: 1186812269} + - {fileID: 109797350} + m_Father: {fileID: 1883614655} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1598290186 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1598290184} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1598290187 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1598290184} + m_CullTransparentMesh: 1 +--- !u!1 &1607832857 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1607832858} + - component: {fileID: 1607832861} + - component: {fileID: 1607832860} + - component: {fileID: 1607832859} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1607832858 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1607832857} + m_LocalRotation: {x: 0.5, y: -0.5, z: 0.5, w: 0.5} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.0010000002, y: 0.001, z: 0.001} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 697572426} + m_Father: {fileID: 542039897} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 90, y: -90, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0.0050000018} + m_SizeDelta: {x: 662, y: 423} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1607832859 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1607832857} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &1607832860 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1607832857} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 1 +--- !u!223 &1607832861 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1607832857} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!1 &1616849653 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1616849654} + - component: {fileID: 1616849657} + - component: {fileID: 1616849656} + - component: {fileID: 1616849655} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1616849654 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1616849653} + m_LocalRotation: {x: 0.5, y: -0.5, z: 0.5, w: 0.5} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.0010000002, y: 0.001, z: 0.001} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1529176664} + m_Father: {fileID: 4560210} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 90, y: -90, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0.004999999} + m_SizeDelta: {x: 662, y: 423} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1616849655 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1616849653} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &1616849656 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1616849653} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 1 +--- !u!223 &1616849657 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1616849653} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!1 &1620124918 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1620124919} + - component: {fileID: 1620124920} + m_Layer: 0 + m_Name: LeftHand + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1620124919 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1620124918} + m_LocalRotation: {x: -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: 1528882533027096438} + - {fileID: 1056226117} + m_Father: {fileID: 700388022} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1620124920 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1620124918} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 873a88a3d45610d4489a58d37c448415, type: 3} + m_Name: + m_EditorClassIdentifier: + IsLeft: 0 + m_IsActive: {fileID: -4649195915886243137, guid: a3cf112ff75fe4944a9c9f651df874b7, type: 3} + m_TrackingState: {fileID: 4365098099671000776, guid: a3cf112ff75fe4944a9c9f651df874b7, type: 3} + m_ObjectToHide: {fileID: 1056226116} +--- !u!1 &1693846216 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1693846217} + - component: {fileID: 1693846218} + - component: {fileID: 1693846219} + m_Layer: 0 + m_Name: PokeR + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1693846217 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1693846216} + m_LocalRotation: {x: -0.38268343, y: -0, z: -0, w: 0.92387956} + m_LocalPosition: {x: 0.2, y: 0, z: 0.2} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 747964066} + m_Father: {fileID: 1708107230} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: -45, y: 0, z: 0} +--- !u!114 &1693846218 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1693846216} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d767f31532f3830418d2a90282fb22c1, type: 3} + m_Name: + m_EditorClassIdentifier: + PoseName: HandPokeR + VisibleElements: {fileID: 747964065} + m_DevicePose: {fileID: -3099022531769913961, guid: a3cf112ff75fe4944a9c9f651df874b7, type: 3} +--- !u!114 &1693846219 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1693846216} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c2fadf230d1919748a9aa21d40f74619, type: 3} + m_Name: + m_EditorClassIdentifier: + m_TrackingType: 0 + m_UpdateType: 0 + m_PositionInput: + m_UseReference: 0 + m_Action: + m_Name: Position Input + m_Type: 0 + m_ExpectedControlType: + m_Id: 14be5826-bef6-40b4-bdf4-d2c17ec34709 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: e300897c-ce37-447a-8d0a-550b0b75f7a7 + m_Path: {RightHand}/pokePosition + m_Interactions: + m_Processors: + m_Groups: + m_Action: Position Input + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: 0} + m_RotationInput: + m_UseReference: 0 + m_Action: + m_Name: Rotation Input + m_Type: 0 + m_ExpectedControlType: + m_Id: c52802b1-0440-4574-8ea7-8ff728fd1046 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 4379b44f-c0e5-4ead-b597-b6cd7eb5c298 + m_Path: {RightHand}/pokeRotation + m_Interactions: + m_Processors: + m_Groups: + m_Action: Rotation Input + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: 0} + m_PositionAction: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_RotationAction: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_HasMigratedActions: 1 +--- !u!1 &1708107229 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1708107230} + m_Layer: 0 + m_Name: Poses + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1708107230 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1708107229} + m_LocalRotation: {x: 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: 2141434880} + - {fileID: 1447731699} + - {fileID: 718567067} + - {fileID: 1693846217} + m_Father: {fileID: 1016180699} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1719149636 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1719149637} + - component: {fileID: 1719149639} + - component: {fileID: 1719149638} + m_Layer: 5 + m_Name: PoseName + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1719149637 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1719149636} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.05, y: 0.05, z: 0.05} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1313201399} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -25, y: -30} + m_SizeDelta: {x: 1000, y: 1000} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1719149638 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1719149636} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 300 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 3 + m_MaxSize: 300 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Pinch +--- !u!222 &1719149639 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1719149636} + m_CullTransparentMesh: 0 +--- !u!1 &1758761032 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1758761036} + - component: {fileID: 1758761035} + - component: {fileID: 1758761034} + - component: {fileID: 1758761033} + m_Layer: 0 + m_Name: CanvasControllerR + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1758761033 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1758761032} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &1758761034 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1758761032} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 1 +--- !u!223 &1758761035 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1758761032} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &1758761036 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1758761032} + m_LocalRotation: {x: 0, y: 0.13052616, z: 0, w: 0.9914449} + m_LocalPosition: {x: 0, y: 0, z: 5.5} + m_LocalScale: {x: 0.01, y: 0.01, z: 0.01} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1240471480} + m_Father: {fileID: 0} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 15, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 7.5, y: 1} + m_SizeDelta: {x: 500, y: 620} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1769538596 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1769538597} + - component: {fileID: 1769538600} + - component: {fileID: 1769538599} + - component: {fileID: 1769538598} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1769538597 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1769538596} + m_LocalRotation: {x: 0.5, y: -0.5, z: 0.5, w: 0.5} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.0010000002, y: 0.001, z: 0.001} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1007103284} + m_Father: {fileID: 696719460} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 90, y: -90, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0.0050000018} + m_SizeDelta: {x: 662, y: 423} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1769538598 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1769538596} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &1769538599 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1769538596} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 1 +--- !u!223 &1769538600 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1769538596} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!1 &1783195439 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1783195440} + - component: {fileID: 1783195443} + - component: {fileID: 1783195442} + - component: {fileID: 1783195441} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1783195440 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1783195439} + m_LocalRotation: {x: 0.5, y: -0.5, z: 0.5, w: 0.5} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.0010000002, y: 0.001, z: 0.001} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1444725034} + m_Father: {fileID: 827015173} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 90, y: -90, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0.005} + m_SizeDelta: {x: 662, y: 423} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1783195441 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1783195439} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &1783195442 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1783195439} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 1 +--- !u!223 &1783195443 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1783195439} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!1 &1784931272 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1784931273} + - component: {fileID: 1784931277} + - component: {fileID: 1784931276} + - component: {fileID: 1784931275} + - component: {fileID: 1784931274} + m_Layer: 0 + m_Name: Pointer + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1784931273 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1784931272} + m_LocalRotation: {x: 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: 6088718223600349648} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1784931274 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1784931272} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 78ba47d171a9d604e87df3c8c0304fde, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 0 + m_PhysicsCastDistance: 100 + m_PhysicsEventMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_PointerRingWidth: 0.005 + m_PointerCircleRadius: 0.005 + m_PointerDistance: 1 + m_PointerColor: {r: 1, g: 1, b: 1, a: 1} + m_ProgressColor: {r: 0, g: 245, b: 255, a: 1} + m_PointerMaterial: {fileID: 0} + m_PointerRenderQueue: 5000 + m_PointerSortingOrder: 32767 + m_TimeToGaze: 1.5 + m_EyeTracking: 0 + m_EyePose: {fileID: 0} + m_InputEvent: 0 + m_ActionsKeys: [] + m_AlwaysEnable: 1 +--- !u!20 &1784931275 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1784931272} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 0 + orthographic size: 5 + m_Depth: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!33 &1784931276 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1784931272} + m_Mesh: {fileID: 0} +--- !u!23 &1784931277 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1784931272} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!1 &1827888743 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1827888744} + m_Layer: 0 + m_Name: VisibleElements + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1827888744 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1827888743} + m_LocalRotation: {x: 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: 695798341} + - {fileID: 839192568} + m_Father: {fileID: 718567067} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &1829859945 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 502637466} + m_Modifications: + - target: {fileID: 4346727374823546882, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_Name + value: PoseMarker + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.z + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} +--- !u!4 &1829859946 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + m_PrefabInstance: {fileID: 1829859945} + m_PrefabAsset: {fileID: 0} +--- !u!1 &1883614651 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1883614655} + - component: {fileID: 1883614654} + - component: {fileID: 1883614653} + - component: {fileID: 1883614652} + m_Layer: 0 + m_Name: CanvasHandR + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1883614652 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1883614651} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &1883614653 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1883614651} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 1 +--- !u!223 &1883614654 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1883614651} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &1883614655 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1883614651} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 6} + m_LocalScale: {x: 0.01, y: 0.01, z: 0.01} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1598290185} + m_Father: {fileID: 0} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 2.5, y: 1} + m_SizeDelta: {x: 500, y: 620} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1891399350 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1891399351} + - component: {fileID: 1891399354} + - component: {fileID: 1891399353} + - component: {fileID: 1891399352} + m_Layer: 0 + m_Name: Status + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1891399351 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1891399350} + m_LocalRotation: {x: 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: 1240471480} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: -20} + m_SizeDelta: {x: 480, y: 580} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1891399352 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1891399350} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e25dee7271229074b89aeda5179f44dc, type: 3} + m_Name: + m_EditorClassIdentifier: + isLeft: 0 + pointerPose: {fileID: -8433335059429281244, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + pointerValue: {fileID: -6216225696078945647, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + pointerReady: {fileID: 7297311258188836544, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + gripPose: {fileID: 5353795866969974560, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + gripValue: {fileID: -3484523292502358634, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + gripReady: {fileID: -2474841971796698602, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + pinchPose: {fileID: 2539153377240041288, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + pinchValue: {fileID: 2199745936722317752, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + pinchReady: {fileID: -2844871289620290284, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + pokePose: {fileID: 7327349780114680538, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} +--- !u!114 &1891399353 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1891399350} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.8536516, g: 0.8784314, b: 0.1764706, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 12 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Right Controller +--- !u!222 &1891399354 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1891399350} + m_CullTransparentMesh: 1 +--- !u!1 &1933349422 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1933349423} + - component: {fileID: 1933349424} + - component: {fileID: 1933349425} + m_Layer: 0 + m_Name: PokeR + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1933349423 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1933349422} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0.2, y: 0.1, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 542039897} + m_Father: {fileID: 6088718223551412298} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1933349424 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1933349422} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d767f31532f3830418d2a90282fb22c1, type: 3} + m_Name: + m_EditorClassIdentifier: + PoseName: ControllerPokeR + VisibleElements: {fileID: 542039896} + m_DevicePose: {fileID: 7327349780114680538, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} +--- !u!114 &1933349425 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1933349422} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c2fadf230d1919748a9aa21d40f74619, type: 3} + m_Name: + m_EditorClassIdentifier: + m_TrackingType: 0 + m_UpdateType: 0 + m_PositionInput: + m_UseReference: 0 + m_Action: + m_Name: Position Input + m_Type: 0 + m_ExpectedControlType: + m_Id: 941ff171-3067-4c1e-ab6d-b57d04e37c36 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: b97f8db1-a2b8-4ad8-ab46-128ada1e617d + m_Path: {RightHand}/pokePosition + m_Interactions: + m_Processors: + m_Groups: + m_Action: Position Input + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: 0} + m_RotationInput: + m_UseReference: 0 + m_Action: + m_Name: Rotation Input + m_Type: 0 + m_ExpectedControlType: + m_Id: e639f154-2259-47b6-b0e8-c2746ee12287 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 9147c6e8-9cb1-4568-b44e-6c1fdf285a1e + m_Path: {RightHand}/pokeRotation + m_Interactions: + m_Processors: + m_Groups: + m_Action: Rotation Input + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: 0} + m_PositionAction: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_RotationAction: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_HasMigratedActions: 1 +--- !u!1 &1947228662 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1947228663} + - component: {fileID: 1947228664} + - component: {fileID: 1947228665} + m_Layer: 0 + m_Name: PokeL + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1947228663 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1947228662} + m_LocalRotation: {x: -0.38268343, y: -0, z: -0, w: 0.92387956} + m_LocalPosition: {x: -0.2, y: 0, z: 0.2} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 696719460} + m_Father: {fileID: 648816140} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: -45, y: 0, z: 0} +--- !u!114 &1947228664 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1947228662} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d767f31532f3830418d2a90282fb22c1, type: 3} + m_Name: + m_EditorClassIdentifier: + PoseName: HandPokeL + VisibleElements: {fileID: 696719459} + m_DevicePose: {fileID: -3168631708142701608, guid: a3cf112ff75fe4944a9c9f651df874b7, type: 3} +--- !u!114 &1947228665 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1947228662} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c2fadf230d1919748a9aa21d40f74619, type: 3} + m_Name: + m_EditorClassIdentifier: + m_TrackingType: 0 + m_UpdateType: 0 + m_PositionInput: + m_UseReference: 0 + m_Action: + m_Name: Position Input + m_Type: 0 + m_ExpectedControlType: + m_Id: 0ddb9be8-5625-4ab6-95f0-e03924b0d392 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 3242684a-c8c9-4a15-8c00-2ab032a53032 + m_Path: {LeftHand}/pokePosition + m_Interactions: + m_Processors: + m_Groups: + m_Action: Position Input + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: 0} + m_RotationInput: + m_UseReference: 0 + m_Action: + m_Name: Rotation Input + m_Type: 0 + m_ExpectedControlType: + m_Id: 99f66690-e0e0-47e3-a814-3c2fe70fc001 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 2c103d6a-5eda-40b8-a37f-8e4a158377f9 + m_Path: {LeftHand}/pokeRotation + m_Interactions: + m_Processors: + m_Groups: + m_Action: Rotation Input + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: 0} + m_PositionAction: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_RotationAction: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_HasMigratedActions: 1 +--- !u!1 &1962967395 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1962967396} + - component: {fileID: 1962967398} + - component: {fileID: 1962967397} + m_Layer: 0 + m_Name: Panel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1962967396 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1962967395} + m_LocalRotation: {x: 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: 295198977} + - {fileID: 272417597} + m_Father: {fileID: 59975514} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1962967397 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1962967395} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1962967398 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1962967395} + m_CullTransparentMesh: 1 +--- !u!1 &1969357015 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1969357016} + - component: {fileID: 1969357017} + - component: {fileID: 1969357018} + m_Layer: 0 + m_Name: GripL + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1969357016 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1969357015} + m_LocalRotation: {x: -0.38268343, y: -0, z: -0, w: 0.92387956} + m_LocalPosition: {x: -0.2, y: -0.1, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 680256675} + m_Father: {fileID: 648816140} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: -45, y: 0, z: 0} +--- !u!114 &1969357017 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1969357015} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d767f31532f3830418d2a90282fb22c1, type: 3} + m_Name: + m_EditorClassIdentifier: + PoseName: HandGripL + VisibleElements: {fileID: 680256674} + m_DevicePose: {fileID: 4691884810758127206, guid: a3cf112ff75fe4944a9c9f651df874b7, type: 3} +--- !u!114 &1969357018 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1969357015} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c2fadf230d1919748a9aa21d40f74619, type: 3} + m_Name: + m_EditorClassIdentifier: + m_TrackingType: 0 + m_UpdateType: 0 + m_PositionInput: + m_UseReference: 0 + m_Action: + m_Name: Position Input + m_Type: 0 + m_ExpectedControlType: + m_Id: deb33b92-b1a4-4745-9d9a-36e4c5105fc8 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: e083b99d-8082-4be7-bcb9-71e8efad9cc0 + m_Path: {LeftHand}/devicePosition + m_Interactions: + m_Processors: + m_Groups: + m_Action: Position Input + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: 0} + m_RotationInput: + m_UseReference: 0 + m_Action: + m_Name: Rotation Input + m_Type: 0 + m_ExpectedControlType: + m_Id: 937f0c6a-25a8-449d-8a32-4c5eff9ed5ae + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 3ed67984-29fc-477a-9856-5872c676727a + m_Path: {LeftHand}/deviceRotation + m_Interactions: + m_Processors: + m_Groups: + m_Action: Rotation Input + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: 0} + m_PositionAction: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: deb33b92-b1a4-4745-9d9a-36e4c5105fc8 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_RotationAction: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: 937f0c6a-25a8-449d-8a32-4c5eff9ed5ae + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_HasMigratedActions: 1 +--- !u!1 &2064717940 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2064717941} + - component: {fileID: 2064717942} + - component: {fileID: 2064717943} + m_Layer: 0 + m_Name: PokeL + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2064717941 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2064717940} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -0.2, y: 0.1, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 502637466} + m_Father: {fileID: 6088718223946704801} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &2064717942 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2064717940} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d767f31532f3830418d2a90282fb22c1, type: 3} + m_Name: + m_EditorClassIdentifier: + PoseName: ControllerPokeL + VisibleElements: {fileID: 502637465} + m_DevicePose: {fileID: -5253613819293204042, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} +--- !u!114 &2064717943 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2064717940} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c2fadf230d1919748a9aa21d40f74619, type: 3} + m_Name: + m_EditorClassIdentifier: + m_TrackingType: 0 + m_UpdateType: 0 + m_PositionInput: + m_UseReference: 0 + m_Action: + m_Name: Position Input + m_Type: 0 + m_ExpectedControlType: + m_Id: 114409c8-09b7-4dc1-a9f8-2d13ec865116 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: ab365187-b6e6-4b75-95aa-451a42f4a2ab + m_Path: {LeftHand}/pokePosition + m_Interactions: + m_Processors: + m_Groups: + m_Action: Position Input + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: 0} + m_RotationInput: + m_UseReference: 0 + m_Action: + m_Name: Rotation Input + m_Type: 0 + m_ExpectedControlType: + m_Id: bc350d55-fac4-4821-a117-21648093a92f + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 161e6c5c-5bd2-4e79-a542-3b0ee1eea7fe + m_Path: {LeftHand}/pokeRotation + m_Interactions: + m_Processors: + m_Groups: + m_Action: Rotation Input + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: 0} + m_PositionAction: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_RotationAction: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_HasMigratedActions: 1 +--- !u!1 &2073298331 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2073298332} + - component: {fileID: 2073298335} + - component: {fileID: 2073298334} + - component: {fileID: 2073298333} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2073298332 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2073298331} + m_LocalRotation: {x: 0.5, y: -0.5, z: 0.5, w: 0.5} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.0010000002, y: 0.001, z: 0.001} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 141580940} + m_Father: {fileID: 680256675} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 90, y: -90, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0.004999999} + m_SizeDelta: {x: 662, y: 423} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2073298333 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2073298331} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &2073298334 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2073298331} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 1 +--- !u!223 &2073298335 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2073298331} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!1 &2082185080 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2082185081} + m_Layer: 0 + m_Name: VisibleElements + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2082185081 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2082185080} + m_LocalRotation: {x: 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: 853127051} + - {fileID: 1818810338230013389} + m_Father: {fileID: 1387253792} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &2123683505 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2123683506} + m_Layer: 0 + m_Name: VisibleElements + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2123683506 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2123683505} + m_LocalRotation: {x: 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: 20675711} + - {fileID: 1313201399} + m_Father: {fileID: 1001076697} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &2141434879 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2141434880} + - component: {fileID: 2141434881} + - component: {fileID: 2141434882} + m_Layer: 0 + m_Name: PointerR + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2141434880 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2141434879} + m_LocalRotation: {x: -0.38268343, y: -0, z: -0, w: 0.92387956} + m_LocalPosition: {x: 0.2, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1431664736} + m_Father: {fileID: 1708107230} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: -45, y: 0, z: 0} +--- !u!114 &2141434881 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2141434879} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d767f31532f3830418d2a90282fb22c1, type: 3} + m_Name: + m_EditorClassIdentifier: + PoseName: HandPointerR + VisibleElements: {fileID: 1431664735} + m_DevicePose: {fileID: -636850554879344728, guid: a3cf112ff75fe4944a9c9f651df874b7, type: 3} +--- !u!114 &2141434882 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2141434879} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c2fadf230d1919748a9aa21d40f74619, type: 3} + m_Name: + m_EditorClassIdentifier: + m_TrackingType: 0 + m_UpdateType: 0 + m_PositionInput: + m_UseReference: 0 + m_Action: + m_Name: Position Input + m_Type: 0 + m_ExpectedControlType: + m_Id: 6e9173a8-5740-4a9f-9a29-967daa02ef34 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 0334b4b2-d82b-4e22-beb0-343a3e27465f + m_Path: {RightHand}/pointerPosition + m_Interactions: + m_Processors: + m_Groups: + m_Action: Position Input + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: 0} + m_RotationInput: + m_UseReference: 0 + m_Action: + m_Name: Rotation Input + m_Type: 0 + m_ExpectedControlType: + m_Id: 67d98068-510b-48cf-81a7-12a3a2fec7cc + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 513494b6-24ae-41dd-98cf-c81c238fb147 + m_Path: {RightHand}/pointerRotation + m_Interactions: + m_Processors: + m_Groups: + m_Action: Rotation Input + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: 0} + m_PositionAction: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_RotationAction: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_HasMigratedActions: 1 +--- !u!4 &543450651583740275 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5562507940235781211, guid: a6579de606ad5b54893722f363b5371d, type: 3} + m_PrefabInstance: {fileID: 5384975832136637736} + m_PrefabAsset: {fileID: 0} +--- !u!4 &543450652138717645 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 7969860735434438478, guid: 3479a972c0ca20a4dbcd93c65a46b584, type: 3} + m_PrefabInstance: {fileID: 7570581081285064323} + m_PrefabAsset: {fileID: 0} +--- !u!4 &543450652974811723 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4788675833995466119, guid: 6920a1d2bb2938a4a81cc1ea017b3610, type: 3} + m_PrefabInstance: {fileID: 5043594191746670540} + m_PrefabAsset: {fileID: 0} +--- !u!4 &543450653599495775 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 7100966664432217780, guid: 02a3bc45c8b055049bac3d6a792481b6, type: 3} + m_PrefabInstance: {fileID: 7278110509245602027} + m_PrefabAsset: {fileID: 0} +--- !u!1 &1528882533027096437 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1528882533027096438} + - component: {fileID: 1528882533027096439} + m_Layer: 0 + m_Name: LeftHandModel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!4 &1528882533027096438 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1528882533027096437} + m_LocalRotation: {x: -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: 1620124919} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1528882533027096439 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1528882533027096437} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c232203bf3067944e84cf70b2629999a, type: 3} + m_Name: + m_EditorClassIdentifier: + isLeft: 1 + allowUntrackedPose: 0 + pointColor: {r: 0, g: 1, b: 0, a: 1} + linkColor: {r: 1, g: 1, b: 1, a: 1} + material: {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} +--- !u!1 &1528882533595726733 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1528882533595726734} + - component: {fileID: 1528882533595726735} + m_Layer: 0 + m_Name: RightHandModel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!4 &1528882533595726734 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1528882533595726733} + m_LocalRotation: {x: -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: 337786710} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1528882533595726735 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1528882533595726733} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c232203bf3067944e84cf70b2629999a, type: 3} + m_Name: + m_EditorClassIdentifier: + isLeft: 0 + allowUntrackedPose: 0 + pointColor: {r: 0, g: 1, b: 0, a: 1} + linkColor: {r: 1, g: 1, b: 1, a: 1} + material: {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} +--- !u!1 &1818810337923870754 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1818810337923870757} + - component: {fileID: 1818810337923870759} + - component: {fileID: 1818810337923870756} + m_Layer: 5 + m_Name: PoseName + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1818810337923870756 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1818810337923870754} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 300 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 3 + m_MaxSize: 300 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Pointer +--- !u!224 &1818810337923870757 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1818810337923870754} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.05, y: 0.05, z: 0.05} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1818810338230013389} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -25, y: -30} + m_SizeDelta: {x: 1000, y: 1000} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1818810337923870759 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1818810337923870754} + m_CullTransparentMesh: 0 +--- !u!1 &1818810338230013386 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1818810338230013389} + - component: {fileID: 1818810338230013390} + - component: {fileID: 1818810338230013391} + - component: {fileID: 1818810338230013388} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1818810338230013388 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1818810338230013386} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!224 &1818810338230013389 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1818810338230013386} + m_LocalRotation: {x: 0.5, y: -0.5, z: 0.5, w: 0.5} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.0010000002, y: 0.001, z: 0.001} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1818810337923870757} + m_Father: {fileID: 2082185081} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 90, y: -90, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0.005} + m_SizeDelta: {x: 662, y: 423} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!223 &1818810338230013390 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1818810338230013386} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!114 &1818810338230013391 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1818810338230013386} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 1 +--- !u!114 &3293209246825261792 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3293209246825261796} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &3293209246825261793 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3293209246825261796} + m_CullTransparentMesh: 1 +--- !u!114 &3293209246825261794 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3293209246825261796} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a8326c0ac559a1e4fbd29a1f10d8cf56, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &3293209246825261795 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3293209246825261796} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.8248659, g: 0.64275545, b: 0.8679245, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 3293209246825261792} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 3293209246825261794} + m_TargetAssemblyTypeName: VIVE.OpenXR.Samples.QuitAp, VIVE.OpenXR.Samples + m_MethodName: ExitGame + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!1 &3293209246825261796 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3293209246825261797} + - component: {fileID: 3293209246825261793} + - component: {fileID: 3293209246825261792} + - component: {fileID: 3293209246825261795} + - component: {fileID: 3293209246825261794} + m_Layer: 0 + m_Name: QuitButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3293209246825261797 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3293209246825261796} + m_LocalRotation: {x: 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: 3293209248375657797} + m_Father: {fileID: 3293209247566054071} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!223 &3293209247566054066 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3293209247566054070} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!114 &3293209247566054067 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3293209247566054070} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: afe3cda3e244f60419474164d6ba3b0b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 0 + m_CheckFor2DOcclusion: 0 + m_CheckFor3DOcclusion: 0 + m_MaxDistance: 1000 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 0 +--- !u!114 &3293209247566054069 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3293209247566054070} + 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: 5 + m_PresetInfoIsWorld: 1 +--- !u!1 &3293209247566054070 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3293209247566054071} + - component: {fileID: 3293209247566054066} + - component: {fileID: 3293209247566054069} + - component: {fileID: 3293209247566054067} + m_Layer: 0 + m_Name: QuitCanvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3293209247566054071 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3293209247566054070} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 3} + m_LocalScale: {x: 0.005, y: 0.005, z: 0.005} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 3293209246825261797} + m_Father: {fileID: 0} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0.927, y: -0.666} + m_SizeDelta: {x: 200, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &3293209248375657794 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3293209248375657796} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Quit +--- !u!222 &3293209248375657795 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3293209248375657796} + m_CullTransparentMesh: 1 +--- !u!1 &3293209248375657796 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3293209248375657797} + - component: {fileID: 3293209248375657795} + - component: {fileID: 3293209248375657794} + m_Layer: 0 + m_Name: Text (Legacy) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3293209248375657797 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3293209248375657796} + m_LocalRotation: {x: -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: 3293209246825261797} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &4548105312430586148 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4548105312430586151} + - component: {fileID: 4548105312430586153} + - component: {fileID: 4548105312430586150} + m_Layer: 0 + m_Name: Panel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &4548105312430586150 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4548105312430586148} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!224 &4548105312430586151 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4548105312430586148} + m_LocalRotation: {x: 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: 1414890484} + - {fileID: 4548105313091498398} + m_Father: {fileID: 4548105312872241568} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4548105312430586153 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4548105312430586148} + m_CullTransparentMesh: 1 +--- !u!224 &4548105312872241568 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4548105312872241569} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 6} + m_LocalScale: {x: 0.01, y: 0.01, z: 0.01} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 4548105312430586151} + m_Father: {fileID: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -2.5, y: 1} + m_SizeDelta: {x: 500, y: 620} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &4548105312872241569 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4548105312872241568} + - component: {fileID: 4548105312872241573} + - component: {fileID: 4548105312872241570} + - component: {fileID: 4548105312872241571} + m_Layer: 0 + m_Name: CanvasHandL + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &4548105312872241570 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4548105312872241569} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 1 +--- !u!114 &4548105312872241571 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4548105312872241569} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!223 &4548105312872241573 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4548105312872241569} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!114 &4548105313091498368 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4548105313091498399} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.21964316, g: 0.8784314, b: 0.1764706, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 12 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Left Hand +--- !u!222 &4548105313091498371 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4548105313091498399} + m_CullTransparentMesh: 1 +--- !u!224 &4548105313091498398 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4548105313091498399} + m_LocalRotation: {x: 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: 4548105312430586151} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: -20} + m_SizeDelta: {x: 480, y: 580} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &4548105313091498399 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4548105313091498398} + - component: {fileID: 4548105313091498371} + - component: {fileID: 4548105313091498368} + - component: {fileID: 4548105313091498400} + m_Layer: 0 + m_Name: Status + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &4548105313091498400 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4548105313091498399} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e25dee7271229074b89aeda5179f44dc, type: 3} + m_Name: + m_EditorClassIdentifier: + isLeft: 1 + pointerPose: {fileID: 8195979127133379619, guid: a3cf112ff75fe4944a9c9f651df874b7, type: 3} + pointerValue: {fileID: -7286733026077906431, guid: a3cf112ff75fe4944a9c9f651df874b7, type: 3} + pointerReady: {fileID: -6146625067788632741, guid: a3cf112ff75fe4944a9c9f651df874b7, type: 3} + gripPose: {fileID: 4691884810758127206, guid: a3cf112ff75fe4944a9c9f651df874b7, type: 3} + gripValue: {fileID: -4543240068950533718, guid: a3cf112ff75fe4944a9c9f651df874b7, type: 3} + gripReady: {fileID: -9002769084722280698, guid: a3cf112ff75fe4944a9c9f651df874b7, type: 3} + pinchPose: {fileID: 8422739735587986807, guid: a3cf112ff75fe4944a9c9f651df874b7, type: 3} + pinchValue: {fileID: -3325905155861328889, guid: a3cf112ff75fe4944a9c9f651df874b7, type: 3} + pinchReady: {fileID: -6357962440050007069, guid: a3cf112ff75fe4944a9c9f651df874b7, type: 3} + pokePose: {fileID: -3168631708142701608, guid: a3cf112ff75fe4944a9c9f651df874b7, type: 3} +--- !u!222 &4558480328225706304 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4558480328225706308} + m_CullTransparentMesh: 1 +--- !u!223 &4558480328225706306 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4558480328225706308} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 32767 + m_TargetDisplay: 0 +--- !u!114 &4558480328225706307 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4558480328225706308} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &4558480328225706308 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4558480328225706309} + - component: {fileID: 4558480328225706304} + - component: {fileID: 4558480328225706307} + - component: {fileID: 4558480328225706306} + m_Layer: 0 + m_Name: Pointer + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &4558480328225706309 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4558480328225706308} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.15, y: 0.15, z: 0.15} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 6088718223950534248} + 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.4, y: 0} + m_SizeDelta: {x: 1, y: 1} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1001 &5043594191746670540 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 1056226117} + m_Modifications: + - target: {fileID: 4788675833995466119, guid: 6920a1d2bb2938a4a81cc1ea017b3610, type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4788675833995466119, guid: 6920a1d2bb2938a4a81cc1ea017b3610, type: 3} + propertyPath: m_LocalPosition.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4788675833995466119, guid: 6920a1d2bb2938a4a81cc1ea017b3610, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4788675833995466119, guid: 6920a1d2bb2938a4a81cc1ea017b3610, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4788675833995466119, guid: 6920a1d2bb2938a4a81cc1ea017b3610, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4788675833995466119, guid: 6920a1d2bb2938a4a81cc1ea017b3610, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4788675833995466119, guid: 6920a1d2bb2938a4a81cc1ea017b3610, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4788675833995466119, guid: 6920a1d2bb2938a4a81cc1ea017b3610, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4788675833995466119, guid: 6920a1d2bb2938a4a81cc1ea017b3610, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4788675833995466119, guid: 6920a1d2bb2938a4a81cc1ea017b3610, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4788675833995466119, guid: 6920a1d2bb2938a4a81cc1ea017b3610, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5277967938119028541, guid: 6920a1d2bb2938a4a81cc1ea017b3610, type: 3} + propertyPath: m_Name + value: ViveHandL + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 6920a1d2bb2938a4a81cc1ea017b3610, type: 3} +--- !u!1001 &5384975832136637736 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 6088718223950534248} + m_Modifications: + - target: {fileID: 5078423398334037729, guid: a6579de606ad5b54893722f363b5371d, type: 3} + propertyPath: m_Name + value: ViveFocus3ControllerAimR + objectReference: {fileID: 0} + - target: {fileID: 5562507940235781211, guid: a6579de606ad5b54893722f363b5371d, type: 3} + propertyPath: m_RootOrder + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 5562507940235781211, guid: a6579de606ad5b54893722f363b5371d, type: 3} + propertyPath: m_LocalPosition.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5562507940235781211, guid: a6579de606ad5b54893722f363b5371d, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5562507940235781211, guid: a6579de606ad5b54893722f363b5371d, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5562507940235781211, guid: a6579de606ad5b54893722f363b5371d, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5562507940235781211, guid: a6579de606ad5b54893722f363b5371d, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5562507940235781211, guid: a6579de606ad5b54893722f363b5371d, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5562507940235781211, guid: a6579de606ad5b54893722f363b5371d, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5562507940235781211, guid: a6579de606ad5b54893722f363b5371d, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5562507940235781211, guid: a6579de606ad5b54893722f363b5371d, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5562507940235781211, guid: a6579de606ad5b54893722f363b5371d, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: a6579de606ad5b54893722f363b5371d, type: 3} +--- !u!224 &5846902973556676800 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5846902973556676801} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.15, y: 0.15, z: 0.15} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 6088718225147325525} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 1, y: 1} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &5846902973556676801 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5846902973556676800} + - component: {fileID: 5846902973556676805} + - component: {fileID: 5846902973556676802} + - component: {fileID: 5846902973556676803} + m_Layer: 0 + m_Name: Pointer + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!114 &5846902973556676802 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5846902973556676801} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!223 &5846902973556676803 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5846902973556676801} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 32767 + m_TargetDisplay: 0 +--- !u!222 &5846902973556676805 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5846902973556676801} + m_CullTransparentMesh: 1 +--- !u!1 &6088718223504664896 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6088718223504664897} + - component: {fileID: 6088718223504664907} + - component: {fileID: 6088718223504664908} + m_Layer: 0 + m_Name: ViveRig + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6088718223504664897 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6088718223504664896} + m_LocalRotation: {x: 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: 6088718224664260447} + m_Father: {fileID: 0} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &6088718223504664907 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6088718223504664896} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6eb24623e49bb0845b2bd2a9cc43f49e, type: 3} + m_Name: + m_EditorClassIdentifier: + m_CameraOffset: {fileID: 6088718224664260446} + m_TrackingOrigin: 1 + m_CameraHeight: 1.5 + m_CameraYOffset: 1.5 + m_ActionAsset: {fileID: -944628639613478452, guid: a3cf112ff75fe4944a9c9f651df874b7, type: 3} +--- !u!114 &6088718223504664908 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6088718223504664896} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e06926a4bade2954eab815004f5060db, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionAsset: {fileID: -944628639613478452, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} +--- !u!1 &6088718223551412297 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6088718223551412298} + m_Layer: 0 + m_Name: VisibleElements + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6088718223551412298 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6088718223551412297} + m_LocalRotation: {x: 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: 6088718223950534248} + - {fileID: 1221802855} + - {fileID: 1933349423} + m_Father: {fileID: 6088718224276371993} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &6088718223600349648 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6088718223600349653} + m_LocalRotation: {x: -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: 1784931273} + m_Father: {fileID: 6088718224664260447} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &6088718223600349653 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6088718223600349648} + - component: {fileID: 6088718223600349655} + - component: {fileID: 6088718223600349654} + - component: {fileID: 6088718223600349656} + 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 &6088718223600349654 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6088718223600349653} + m_Enabled: 1 +--- !u!20 &6088718223600349655 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6088718223600349653} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.01 + far clip plane: 1000 + field of view: 60 + orthographic: 0 + orthographic size: 5 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!114 &6088718223600349656 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6088718223600349653} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c2fadf230d1919748a9aa21d40f74619, type: 3} + m_Name: + m_EditorClassIdentifier: + m_TrackingType: 0 + m_UpdateType: 0 + m_PositionInput: + m_UseReference: 0 + m_Action: + m_Name: Position + m_Type: 0 + m_ExpectedControlType: + m_Id: 27e93ac4-1a8d-4587-aaae-4b08826ac82f + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 999d0eef-dcb5-4f3b-a509-22da9f558d12 + m_Path: /centerEyePosition + m_Interactions: + m_Processors: + m_Groups: + m_Action: Position + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: 0} + m_RotationInput: + m_UseReference: 0 + m_Action: + m_Name: Rotation + m_Type: 0 + m_ExpectedControlType: + m_Id: f061ad31-8802-4a77-8c67-cbdab9a06599 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: e3da2ddc-60a9-45c0-944f-71a4259458e6 + m_Path: /centerEyeRotation + m_Interactions: + m_Processors: + m_Groups: + m_Action: Rotation + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: 0} + m_PositionAction: + m_Name: Position + m_Type: 0 + m_ExpectedControlType: + m_Id: 27e93ac4-1a8d-4587-aaae-4b08826ac82f + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 999d0eef-dcb5-4f3b-a509-22da9f558d12 + m_Path: /centerEyePosition + m_Interactions: + m_Processors: + m_Groups: + m_Action: Position + m_Flags: 0 + m_Flags: 0 + m_RotationAction: + m_Name: Rotation + m_Type: 0 + m_ExpectedControlType: + m_Id: f061ad31-8802-4a77-8c67-cbdab9a06599 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: e3da2ddc-60a9-45c0-944f-71a4259458e6 + m_Path: /centerEyeRotation + m_Interactions: + m_Processors: + m_Groups: + m_Action: Rotation + m_Flags: 0 + m_Flags: 0 + m_HasMigratedActions: 1 +--- !u!1 &6088718223833369450 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6088718223833369451} + - component: {fileID: 6088718223833369452} + m_Layer: 0 + m_Name: LeftController + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6088718223833369451 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6088718223833369450} + m_LocalRotation: {x: -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: 6088718223946704801} + m_Father: {fileID: 700388022} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &6088718223833369452 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6088718223833369450} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 873a88a3d45610d4489a58d37c448415, type: 3} + m_Name: + m_EditorClassIdentifier: + IsLeft: 1 + m_IsActive: {fileID: 3005817691354473129, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_TrackingState: {fileID: 5178774767481721072, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_ObjectToHide: {fileID: 6088718223946704800} +--- !u!1 &6088718223946704800 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6088718223946704801} + m_Layer: 0 + m_Name: VisibleElements + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6088718223946704801 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6088718223946704800} + m_LocalRotation: {x: 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: 6088718225147325525} + - {fileID: 648875439} + - {fileID: 2064717941} + m_Father: {fileID: 6088718223833369451} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &6088718223950534248 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6088718223950534255} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0.2, y: 0.1, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 4558480328225706309} + - {fileID: 543450651583740275} + m_Father: {fileID: 6088718223551412298} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &6088718223950534249 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6088718223950534255} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c2fadf230d1919748a9aa21d40f74619, type: 3} + m_Name: + m_EditorClassIdentifier: + m_TrackingType: 0 + m_UpdateType: 0 + m_PositionInput: + m_UseReference: 0 + m_Action: + m_Name: Position + m_Type: 0 + m_ExpectedControlType: + m_Id: 463dd22d-e68b-4bf2-9c64-eadb9cb595c7 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 433893d2-3f66-4fa9-8aab-0462fb8ffac4 + m_Path: {RightHand}/pointerPosition + m_Interactions: + m_Processors: + m_Groups: + m_Action: Position + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: 0} + m_RotationInput: + m_UseReference: 0 + m_Action: + m_Name: Rotation + m_Type: 0 + m_ExpectedControlType: + m_Id: 81472b8b-1d39-4f4f-8bd8-2a8ec5384508 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 818c41bc-76a6-47ef-bc96-b201ee90f995 + m_Path: {RightHand}/pointerRotation + m_Interactions: + m_Processors: + m_Groups: + m_Action: Rotation + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: 0} + m_PositionAction: + m_Name: Position + m_Type: 0 + m_ExpectedControlType: + m_Id: 463dd22d-e68b-4bf2-9c64-eadb9cb595c7 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 433893d2-3f66-4fa9-8aab-0462fb8ffac4 + m_Path: {RightHand}/pointerPosition + m_Interactions: + m_Processors: + m_Groups: + m_Action: Position + m_Flags: 0 + m_Flags: 0 + m_RotationAction: + m_Name: Rotation + m_Type: 0 + m_ExpectedControlType: + m_Id: 81472b8b-1d39-4f4f-8bd8-2a8ec5384508 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 818c41bc-76a6-47ef-bc96-b201ee90f995 + m_Path: {RightHand}/pointerRotation + m_Interactions: + m_Processors: + m_Groups: + m_Action: Rotation + m_Flags: 0 + m_Flags: 0 + m_HasMigratedActions: 1 +--- !u!1 &6088718223950534255 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6088718223950534248} + - component: {fileID: 6088718223950534249} + - component: {fileID: 6088718223950534260} + - component: {fileID: 6088718223950534263} + - component: {fileID: 6088718223950534262} + m_Layer: 0 + m_Name: Aim + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!120 &6088718223950534260 +LineRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6088718223950534255} + m_Enabled: 0 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 0 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Positions: + - {x: 0, y: 0, z: 0} + - {x: 0, y: 0, z: 1} + m_Parameters: + serializedVersion: 3 + widthMultiplier: 1 + widthCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + numCornerVertices: 0 + numCapVertices: 0 + alignment: 0 + textureMode: 0 + shadowBias: 0.5 + generateLightingData: 0 + m_UseWorldSpace: 1 + m_Loop: 0 +--- !u!114 &6088718223950534262 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6088718223950534255} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e0ed4455b73284942bc407f2d8a98eee, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 0 + m_PhysicsCastDistance: 100 + m_PhysicsEventMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_ShowRay: 1 + m_RayStartWidth: 0.01 + m_RayEndWidth: 0.01 + m_RayMaterial: {fileID: 10306, guid: 0000000000000000f000000000000000, type: 0} + m_Pointer: {fileID: 4558480328225706308} + m_IsTracked: {fileID: -1219534774619098812, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_ActionsKeys: + - {fileID: 6454596279149084813, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_AlwaysEnable: 0 +--- !u!20 &6088718223950534263 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6088718223950534255} + m_Enabled: 0 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 0 + orthographic size: 5 + m_Depth: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!1 &6088718224276371992 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6088718224276371993} + - component: {fileID: 6088718224276371994} + m_Layer: 0 + m_Name: RightController + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6088718224276371993 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6088718224276371992} + m_LocalRotation: {x: -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: 6088718223551412298} + m_Father: {fileID: 700388022} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &6088718224276371994 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6088718224276371992} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 873a88a3d45610d4489a58d37c448415, type: 3} + m_Name: + m_EditorClassIdentifier: + IsLeft: 0 + m_IsActive: {fileID: -1219534774619098812, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_TrackingState: {fileID: 7186331274470829537, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_ObjectToHide: {fileID: 6088718223551412297} +--- !u!1 &6088718224664260446 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6088718224664260447} + m_Layer: 0 + m_Name: CameraOffset + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6088718224664260447 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6088718224664260446} + m_LocalRotation: {x: 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: 6088718223600349648} + - {fileID: 700388022} + m_Father: {fileID: 6088718223504664897} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!120 &6088718225147325520 +LineRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6088718225147325524} + m_Enabled: 0 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 0 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Positions: + - {x: 0, y: 0, z: 0} + - {x: 0, y: 0, z: 1} + m_Parameters: + serializedVersion: 3 + widthMultiplier: 1 + widthCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + numCornerVertices: 0 + numCapVertices: 0 + alignment: 0 + textureMode: 0 + shadowBias: 0.5 + generateLightingData: 0 + m_UseWorldSpace: 1 + m_Loop: 0 +--- !u!114 &6088718225147325522 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6088718225147325524} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e0ed4455b73284942bc407f2d8a98eee, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 0 + m_PhysicsCastDistance: 100 + m_PhysicsEventMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_ShowRay: 1 + m_RayStartWidth: 0.01 + m_RayEndWidth: 0.01 + m_RayMaterial: {fileID: 10306, guid: 0000000000000000f000000000000000, type: 0} + m_Pointer: {fileID: 5846902973556676801} + m_IsTracked: {fileID: 3005817691354473129, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_ActionsKeys: + - {fileID: 6986180202050166755, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_AlwaysEnable: 0 +--- !u!20 &6088718225147325523 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6088718225147325524} + m_Enabled: 0 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 0 + orthographic size: 5 + m_Depth: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!1 &6088718225147325524 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6088718225147325525} + - component: {fileID: 6088718225147325526} + - component: {fileID: 6088718225147325520} + - component: {fileID: 6088718225147325523} + - component: {fileID: 6088718225147325522} + m_Layer: 0 + m_Name: Aim + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6088718225147325525 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6088718225147325524} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.2, y: 0.1, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 5846902973556676800} + - {fileID: 543450653599495775} + m_Father: {fileID: 6088718223946704801} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &6088718225147325526 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6088718225147325524} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c2fadf230d1919748a9aa21d40f74619, type: 3} + m_Name: + m_EditorClassIdentifier: + m_TrackingType: 0 + m_UpdateType: 0 + m_PositionInput: + m_UseReference: 0 + m_Action: + m_Name: Position + m_Type: 0 + m_ExpectedControlType: + m_Id: 463dd22d-e68b-4bf2-9c64-eadb9cb595c7 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 433893d2-3f66-4fa9-8aab-0462fb8ffac4 + m_Path: {LeftHand}/pointerPosition + m_Interactions: + m_Processors: + m_Groups: + m_Action: Position + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: 0} + m_RotationInput: + m_UseReference: 0 + m_Action: + m_Name: Rotation + m_Type: 0 + m_ExpectedControlType: + m_Id: 81472b8b-1d39-4f4f-8bd8-2a8ec5384508 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 818c41bc-76a6-47ef-bc96-b201ee90f995 + m_Path: {LeftHand}/pointerRotation + m_Interactions: + m_Processors: + m_Groups: + m_Action: Rotation + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: 0} + m_PositionAction: + m_Name: Position + m_Type: 0 + m_ExpectedControlType: + m_Id: 463dd22d-e68b-4bf2-9c64-eadb9cb595c7 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 433893d2-3f66-4fa9-8aab-0462fb8ffac4 + m_Path: {LeftHand}/pointerPosition + m_Interactions: + m_Processors: + m_Groups: + m_Action: Position + m_Flags: 0 + m_Flags: 0 + m_RotationAction: + m_Name: Rotation + m_Type: 0 + m_ExpectedControlType: + m_Id: 81472b8b-1d39-4f4f-8bd8-2a8ec5384508 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 818c41bc-76a6-47ef-bc96-b201ee90f995 + m_Path: {LeftHand}/pointerRotation + m_Interactions: + m_Processors: + m_Groups: + m_Action: Rotation + m_Flags: 0 + m_Flags: 0 + m_HasMigratedActions: 1 +--- !u!1001 &7278110509245602027 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 6088718225147325525} + m_Modifications: + - target: {fileID: 7100966664432217780, guid: 02a3bc45c8b055049bac3d6a792481b6, type: 3} + propertyPath: m_RootOrder + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7100966664432217780, guid: 02a3bc45c8b055049bac3d6a792481b6, type: 3} + propertyPath: m_LocalPosition.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 7100966664432217780, guid: 02a3bc45c8b055049bac3d6a792481b6, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7100966664432217780, guid: 02a3bc45c8b055049bac3d6a792481b6, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7100966664432217780, guid: 02a3bc45c8b055049bac3d6a792481b6, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7100966664432217780, guid: 02a3bc45c8b055049bac3d6a792481b6, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7100966664432217780, guid: 02a3bc45c8b055049bac3d6a792481b6, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 7100966664432217780, guid: 02a3bc45c8b055049bac3d6a792481b6, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 7100966664432217780, guid: 02a3bc45c8b055049bac3d6a792481b6, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7100966664432217780, guid: 02a3bc45c8b055049bac3d6a792481b6, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7100966664432217780, guid: 02a3bc45c8b055049bac3d6a792481b6, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7620199573934257166, guid: 02a3bc45c8b055049bac3d6a792481b6, type: 3} + propertyPath: m_Name + value: ViveFocus3ControllerAimL + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 02a3bc45c8b055049bac3d6a792481b6, type: 3} +--- !u!1001 &7570581081285064323 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 1016180699} + m_Modifications: + - target: {fileID: 7336771369383194100, guid: 3479a972c0ca20a4dbcd93c65a46b584, type: 3} + propertyPath: m_Name + value: ViveHandR + objectReference: {fileID: 0} + - target: {fileID: 7969860735434438478, guid: 3479a972c0ca20a4dbcd93c65a46b584, type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7969860735434438478, guid: 3479a972c0ca20a4dbcd93c65a46b584, type: 3} + propertyPath: m_LocalPosition.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 7969860735434438478, guid: 3479a972c0ca20a4dbcd93c65a46b584, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7969860735434438478, guid: 3479a972c0ca20a4dbcd93c65a46b584, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7969860735434438478, guid: 3479a972c0ca20a4dbcd93c65a46b584, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7969860735434438478, guid: 3479a972c0ca20a4dbcd93c65a46b584, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7969860735434438478, guid: 3479a972c0ca20a4dbcd93c65a46b584, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 7969860735434438478, guid: 3479a972c0ca20a4dbcd93c65a46b584, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 7969860735434438478, guid: 3479a972c0ca20a4dbcd93c65a46b584, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7969860735434438478, guid: 3479a972c0ca20a4dbcd93c65a46b584, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7969860735434438478, guid: 3479a972c0ca20a4dbcd93c65a46b584, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 3479a972c0ca20a4dbcd93c65a46b584, type: 3} diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/HandInteractionExt/HandInteractionExt.unity.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/HandInteractionExt/HandInteractionExt.unity.meta new file mode 100644 index 0000000..c3d2ef6 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/HandInteractionExt/HandInteractionExt.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 8e89ffc8806723b4798400329dd5e852 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Materials/VIVE/UltimateTracker/Vive_UltimateTracker.fbx.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Materials/VIVE/UltimateTracker/Vive_UltimateTracker.fbx.meta index fb88a95..40b742c 100644 --- a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Materials/VIVE/UltimateTracker/Vive_UltimateTracker.fbx.meta +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Materials/VIVE/UltimateTracker/Vive_UltimateTracker.fbx.meta @@ -3,7 +3,12 @@ guid: 407031a402781d048945abb5156739ad ModelImporter: serializedVersion: 21300 internalIDToNameTable: [] - externalObjects: {} + externalObjects: + - first: + type: UnityEngine:Material + assembly: UnityEngine.CoreModule + name: Vive_UltimateTracker1 + second: {fileID: 2100000, guid: 059b53ad53194a842b6db98a2ec57e27, type: 2} materials: materialImportMode: 2 materialName: 0 diff --git a/com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/Common/Models/SelfTracker/Material/Black.mat b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Materials/VIVE/UltimateTracker/Vive_Ultimate_Tracker_BaseMap.mat similarity index 88% rename from com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/Common/Models/SelfTracker/Material/Black.mat rename to com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Materials/VIVE/UltimateTracker/Vive_Ultimate_Tracker_BaseMap.mat index 9e534ab..f0feb92 100644 --- a/com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/Common/Models/SelfTracker/Material/Black.mat +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Materials/VIVE/UltimateTracker/Vive_Ultimate_Tracker_BaseMap.mat @@ -1,78 +1,80 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!21 &2100000 -Material: - serializedVersion: 6 - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: Black - m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} - m_ShaderKeywords: - m_LightmapFlags: 4 - m_EnableInstancingVariants: 0 - m_DoubleSidedGI: 0 - m_CustomRenderQueue: -1 - stringTagMap: {} - disabledShaderPasses: [] - m_SavedProperties: - serializedVersion: 3 - m_TexEnvs: - - _BumpMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailAlbedoMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailMask: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailNormalMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _EmissionMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _MainTex: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _MetallicGlossMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _OcclusionMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _ParallaxMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - m_Floats: - - _BumpScale: 1 - - _Cutoff: 0.5 - - _DetailNormalMapScale: 1 - - _DstBlend: 0 - - _GlossMapScale: 1 - - _Glossiness: 0.5 - - _GlossyReflections: 1 - - _Metallic: 0 - - _Mode: 0 - - _OcclusionStrength: 1 - - _Parallax: 0.02 - - _SmoothnessTextureChannel: 0 - - _SpecularHighlights: 1 - - _SrcBlend: 1 - - _UVSec: 0 - - _ZWrite: 1 - m_Colors: - - _Color: {r: 0.05660379, g: 0.055268794, b: 0.055268794, a: 1} - - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - m_BuildTextureStacks: [] +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Vive_Ultimate_Tracker_BaseMap + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ValidKeywords: [] + m_InvalidKeywords: [] + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: 690c418cfde810e448d3fdc5756be4e1, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _BumpScale: 1 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _UVSec: 0 + - _ZWrite: 1 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + m_BuildTextureStacks: [] diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Materials/VIVE/UltimateTracker/Vive_Ultimate_Tracker_BaseMap.mat.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Materials/VIVE/UltimateTracker/Vive_Ultimate_Tracker_BaseMap.mat.meta new file mode 100644 index 0000000..8082db4 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Materials/VIVE/UltimateTracker/Vive_Ultimate_Tracker_BaseMap.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 059b53ad53194a842b6db98a2ec57e27 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/OpenXRInput.unity b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/OpenXRInput.unity index 1741f6e..7bc69bf 100644 --- a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/OpenXRInput.unity +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/OpenXRInput.unity @@ -156,7 +156,7 @@ RectTransform: m_Children: - {fileID: 2026613084} m_Father: {fileID: 1638149181} - m_RootOrder: 1 + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 90, y: -90, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} @@ -524,9 +524,9 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: IsLeft: 0 - m_DevicePose: {fileID: -1925637357529311498, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} - m_PrimaryButton: {fileID: -2366223023747410790, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} - m_Menu: {fileID: -109810390257745148, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_DevicePose: {fileID: -5152140617287461372, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_PrimaryButton: {fileID: -1209568713510473058, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_Menu: {fileID: 578948288454231874, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} --- !u!114 &22520618 MonoBehaviour: m_ObjectHideFlags: 0 @@ -540,8 +540,8 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: IsLeft: 0 - m_IsActive: {fileID: 5896710508461230951, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} - m_TrackingState: {fileID: -2223744473362104664, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_IsActive: {fileID: -2142481284763116220, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_TrackingState: {fileID: -4809733646631088894, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} m_ObjectToHide: {fileID: 806066507} --- !u!1 &27778505 GameObject: @@ -699,61 +699,6 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 29110843} m_CullTransparentMesh: 0 ---- !u!1 &32622259 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 32622260} - - component: {fileID: 32622261} - m_Layer: 5 - m_Name: SystemTouch - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &32622260 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 32622259} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 609563156} - - {fileID: 1325954193} - m_Father: {fileID: 1789809035} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 0, y: -27} - m_SizeDelta: {x: 100, y: 100} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &32622261 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 32622259} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 1879fed0e0310334fb310daf7dcc4784, type: 3} - m_Name: - m_EditorClassIdentifier: - m_ActionReference: {fileID: -2197723308890051586, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} - enabledColor: {r: 0, g: 1, b: 0, a: 1} - disabledColor: {r: 1, g: 0, b: 0, a: 1} - image: {fileID: 1325954194} --- !u!1 &40030545 GameObject: m_ObjectHideFlags: 0 @@ -862,7 +807,7 @@ GameObject: - component: {fileID: 41007553} - component: {fileID: 41007554} m_Layer: 0 - m_Name: Grip + m_Name: GripL m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -876,7 +821,7 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 41007552} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0.2, y: 0.2, z: 0} + m_LocalPosition: {x: -0.2, y: 0.2, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: @@ -900,7 +845,7 @@ MonoBehaviour: m_TrackingType: 0 m_UpdateType: 0 m_PositionInput: - m_UseReference: 1 + m_UseReference: 0 m_Action: m_Name: Position m_Type: 0 @@ -918,9 +863,9 @@ MonoBehaviour: m_Action: Position m_Flags: 0 m_Flags: 0 - m_Reference: {fileID: 9019252231132517785, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_Reference: {fileID: 0} m_RotationInput: - m_UseReference: 1 + m_UseReference: 0 m_Action: m_Name: Rotation m_Type: 0 @@ -938,7 +883,7 @@ MonoBehaviour: m_Action: Rotation m_Flags: 0 m_Flags: 0 - m_Reference: {fileID: -22420666449113973, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_Reference: {fileID: 0} m_PositionAction: m_Name: Position m_Type: 0 @@ -1050,108 +995,6 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 44028069} m_CullTransparentMesh: 0 ---- !u!1 &54327372 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 54327373} - - component: {fileID: 54327376} - - component: {fileID: 54327375} - - component: {fileID: 54327374} - m_Layer: 5 - m_Name: ActionMapInfo - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 0 ---- !u!224 &54327373 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 54327372} - m_LocalRotation: {x: 0.5, y: -0.5, z: 0.5, w: 0.5} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.001, y: 0.001, z: 0.001} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1336590365} - - {fileID: 1283459935} - m_Father: {fileID: 265217178} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 90, y: -90, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0.005} - m_SizeDelta: {x: 1226, y: 740} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &54327374 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 54327372} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreReversedGraphics: 1 - m_BlockingObjects: 0 - m_BlockingMask: - serializedVersion: 2 - m_Bits: 4294967295 ---- !u!114 &54327375 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 54327372} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} - m_Name: - m_EditorClassIdentifier: - m_UiScaleMode: 0 - m_ReferencePixelsPerUnit: 100 - m_ScaleFactor: 1 - m_ReferenceResolution: {x: 800, y: 600} - m_ScreenMatchMode: 0 - m_MatchWidthOrHeight: 0 - m_PhysicalUnit: 3 - m_FallbackScreenDPI: 96 - m_DefaultSpriteDPI: 96 - m_DynamicPixelsPerUnit: 1 - m_PresetInfoIsWorld: 1 ---- !u!223 &54327376 -Canvas: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 54327372} - m_Enabled: 1 - serializedVersion: 3 - m_RenderMode: 2 - m_Camera: {fileID: 963194227} - m_PlaneDistance: 100 - m_PixelPerfect: 0 - m_ReceivesEvents: 1 - m_OverrideSorting: 0 - m_OverridePixelPerfect: 0 - m_SortingBucketNormalizedSize: 0 - m_AdditionalShaderChannelsFlag: 0 - m_SortingLayerID: 0 - m_SortingOrder: 0 - m_TargetDisplay: 0 --- !u!1 &62211399 GameObject: m_ObjectHideFlags: 0 @@ -1505,18 +1348,18 @@ RectTransform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 99841488} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 6} + m_LocalRotation: {x: 0, y: 0.7071068, z: 0, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 0.005, y: 0.005, z: 0.005} m_ConstrainProportionsScale: 0 m_Children: - {fileID: 794793302} m_Father: {fileID: 1588199579} - m_RootOrder: 8 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 90, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: -1.118, y: -0.31} + m_AnchoredPosition: {x: 6, y: -0.31} m_SizeDelta: {x: 1700, y: 1020} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &99841490 @@ -1908,7 +1751,7 @@ RectTransform: m_Children: - {fileID: 711126911} m_Father: {fileID: 1588199579} - m_RootOrder: 7 + m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: -70.77, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} @@ -2620,88 +2463,6 @@ Transform: m_CorrespondingSourceObject: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} m_PrefabInstance: {fileID: 152157376} m_PrefabAsset: {fileID: 0} ---- !u!1 &168949761 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 168949762} - - component: {fileID: 168949764} - - component: {fileID: 168949763} - m_Layer: 5 - m_Name: Text - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &168949762 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 168949761} - m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1363661660} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 85, y: 118} - m_SizeDelta: {x: 2000, y: 455.7} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &168949763 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 168949761} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 150 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 0 - m_MaxSize: 300 - m_Alignment: 1 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 0 - m_VerticalOverflow: 0 - m_LineSpacing: 1 - m_Text: 'System - - Press' ---- !u!222 &168949764 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 168949761} - m_CullTransparentMesh: 0 --- !u!1 &169007644 GameObject: m_ObjectHideFlags: 0 @@ -2728,15 +2489,15 @@ RectTransform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 169007644} - m_LocalRotation: {x: 0, y: 0.38268343, z: 0, w: 0.92387956} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 1.581} m_LocalScale: {x: 0.003, y: 0.003, z: 0.003} m_ConstrainProportionsScale: 0 m_Children: - {fileID: 675867388} - m_Father: {fileID: 1588199579} - m_RootOrder: 4 - m_LocalEulerAnglesHint: {x: 0, y: 45, z: 0} + m_Father: {fileID: 855247513} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} m_AnchoredPosition: {x: 3, y: -0.134} @@ -3175,13 +2936,13 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 6409fd38e11fb2c4a83fc5e2d1dc90e6, type: 3} m_Name: m_EditorClassIdentifier: - m_TrackedR: {fileID: 5896710508461230951, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} - m_TrackingStateR: {fileID: -2223744473362104664, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} - m_RightA: {fileID: -2366223023747410790, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} - m_TrackedL: {fileID: -6503375197652741934, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} - m_TrackingStateL: {fileID: 530005473305561140, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} - m_LeftX: {fileID: -147853027266014677, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} - m_LeftMenu: {fileID: -5618949659622940714, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_TrackedR: {fileID: -2142481284763116220, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_TrackingStateR: {fileID: -4809733646631088894, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_RightA: {fileID: -1209568713510473058, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_TrackedL: {fileID: -3939447612102036819, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_TrackingStateL: {fileID: 2573631886961530909, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_LeftX: {fileID: -6267646491421641194, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_LeftMenu: {fileID: 1508652085242017756, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} --- !u!1 &216067363 GameObject: m_ObjectHideFlags: 0 @@ -3588,7 +3349,7 @@ RectTransform: m_GameObject: {fileID: 247509055} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.15, y: 0.15, z: 0.15} + m_LocalScale: {x: 0.015, y: 0.015, z: 0.015} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 343022093} @@ -4069,54 +3830,6 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 262400169} m_CullTransparentMesh: 0 ---- !u!1 &265217177 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 265217178} - - component: {fileID: 265217179} - m_Layer: 0 - m_Name: Aim - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &265217178 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 265217177} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: -0.5, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 54327373} - - {fileID: 324441014} - - {fileID: 1236023484} - m_Father: {fileID: 1688677235} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &265217179 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 265217177} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: b864e7d459cda4242abc2881903cf71d, type: 3} - m_Name: - m_EditorClassIdentifier: - m_DevicePose: {fileID: 2124456439736387461, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} --- !u!1 &281075182 GameObject: m_ObjectHideFlags: 0 @@ -4370,7 +4083,7 @@ GameObject: - component: {fileID: 304086595} - component: {fileID: 304086596} m_Layer: 0 - m_Name: Device + m_Name: Device2 m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -4415,18 +4128,10 @@ MonoBehaviour: m_Name: Position Input m_Type: 0 m_ExpectedControlType: - m_Id: e3292456-9857-4d13-8e6f-2201600a4848 + m_Id: 0b305736-7602-4cc5-94d9-0f0aebaa9f4a m_Processors: m_Interactions: - m_SingletonActionBindings: - - m_Name: - m_Id: 2caadaed-6cae-4206-871a-7d122f9443b7 - m_Path: {Tracker3}/devicePosition - m_Interactions: - m_Processors: - m_Groups: - m_Action: Position Input - m_Flags: 0 + m_SingletonActionBindings: [] m_Flags: 0 m_Reference: {fileID: -8287749963549794835, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} m_RotationInput: @@ -4435,18 +4140,10 @@ MonoBehaviour: m_Name: Rotation Input m_Type: 0 m_ExpectedControlType: - m_Id: 8236fd6b-5775-45b4-b768-d7978c047049 + m_Id: fd4eb775-fce6-4e98-bdfc-33fbc25c88c1 m_Processors: m_Interactions: - m_SingletonActionBindings: - - m_Name: - m_Id: 7406a299-3f75-40d3-9f0a-bc8cfd60eecb - m_Path: {Tracker3}/deviceRotation - m_Interactions: - m_Processors: - m_Groups: - m_Action: Rotation Input - m_Flags: 0 + m_SingletonActionBindings: [] m_Flags: 0 m_Reference: {fileID: 3242339893588026215, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} m_PositionAction: @@ -4574,107 +4271,6 @@ Transform: m_CorrespondingSourceObject: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} m_PrefabInstance: {fileID: 308409639} m_PrefabAsset: {fileID: 0} ---- !u!1 &324441013 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 324441014} - - component: {fileID: 324441017} - - component: {fileID: 324441016} - - component: {fileID: 324441015} - m_Layer: 5 - m_Name: Canvas - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &324441014 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 324441013} - m_LocalRotation: {x: 0.5, y: -0.5, z: 0.5, w: 0.5} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.001, y: 0.001, z: 0.001} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1841044786} - m_Father: {fileID: 265217178} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 90, y: -90, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0.005} - m_SizeDelta: {x: 662, y: 423} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &324441015 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 324441013} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreReversedGraphics: 1 - m_BlockingObjects: 0 - m_BlockingMask: - serializedVersion: 2 - m_Bits: 4294967295 ---- !u!114 &324441016 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 324441013} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} - m_Name: - m_EditorClassIdentifier: - m_UiScaleMode: 0 - m_ReferencePixelsPerUnit: 100 - m_ScaleFactor: 1 - m_ReferenceResolution: {x: 800, y: 600} - m_ScreenMatchMode: 0 - m_MatchWidthOrHeight: 0 - m_PhysicalUnit: 3 - m_FallbackScreenDPI: 96 - m_DefaultSpriteDPI: 96 - m_DynamicPixelsPerUnit: 1 - m_PresetInfoIsWorld: 1 ---- !u!223 &324441017 -Canvas: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 324441013} - m_Enabled: 1 - serializedVersion: 3 - m_RenderMode: 2 - m_Camera: {fileID: 963194227} - m_PlaneDistance: 100 - m_PixelPerfect: 0 - m_ReceivesEvents: 1 - m_OverrideSorting: 0 - m_OverridePixelPerfect: 0 - m_SortingBucketNormalizedSize: 0 - m_AdditionalShaderChannelsFlag: 0 - m_SortingLayerID: 0 - m_SortingOrder: 0 - m_TargetDisplay: 0 --- !u!1 &336339563 GameObject: m_ObjectHideFlags: 0 @@ -4862,7 +4458,7 @@ GameObject: - component: {fileID: 343022095} - component: {fileID: 343022094} m_Layer: 0 - m_Name: LeftPointerOffset + m_Name: LeftPointer m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -4908,8 +4504,8 @@ MonoBehaviour: m_Pointer: {fileID: 247509055} IsLeft: 1 m_UsePose: 1 - m_AimPose: {fileID: 2124456439736387461, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} - m_PinchStrength: {fileID: 7375677697711315273, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_AimPose: {fileID: -7749099873530262829, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_PinchStrength: {fileID: 5411044373122788356, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} m_PinchThreshold: 0.5 m_AlwaysEnable: 0 --- !u!20 &343022095 @@ -5006,8 +4602,8 @@ LineRenderer: serializedVersion: 2 m_Curve: - serializedVersion: 3 - time: 0 - value: 1 + time: 0.01036503 + value: 0.01029409 inSlope: 0 outSlope: 0 tangentMode: 0 @@ -5065,7 +4661,7 @@ GameObject: - component: {fileID: 346656619} - component: {fileID: 346656620} m_Layer: 0 - m_Name: Device + m_Name: Device4 m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -5110,18 +4706,10 @@ MonoBehaviour: m_Name: Position Input m_Type: 0 m_ExpectedControlType: - m_Id: e3292456-9857-4d13-8e6f-2201600a4848 + m_Id: b4dee74c-90fd-4549-839b-5af907e871d3 m_Processors: m_Interactions: - m_SingletonActionBindings: - - m_Name: - m_Id: 2caadaed-6cae-4206-871a-7d122f9443b7 - m_Path: {Tracker4}/devicePosition - m_Interactions: - m_Processors: - m_Groups: - m_Action: Position Input - m_Flags: 0 + m_SingletonActionBindings: [] m_Flags: 0 m_Reference: {fileID: 1760866676959018908, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} m_RotationInput: @@ -5130,18 +4718,10 @@ MonoBehaviour: m_Name: Rotation Input m_Type: 0 m_ExpectedControlType: - m_Id: 8236fd6b-5775-45b4-b768-d7978c047049 + m_Id: 91ef50ea-4779-486b-9fda-e937c060a6fe m_Processors: m_Interactions: - m_SingletonActionBindings: - - m_Name: - m_Id: 7406a299-3f75-40d3-9f0a-bc8cfd60eecb - m_Path: {Tracker4}/deviceRotation - m_Interactions: - m_Processors: - m_Groups: - m_Action: Rotation Input - m_Flags: 0 + m_SingletonActionBindings: [] m_Flags: 0 m_Reference: {fileID: -2199575455336610917, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} m_PositionAction: @@ -5581,107 +5161,6 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 400617732} m_CullTransparentMesh: 0 ---- !u!1 &400725363 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 400725364} - - component: {fileID: 400725367} - - component: {fileID: 400725366} - - component: {fileID: 400725365} - m_Layer: 5 - m_Name: Canvas - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &400725364 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 400725363} - m_LocalRotation: {x: 0.5, y: -0.5, z: 0.5, w: 0.5} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.001, y: 0.001, z: 0.001} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1292352854} - m_Father: {fileID: 1314243338} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 90, y: -90, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0.005} - m_SizeDelta: {x: 662, y: 423} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &400725365 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 400725363} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreReversedGraphics: 1 - m_BlockingObjects: 0 - m_BlockingMask: - serializedVersion: 2 - m_Bits: 4294967295 ---- !u!114 &400725366 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 400725363} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} - m_Name: - m_EditorClassIdentifier: - m_UiScaleMode: 0 - m_ReferencePixelsPerUnit: 100 - m_ScaleFactor: 1 - m_ReferenceResolution: {x: 800, y: 600} - m_ScreenMatchMode: 0 - m_MatchWidthOrHeight: 0 - m_PhysicalUnit: 3 - m_FallbackScreenDPI: 96 - m_DefaultSpriteDPI: 96 - m_DynamicPixelsPerUnit: 1 - m_PresetInfoIsWorld: 1 ---- !u!223 &400725367 -Canvas: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 400725363} - m_Enabled: 1 - serializedVersion: 3 - m_RenderMode: 2 - m_Camera: {fileID: 963194227} - m_PlaneDistance: 100 - m_PixelPerfect: 0 - m_ReceivesEvents: 1 - m_OverrideSorting: 0 - m_OverridePixelPerfect: 0 - m_SortingBucketNormalizedSize: 0 - m_AdditionalShaderChannelsFlag: 0 - m_SortingLayerID: 0 - m_SortingOrder: 0 - m_TargetDisplay: 0 --- !u!1 &411900171 GameObject: m_ObjectHideFlags: 0 @@ -5924,138 +5403,6 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 431989750} m_CullTransparentMesh: 1 ---- !u!1 &433861819 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 433861820} - - component: {fileID: 433861821} - m_Layer: 0 - m_Name: RightHand - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 0 ---- !u!4 &433861820 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 433861819} - m_LocalRotation: {x: -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: 470288076} - - {fileID: 1314243338} - m_Father: {fileID: 4704245549949326341} - m_RootOrder: 5 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &433861821 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 433861819} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 873a88a3d45610d4489a58d37c448415, type: 3} - m_Name: - m_EditorClassIdentifier: - IsLeft: 0 - m_IsActive: {fileID: 7861588272433278244, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} - m_TrackingState: {fileID: -2129783911140589000, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} - m_ObjectToHide: {fileID: 470288075} ---- !u!1 &435877686 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 435877687} - - component: {fileID: 435877689} - - component: {fileID: 435877688} - m_Layer: 5 - m_Name: Text - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &435877687 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 435877686} - m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1776753738} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 85, y: 118} - m_SizeDelta: {x: 2000, y: 455.7} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &435877688 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 435877686} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 150 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 0 - m_MaxSize: 300 - m_Alignment: 1 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 0 - m_VerticalOverflow: 0 - m_LineSpacing: 1 - m_Text: 'System - - Touch' ---- !u!222 &435877689 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 435877686} - m_CullTransparentMesh: 0 --- !u!1 &449808874 GameObject: m_ObjectHideFlags: 0 @@ -6354,7 +5701,7 @@ GameObject: - component: {fileID: 470288076} - component: {fileID: 470288077} m_Layer: 0 - m_Name: Grip + m_Name: RightGrip m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -6367,16 +5714,15 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 470288075} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0.3, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 1193189754} - {fileID: 1808727840} - {fileID: 1507689068} - m_Father: {fileID: 433861820} - m_RootOrder: 0 + m_Father: {fileID: 4704245549949326341} + m_RootOrder: 5 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &470288077 MonoBehaviour: @@ -6393,45 +5739,45 @@ MonoBehaviour: m_TrackingType: 0 m_UpdateType: 0 m_PositionInput: - m_UseReference: 1 + m_UseReference: 0 m_Action: m_Name: Position Input m_Type: 0 m_ExpectedControlType: - m_Id: e3292456-9857-4d13-8e6f-2201600a4848 + m_Id: ea39bc66-be0c-44ba-912a-4b4950880907 m_Processors: m_Interactions: m_SingletonActionBindings: - m_Name: - m_Id: 2caadaed-6cae-4206-871a-7d122f9443b7 - m_Path: {Tracker0}/devicePosition + m_Id: 046018c2-1c04-41e4-b70c-145569923203 + m_Path: {RightHand}/devicePosition m_Interactions: m_Processors: m_Groups: m_Action: Position Input m_Flags: 0 m_Flags: 0 - m_Reference: {fileID: -4381620761775135041, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_Reference: {fileID: 0} m_RotationInput: - m_UseReference: 1 + m_UseReference: 0 m_Action: m_Name: Rotation Input m_Type: 0 m_ExpectedControlType: - m_Id: 8236fd6b-5775-45b4-b768-d7978c047049 + m_Id: ef7bd310-986b-441a-96fc-8aa84cb00eb7 m_Processors: m_Interactions: m_SingletonActionBindings: - m_Name: - m_Id: 7406a299-3f75-40d3-9f0a-bc8cfd60eecb - m_Path: {Tracker0}/deviceRotation + m_Id: fc5f825a-9bde-4752-9837-072fe5ae8350 + m_Path: {RightHand}/deviceRotation m_Interactions: m_Processors: m_Groups: m_Action: Rotation Input m_Flags: 0 m_Flags: 0 - m_Reference: {fileID: 4333451311024400164, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_Reference: {fileID: 0} m_PositionAction: m_Name: m_Type: 0 @@ -6766,82 +6112,6 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 501495093} m_CullTransparentMesh: 0 ---- !u!1 &504668543 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 504668544} - - component: {fileID: 504668546} - - component: {fileID: 504668545} - m_Layer: 5 - m_Name: Image - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &504668544 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 504668543} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1776753738} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 45, y: 120} - m_SizeDelta: {x: 100, y: 100} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &504668545 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 504668543} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &504668546 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 504668543} - m_CullTransparentMesh: 0 --- !u!1 &505344913 GameObject: m_ObjectHideFlags: 0 @@ -6931,15 +6201,15 @@ PrefabInstance: objectReference: {fileID: 3613567641014311022, guid: 815c9e4802ddea645a37bd99f011c9b4, type: 3} - target: {fileID: 4346727372943234170, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} propertyPath: m_LocalScale.y - value: 0.2 + value: 0.1 objectReference: {fileID: 0} - target: {fileID: 4346727372952809589, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} propertyPath: m_LocalScale.y - value: 0.2 + value: 0.1 objectReference: {fileID: 0} - target: {fileID: 4346727373925079742, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} propertyPath: m_LocalScale.y - value: 0.3 + value: 0.1 objectReference: {fileID: 0} - target: {fileID: 4346727373925079742, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} propertyPath: m_LocalPosition.z @@ -6951,19 +6221,19 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} propertyPath: m_RootOrder - value: 2 + value: 1 objectReference: {fileID: 0} - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} propertyPath: m_LocalScale.x - value: 0.5 + value: 0.4 objectReference: {fileID: 0} - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} propertyPath: m_LocalScale.y - value: 0.5 + value: 0.4 objectReference: {fileID: 0} - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} propertyPath: m_LocalScale.z - value: 0.5 + value: 0.4 objectReference: {fileID: 0} - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} propertyPath: m_LocalPosition.x @@ -7005,10 +6275,18 @@ PrefabInstance: propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} + - target: {fileID: 4640940940180935358, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} - target: {fileID: 6251018130860582685, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} propertyPath: m_Mesh value: objectReference: {fileID: 3613567641014311022, guid: 815c9e4802ddea645a37bd99f011c9b4, type: 3} + - target: {fileID: 6813102403969732157, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} - target: {fileID: 8595007410106638205, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} propertyPath: m_Mesh value: @@ -7252,61 +6530,6 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 517845382} m_CullTransparentMesh: 0 ---- !u!1 &520359992 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 520359993} - - component: {fileID: 520359994} - m_Layer: 5 - m_Name: SystemClick - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &520359993 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 520359992} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1359548009} - - {fileID: 1781355788} - m_Father: {fileID: 1313886918} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 0, y: 4} - m_SizeDelta: {x: 100, y: 100} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &520359994 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 520359992} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 1879fed0e0310334fb310daf7dcc4784, type: 3} - m_Name: - m_EditorClassIdentifier: - m_ActionReference: {fileID: 1040293238378581181, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} - enabledColor: {r: 0, g: 1, b: 0, a: 1} - disabledColor: {r: 1, g: 0, b: 0, a: 1} - image: {fileID: 1781355789} --- !u!1 &525925162 GameObject: m_ObjectHideFlags: 0 @@ -7460,61 +6683,6 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 529706613} m_CullTransparentMesh: 0 ---- !u!1 &548855613 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 548855614} - - component: {fileID: 548855615} - m_Layer: 5 - m_Name: SystemTouch - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &548855614 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 548855613} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1576062896} - - {fileID: 1753990672} - m_Father: {fileID: 1193189754} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 0, y: -27} - m_SizeDelta: {x: 100, y: 100} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &548855615 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 548855613} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 1879fed0e0310334fb310daf7dcc4784, type: 3} - m_Name: - m_EditorClassIdentifier: - m_ActionReference: {fileID: -2197723308890051586, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} - enabledColor: {r: 0, g: 1, b: 0, a: 1} - disabledColor: {r: 1, g: 0, b: 0, a: 1} - image: {fileID: 1753990673} --- !u!1 &550334268 GameObject: m_ObjectHideFlags: 0 @@ -7723,7 +6891,7 @@ GameObject: - component: {fileID: 575179468} - component: {fileID: 575179469} m_Layer: 0 - m_Name: Aim + m_Name: AimL m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -7761,7 +6929,7 @@ MonoBehaviour: m_TrackingType: 0 m_UpdateType: 0 m_PositionInput: - m_UseReference: 1 + m_UseReference: 0 m_Action: m_Name: Position m_Type: 0 @@ -7779,9 +6947,9 @@ MonoBehaviour: m_Action: Position m_Flags: 0 m_Flags: 0 - m_Reference: {fileID: -5730229631511484051, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_Reference: {fileID: 0} m_RotationInput: - m_UseReference: 1 + m_UseReference: 0 m_Action: m_Name: Rotation m_Type: 0 @@ -7799,7 +6967,7 @@ MonoBehaviour: m_Action: Rotation m_Flags: 0 m_Flags: 0 - m_Reference: {fileID: -5246335118593862002, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_Reference: {fileID: 0} m_PositionAction: m_Name: Position m_Type: 0 @@ -8051,88 +7219,6 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 608137185} m_CullTransparentMesh: 0 ---- !u!1 &609563155 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 609563156} - - component: {fileID: 609563158} - - component: {fileID: 609563157} - m_Layer: 5 - m_Name: Text - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &609563156 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 609563155} - m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 32622260} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 85, y: 118} - m_SizeDelta: {x: 2000, y: 455.7} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &609563157 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 609563155} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 150 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 0 - m_MaxSize: 300 - m_Alignment: 1 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 0 - m_VerticalOverflow: 0 - m_LineSpacing: 1 - m_Text: 'System - - Touch' ---- !u!222 &609563158 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 609563155} - m_CullTransparentMesh: 0 --- !u!1 &614512878 GameObject: m_ObjectHideFlags: 0 @@ -11027,6 +10113,40 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 842644032} m_CullTransparentMesh: 0 +--- !u!1 &855247512 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 855247513} + m_Layer: 0 + m_Name: HeadControllerHand + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &855247513 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 855247512} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -3.41, y: -0.24, z: 2} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 867397450} + - {fileID: 169007645} + - {fileID: 1654580157} + m_Father: {fileID: 1588199579} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &860922285 GameObject: m_ObjectHideFlags: 0 @@ -11368,19 +10488,19 @@ RectTransform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 867397449} - m_LocalRotation: {x: 0, y: 0.38268343, z: 0, w: 0.92387956} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 1.581} m_LocalScale: {x: 0.003, y: 0.003, z: 0.003} m_ConstrainProportionsScale: 0 m_Children: - {fileID: 1807220544} - m_Father: {fileID: 1588199579} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 45, z: 0} + m_Father: {fileID: 855247513} + 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: 3, y: 0.368} - m_SizeDelta: {x: 400, y: 100} + m_SizeDelta: {x: 400, y: 140} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &867397451 MonoBehaviour: @@ -12095,7 +11215,7 @@ GameObject: - component: {fileID: 982957601} - component: {fileID: 982957602} m_Layer: 0 - m_Name: Device + m_Name: Device1 m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -12140,18 +11260,10 @@ MonoBehaviour: m_Name: Position Input m_Type: 0 m_ExpectedControlType: - m_Id: e3292456-9857-4d13-8e6f-2201600a4848 + m_Id: 7f0d901b-6f48-4858-bbdc-b9968cae399f m_Processors: m_Interactions: - m_SingletonActionBindings: - - m_Name: - m_Id: 2caadaed-6cae-4206-871a-7d122f9443b7 - m_Path: {Tracker1}/devicePosition - m_Interactions: - m_Processors: - m_Groups: - m_Action: Position Input - m_Flags: 0 + m_SingletonActionBindings: [] m_Flags: 0 m_Reference: {fileID: -5962029828217132283, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} m_RotationInput: @@ -12160,18 +11272,10 @@ MonoBehaviour: m_Name: Rotation Input m_Type: 0 m_ExpectedControlType: - m_Id: 8236fd6b-5775-45b4-b768-d7978c047049 + m_Id: 5a9b5711-7dfe-49c1-869a-2168d7f5414d m_Processors: m_Interactions: - m_SingletonActionBindings: - - m_Name: - m_Id: 7406a299-3f75-40d3-9f0a-bc8cfd60eecb - m_Path: {Tracker1}/deviceRotation - m_Interactions: - m_Processors: - m_Groups: - m_Action: Rotation Input - m_Flags: 0 + m_SingletonActionBindings: [] m_Flags: 0 m_Reference: {fileID: -4462678269106331646, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} m_PositionAction: @@ -12253,7 +11357,6 @@ MonoBehaviour: m_GripPress: {fileID: 178670195367453670, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} m_TriggerPress: {fileID: 8633812648721577263, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} m_TrackpadPress: {fileID: 8517945931277666844, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} - m_TrackpadTouch: {fileID: -7506173438877222551, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} --- !u!114 &983759435 MonoBehaviour: m_ObjectHideFlags: 0 @@ -12512,82 +11615,6 @@ MonoBehaviour: m_EditorClassIdentifier: m_ActionReference: {fileID: -5194266436686895582, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} slider: {fileID: 1823634026} ---- !u!1 &1008532019 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1008532020} - - component: {fileID: 1008532022} - - component: {fileID: 1008532021} - m_Layer: 5 - m_Name: Image - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1008532020 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1008532019} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1363661660} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 45, y: 120} - m_SizeDelta: {x: 100, y: 100} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1008532021 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1008532019} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &1008532022 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1008532019} - m_CullTransparentMesh: 0 --- !u!1 &1009286772 GameObject: m_ObjectHideFlags: 0 @@ -13034,7 +12061,7 @@ GameObject: - component: {fileID: 1058444044} - component: {fileID: 1058444043} m_Layer: 0 - m_Name: Text + m_Name: EyePoseText m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -13053,11 +12080,11 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1807220544} - m_RootOrder: 0 + m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: -20} m_SizeDelta: {x: 380, y: 100} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &1058444043 @@ -13072,7 +12099,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 1b67ab3747614ae46ab3c4b7f63907d9, type: 3} m_Name: m_EditorClassIdentifier: - m_EyePose: {fileID: 1403026793098687128, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_EyePose: {fileID: 5776323397344544520, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} --- !u!114 &1058444044 MonoBehaviour: m_ObjectHideFlags: 0 @@ -13804,88 +12831,6 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1096894014} m_CullTransparentMesh: 0 ---- !u!1 &1104724929 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1104724930} - - component: {fileID: 1104724932} - - component: {fileID: 1104724931} - m_Layer: 5 - m_Name: Text - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1104724930 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1104724929} - m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1283459935} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 85, y: 118} - m_SizeDelta: {x: 2000, y: 455.7} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1104724931 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1104724929} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 150 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 0 - m_MaxSize: 300 - m_Alignment: 1 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 0 - m_VerticalOverflow: 0 - m_LineSpacing: 1 - m_Text: 'System - - Touch' ---- !u!222 &1104724932 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1104724929} - m_CullTransparentMesh: 0 --- !u!1 &1122258066 GameObject: m_ObjectHideFlags: 0 @@ -14045,108 +12990,6 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1123088627} m_CullTransparentMesh: 0 ---- !u!1001 &1128829991 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 1314243338} - m_Modifications: - - target: {fileID: 3201029004716767610, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} - propertyPath: m_Mesh - value: - objectReference: {fileID: 3613567641014311022, guid: 815c9e4802ddea645a37bd99f011c9b4, type: 3} - - target: {fileID: 4346727372943234170, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} - propertyPath: m_LocalScale.y - value: 0.2 - objectReference: {fileID: 0} - - target: {fileID: 4346727372952809589, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} - propertyPath: m_LocalScale.y - value: 0.2 - objectReference: {fileID: 0} - - target: {fileID: 4346727373925079742, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} - propertyPath: m_LocalScale.y - value: 0.3 - objectReference: {fileID: 0} - - target: {fileID: 4346727373925079742, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4346727374823546882, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} - propertyPath: m_Name - value: PoseMarker - objectReference: {fileID: 0} - - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} - propertyPath: m_RootOrder - value: 2 - objectReference: {fileID: 0} - - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} - propertyPath: m_LocalScale.x - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} - propertyPath: m_LocalScale.y - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} - propertyPath: m_LocalScale.z - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} - propertyPath: m_LocalRotation.x - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} - propertyPath: m_LocalRotation.y - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} - propertyPath: m_LocalRotation.z - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6251018130860582685, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} - propertyPath: m_Mesh - value: - objectReference: {fileID: 3613567641014311022, guid: 815c9e4802ddea645a37bd99f011c9b4, type: 3} - - target: {fileID: 8595007410106638205, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} - propertyPath: m_Mesh - value: - objectReference: {fileID: 3613567641014311022, guid: 815c9e4802ddea645a37bd99f011c9b4, type: 3} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} ---- !u!4 &1128829992 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} - m_PrefabInstance: {fileID: 1128829991} - m_PrefabAsset: {fileID: 0} --- !u!1 &1135083807 GameObject: m_ObjectHideFlags: 0 @@ -14426,10 +13269,7 @@ MonoBehaviour: m_EditorClassIdentifier: m_IsLeft: 0 m_UseInputAction: 1 - m_IsTracked: {fileID: -1219534774619098812, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} - m_TrackingState: {fileID: 7186331274470829537, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} - m_Position: {fileID: 7443918988805782556, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} - m_Rotation: {fileID: 7542131730279260107, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_DevicePose: {fileID: 5353795866969974560, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} --- !u!114 &1161098563 MonoBehaviour: m_ObjectHideFlags: 0 @@ -14567,7 +13407,7 @@ GameObject: - component: {fileID: 1162657278} - component: {fileID: 1162657277} m_Layer: 0 - m_Name: RightPointerOffset + m_Name: RightPointer m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -14613,8 +13453,8 @@ MonoBehaviour: m_Pointer: {fileID: 1574464185} IsLeft: 0 m_UsePose: 1 - m_AimPose: {fileID: 3692605411926281237, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} - m_PinchStrength: {fileID: 2603460548863922366, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_AimPose: {fileID: 2185082307209871477, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_PinchStrength: {fileID: -7726113467501644799, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} m_PinchThreshold: 0.5 m_AlwaysEnable: 0 --- !u!20 &1162657278 @@ -14711,8 +13551,8 @@ LineRenderer: serializedVersion: 2 m_Curve: - serializedVersion: 3 - time: 0 - value: 1 + time: 0.009860992 + value: 0.012810729 inSlope: 0 outSlope: 0 tangentMode: 0 @@ -15120,108 +13960,6 @@ MonoBehaviour: m_EditorClassIdentifier: m_ActionReference: {fileID: -5684558904543120851, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} slider: {fileID: 1576668757} ---- !u!1 &1193189753 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1193189754} - - component: {fileID: 1193189757} - - component: {fileID: 1193189756} - - component: {fileID: 1193189755} - m_Layer: 5 - m_Name: ActionMapInfo - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 0 ---- !u!224 &1193189754 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1193189753} - m_LocalRotation: {x: 0.5, y: -0.5, z: 0.5, w: 0.5} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.001, y: 0.001, z: 0.001} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1363661660} - - {fileID: 548855614} - m_Father: {fileID: 470288076} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 90, y: -90, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0.005} - m_SizeDelta: {x: 1226, y: 740} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1193189755 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1193189753} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreReversedGraphics: 1 - m_BlockingObjects: 0 - m_BlockingMask: - serializedVersion: 2 - m_Bits: 4294967295 ---- !u!114 &1193189756 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1193189753} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} - m_Name: - m_EditorClassIdentifier: - m_UiScaleMode: 0 - m_ReferencePixelsPerUnit: 100 - m_ScaleFactor: 1 - m_ReferenceResolution: {x: 800, y: 600} - m_ScreenMatchMode: 0 - m_MatchWidthOrHeight: 0 - m_PhysicalUnit: 3 - m_FallbackScreenDPI: 96 - m_DefaultSpriteDPI: 96 - m_DynamicPixelsPerUnit: 1 - m_PresetInfoIsWorld: 1 ---- !u!223 &1193189757 -Canvas: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1193189753} - m_Enabled: 1 - serializedVersion: 3 - m_RenderMode: 2 - m_Camera: {fileID: 963194227} - m_PlaneDistance: 100 - m_PixelPerfect: 0 - m_ReceivesEvents: 1 - m_OverrideSorting: 0 - m_OverridePixelPerfect: 0 - m_SortingBucketNormalizedSize: 0 - m_AdditionalShaderChannelsFlag: 0 - m_SortingLayerID: 0 - m_SortingOrder: 0 - m_TargetDisplay: 0 --- !u!1 &1200316076 GameObject: m_ObjectHideFlags: 0 @@ -15269,9 +14007,9 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: IsLeft: 1 - m_DevicePose: {fileID: -5795057508951129928, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} - m_PrimaryButton: {fileID: -147853027266014677, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} - m_Menu: {fileID: -5618949659622940714, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_DevicePose: {fileID: 8747399987281251770, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_PrimaryButton: {fileID: -6267646491421641194, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_Menu: {fileID: 1508652085242017756, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} --- !u!114 &1200316079 MonoBehaviour: m_ObjectHideFlags: 0 @@ -15285,8 +14023,8 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: IsLeft: 1 - m_IsActive: {fileID: -6503375197652741934, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} - m_TrackingState: {fileID: 530005473305561140, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_IsActive: {fileID: -3939447612102036819, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_TrackingState: {fileID: 2573631886961530909, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} m_ObjectToHide: {fileID: 733942705} --- !u!1 &1200982263 GameObject: @@ -15682,88 +14420,6 @@ MonoBehaviour: m_OnValueChanged: m_PersistentCalls: m_Calls: [] ---- !u!1 &1223410699 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1223410700} - - component: {fileID: 1223410702} - - component: {fileID: 1223410701} - m_Layer: 5 - m_Name: Text - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1223410700 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1223410699} - m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1336590365} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 85, y: 118} - m_SizeDelta: {x: 2000, y: 455.7} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1223410701 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1223410699} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 150 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 0 - m_MaxSize: 300 - m_Alignment: 1 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 0 - m_VerticalOverflow: 0 - m_LineSpacing: 1 - m_Text: 'System - - Press' ---- !u!222 &1223410702 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1223410699} - m_CullTransparentMesh: 0 --- !u!1 &1225497092 GameObject: m_ObjectHideFlags: 0 @@ -16002,7 +14658,6 @@ MonoBehaviour: m_GripPress: {fileID: 4656483959343042671, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} m_TriggerPress: {fileID: -852089479832380765, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} m_TrackpadPress: {fileID: -843239364136606648, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} - m_TrackpadTouch: {fileID: -1613379577176312973, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} --- !u!114 &1228911011 MonoBehaviour: m_ObjectHideFlags: 0 @@ -16158,108 +14813,6 @@ RectTransform: m_AnchoredPosition: {x: -5, y: 0} m_SizeDelta: {x: -20, y: 0} m_Pivot: {x: 0.5, y: 0.5} ---- !u!1001 &1236023483 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 265217178} - m_Modifications: - - target: {fileID: 3201029004716767610, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} - propertyPath: m_Mesh - value: - objectReference: {fileID: 3613567641014311022, guid: 815c9e4802ddea645a37bd99f011c9b4, type: 3} - - target: {fileID: 4346727372943234170, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} - propertyPath: m_LocalScale.y - value: 0.2 - objectReference: {fileID: 0} - - target: {fileID: 4346727372952809589, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} - propertyPath: m_LocalScale.y - value: 0.2 - objectReference: {fileID: 0} - - target: {fileID: 4346727373925079742, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} - propertyPath: m_LocalScale.y - value: 0.3 - objectReference: {fileID: 0} - - target: {fileID: 4346727373925079742, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4346727374823546882, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} - propertyPath: m_Name - value: PoseMarker - objectReference: {fileID: 0} - - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} - propertyPath: m_RootOrder - value: 2 - objectReference: {fileID: 0} - - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} - propertyPath: m_LocalScale.x - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} - propertyPath: m_LocalScale.y - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} - propertyPath: m_LocalScale.z - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} - propertyPath: m_LocalRotation.x - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} - propertyPath: m_LocalRotation.y - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} - propertyPath: m_LocalRotation.z - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6251018130860582685, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} - propertyPath: m_Mesh - value: - objectReference: {fileID: 3613567641014311022, guid: 815c9e4802ddea645a37bd99f011c9b4, type: 3} - - target: {fileID: 8595007410106638205, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} - propertyPath: m_Mesh - value: - objectReference: {fileID: 3613567641014311022, guid: 815c9e4802ddea645a37bd99f011c9b4, type: 3} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} ---- !u!4 &1236023484 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} - m_PrefabInstance: {fileID: 1236023483} - m_PrefabAsset: {fileID: 0} --- !u!1 &1240788711 GameObject: m_ObjectHideFlags: 0 @@ -16473,14 +15026,11 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_IsLeft: 0 - m_IsTracked: {fileID: 7861588272433278244, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} - m_TrackingState: {fileID: -2129783911140589000, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} - m_Position: {fileID: -4381620761775135041, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} - m_Rotation: {fileID: 4333451311024400164, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} - m_Strength: {fileID: 4704466750957533243, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} - m_AimPose: {fileID: 3692605411926281237, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} - m_SelectValue: {fileID: 2603460548863922366, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} ---- !u!1 &1283459934 + m_GripPose: {fileID: -1175152616597363556, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_Strength: {fileID: -1589112336650803178, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_AimPose: {fileID: 2185082307209871477, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_SelectValue: {fileID: -7726113467501644799, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} +--- !u!1 &1276451447 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -16488,53 +15038,91 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1283459935} - - component: {fileID: 1283459936} - m_Layer: 5 - m_Name: SystemTouch + - component: {fileID: 1276451448} + - component: {fileID: 1276451451} + - component: {fileID: 1276451450} + - component: {fileID: 1276451449} + m_Layer: 0 + m_Name: UserPresenceText m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!224 &1283459935 +--- !u!224 &1276451448 RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1283459934} + m_GameObject: {fileID: 1276451447} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1104724930} - - {fileID: 1763268538} - m_Father: {fileID: 54327373} - m_RootOrder: 1 + m_Children: [] + m_Father: {fileID: 1807220544} + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 0, y: -27} - m_SizeDelta: {x: 100, y: 100} + m_AnchoredPosition: {x: 0, y: 53} + m_SizeDelta: {x: 380, y: 30} m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1283459936 +--- !u!114 &1276451449 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1283459934} + m_GameObject: {fileID: 1276451447} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 1879fed0e0310334fb310daf7dcc4784, type: 3} + m_Script: {fileID: 11500000, guid: 06fce22bc702c664fb91ec6da2adb7a6, type: 3} m_Name: m_EditorClassIdentifier: - m_ActionReference: {fileID: -2197723308890051586, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} - enabledColor: {r: 0, g: 1, b: 0, a: 1} - disabledColor: {r: 1, g: 0, b: 0, a: 1} - image: {fileID: 1763268539} +--- !u!114 &1276451450 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1276451447} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.860898, g: 0.8773585, b: 0.1779548, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 18 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: User +--- !u!222 &1276451451 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1276451447} + m_CullTransparentMesh: 1 --- !u!1001 &1287651576 PrefabInstance: m_ObjectHideFlags: 0 @@ -16685,86 +15273,6 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1288795141} m_CullTransparentMesh: 0 ---- !u!1 &1292352853 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1292352854} - - component: {fileID: 1292352856} - - component: {fileID: 1292352855} - m_Layer: 5 - m_Name: PoseName - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1292352854 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1292352853} - m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.05, y: 0.05, z: 0.05} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 400725364} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: -25, y: -30} - m_SizeDelta: {x: 1000, y: 1000} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1292352855 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1292352853} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 300 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 3 - m_MaxSize: 300 - m_Alignment: 4 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 0 - m_VerticalOverflow: 0 - m_LineSpacing: 1 - m_Text: Right Aim ---- !u!222 &1292352856 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1292352853} - m_CullTransparentMesh: 0 --- !u!1 &1299906884 GameObject: m_ObjectHideFlags: 0 @@ -16875,232 +15383,6 @@ MonoBehaviour: enabledColor: {r: 0, g: 1, b: 0, a: 1} disabledColor: {r: 1, g: 0, b: 0, a: 1} image: {fileID: 1597119386} ---- !u!1 &1313886917 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1313886918} - - component: {fileID: 1313886921} - - component: {fileID: 1313886920} - - component: {fileID: 1313886919} - m_Layer: 5 - m_Name: ActionMapInfo - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 0 ---- !u!224 &1313886918 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1313886917} - m_LocalRotation: {x: 0.5, y: -0.5, z: 0.5, w: 0.5} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.001, y: 0.001, z: 0.001} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 520359993} - - {fileID: 1776753738} - m_Father: {fileID: 1314243338} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 90, y: -90, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0.005} - m_SizeDelta: {x: 1226, y: 740} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1313886919 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1313886917} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreReversedGraphics: 1 - m_BlockingObjects: 0 - m_BlockingMask: - serializedVersion: 2 - m_Bits: 4294967295 ---- !u!114 &1313886920 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1313886917} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} - m_Name: - m_EditorClassIdentifier: - m_UiScaleMode: 0 - m_ReferencePixelsPerUnit: 100 - m_ScaleFactor: 1 - m_ReferenceResolution: {x: 800, y: 600} - m_ScreenMatchMode: 0 - m_MatchWidthOrHeight: 0 - m_PhysicalUnit: 3 - m_FallbackScreenDPI: 96 - m_DefaultSpriteDPI: 96 - m_DynamicPixelsPerUnit: 1 - m_PresetInfoIsWorld: 1 ---- !u!223 &1313886921 -Canvas: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1313886917} - m_Enabled: 1 - serializedVersion: 3 - m_RenderMode: 2 - m_Camera: {fileID: 963194227} - m_PlaneDistance: 100 - m_PixelPerfect: 0 - m_ReceivesEvents: 1 - m_OverrideSorting: 0 - m_OverridePixelPerfect: 0 - m_SortingBucketNormalizedSize: 0 - m_AdditionalShaderChannelsFlag: 0 - m_SortingLayerID: 0 - m_SortingOrder: 0 - m_TargetDisplay: 0 ---- !u!1 &1314243337 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1314243338} - - component: {fileID: 1314243339} - m_Layer: 0 - m_Name: Aim - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1314243338 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1314243337} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0.5, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1313886918} - - {fileID: 400725364} - - {fileID: 1128829992} - m_Father: {fileID: 433861820} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &1314243339 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1314243337} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: b864e7d459cda4242abc2881903cf71d, type: 3} - m_Name: - m_EditorClassIdentifier: - m_DevicePose: {fileID: 3692605411926281237, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} ---- !u!1 &1325954192 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1325954193} - - component: {fileID: 1325954195} - - component: {fileID: 1325954194} - m_Layer: 5 - m_Name: Image - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1325954193 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1325954192} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 32622260} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 45, y: 120} - m_SizeDelta: {x: 100, y: 100} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1325954194 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1325954192} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &1325954195 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1325954192} - m_CullTransparentMesh: 0 --- !u!1 &1326232493 GameObject: m_ObjectHideFlags: 0 @@ -17154,10 +15436,7 @@ MonoBehaviour: m_EditorClassIdentifier: m_IsLeft: 1 m_UseInputAction: 1 - m_IsTracked: {fileID: 3005817691354473129, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} - m_TrackingState: {fileID: 5178774767481721072, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} - m_Position: {fileID: 9019252231132517785, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} - m_Rotation: {fileID: -22420666449113973, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_DevicePose: {fileID: -1624222239408711063, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} --- !u!114 &1326232496 MonoBehaviour: m_ObjectHideFlags: 0 @@ -17260,7 +15539,6 @@ MonoBehaviour: m_GripPress: {fileID: -4557055202343833867, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} m_TriggerPress: {fileID: 3184512592895566692, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} m_TrackpadPress: {fileID: -4658529997724613613, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} - m_TrackpadTouch: {fileID: 5995901032279626077, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} --- !u!114 &1330451527 MonoBehaviour: m_ObjectHideFlags: 0 @@ -17303,61 +15581,6 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1330451524} m_CullTransparentMesh: 1 ---- !u!1 &1336590364 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1336590365} - - component: {fileID: 1336590366} - m_Layer: 5 - m_Name: SystemClick - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1336590365 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1336590364} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1223410700} - - {fileID: 1802302017} - m_Father: {fileID: 54327373} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 0, y: 4} - m_SizeDelta: {x: 100, y: 100} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1336590366 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1336590364} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 1879fed0e0310334fb310daf7dcc4784, type: 3} - m_Name: - m_EditorClassIdentifier: - m_ActionReference: {fileID: 1040293238378581181, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} - enabledColor: {r: 0, g: 1, b: 0, a: 1} - disabledColor: {r: 1, g: 0, b: 0, a: 1} - image: {fileID: 1802302018} --- !u!1 &1337837810 GameObject: m_ObjectHideFlags: 0 @@ -17541,143 +15764,6 @@ MonoBehaviour: IsActive: {fileID: -7345373580490958299, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} TrackingState: {fileID: -8781820432748197562, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} ObjectToHide: {fileID: 1899457360} ---- !u!1 &1359548008 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1359548009} - - component: {fileID: 1359548011} - - component: {fileID: 1359548010} - m_Layer: 5 - m_Name: Text - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1359548009 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1359548008} - m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 520359993} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 85, y: 118} - m_SizeDelta: {x: 2000, y: 455.7} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1359548010 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1359548008} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 150 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 0 - m_MaxSize: 300 - m_Alignment: 1 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 0 - m_VerticalOverflow: 0 - m_LineSpacing: 1 - m_Text: 'System - - Press' ---- !u!222 &1359548011 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1359548008} - m_CullTransparentMesh: 0 ---- !u!1 &1363661659 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1363661660} - - component: {fileID: 1363661661} - m_Layer: 5 - m_Name: SystemClick - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1363661660 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1363661659} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 168949762} - - {fileID: 1008532020} - m_Father: {fileID: 1193189754} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 0, y: 4} - m_SizeDelta: {x: 100, y: 100} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1363661661 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1363661659} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 1879fed0e0310334fb310daf7dcc4784, type: 3} - m_Name: - m_EditorClassIdentifier: - m_ActionReference: {fileID: 1040293238378581181, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} - enabledColor: {r: 0, g: 1, b: 0, a: 1} - disabledColor: {r: 1, g: 0, b: 0, a: 1} - image: {fileID: 1008532021} --- !u!1 &1364728721 GameObject: m_ObjectHideFlags: 0 @@ -19107,15 +17193,15 @@ PrefabInstance: objectReference: {fileID: 3613567641014311022, guid: 815c9e4802ddea645a37bd99f011c9b4, type: 3} - target: {fileID: 4346727372943234170, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} propertyPath: m_LocalScale.y - value: 0.2 + value: 0.1 objectReference: {fileID: 0} - target: {fileID: 4346727372952809589, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} propertyPath: m_LocalScale.y - value: 0.2 + value: 0.1 objectReference: {fileID: 0} - target: {fileID: 4346727373925079742, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} propertyPath: m_LocalScale.y - value: 0.3 + value: 0.1 objectReference: {fileID: 0} - target: {fileID: 4346727373925079742, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} propertyPath: m_LocalPosition.z @@ -19127,19 +17213,19 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} propertyPath: m_RootOrder - value: 2 + value: 1 objectReference: {fileID: 0} - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} propertyPath: m_LocalScale.x - value: 0.5 + value: 0.4 objectReference: {fileID: 0} - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} propertyPath: m_LocalScale.y - value: 0.5 + value: 0.4 objectReference: {fileID: 0} - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} propertyPath: m_LocalScale.z - value: 0.5 + value: 0.4 objectReference: {fileID: 0} - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} propertyPath: m_LocalPosition.x @@ -19629,7 +17715,6 @@ MonoBehaviour: m_GripPress: {fileID: 1977882712028773836, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} m_TriggerPress: {fileID: -3847273455137891009, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} m_TrackpadPress: {fileID: 2342746936877958910, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} - m_TrackpadTouch: {fileID: 4498426489812670506, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} --- !u!114 &1532628516 MonoBehaviour: m_ObjectHideFlags: 0 @@ -19924,13 +18009,10 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_IsLeft: 1 - m_IsTracked: {fileID: -1235968895226315524, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} - m_TrackingState: {fileID: -7007282730503075863, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} - m_Position: {fileID: 7927903095090760841, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} - m_Rotation: {fileID: -5913230009485065526, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} - m_Strength: {fileID: -8793354525267442107, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} - m_AimPose: {fileID: 2124456439736387461, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} - m_SelectValue: {fileID: 7375677697711315273, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_GripPose: {fileID: -7997525260865347156, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_Strength: {fileID: -4855640752505812296, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_AimPose: {fileID: -7749099873530262829, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_SelectValue: {fileID: 5411044373122788356, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} --- !u!1 &1554119688 GameObject: m_ObjectHideFlags: 0 @@ -20059,7 +18141,7 @@ GameObject: - component: {fileID: 1561735409} - component: {fileID: 1561735410} m_Layer: 0 - m_Name: Aim + m_Name: AimR m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -20097,7 +18179,7 @@ MonoBehaviour: m_TrackingType: 0 m_UpdateType: 0 m_PositionInput: - m_UseReference: 1 + m_UseReference: 0 m_Action: m_Name: Position m_Type: 0 @@ -20115,9 +18197,9 @@ MonoBehaviour: m_Action: Position m_Flags: 0 m_Flags: 0 - m_Reference: {fileID: 1805487408676636314, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_Reference: {fileID: 0} m_RotationInput: - m_UseReference: 1 + m_UseReference: 0 m_Action: m_Name: Rotation m_Type: 0 @@ -20135,7 +18217,7 @@ MonoBehaviour: m_Action: Rotation m_Flags: 0 m_Flags: 0 - m_Reference: {fileID: -3341103204585363708, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_Reference: {fileID: 0} m_PositionAction: m_Name: Position m_Type: 0 @@ -20276,7 +18358,7 @@ RectTransform: m_GameObject: {fileID: 1574464185} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.15, y: 0.15, z: 0.15} + m_LocalScale: {x: 0.015, y: 0.015, z: 0.015} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1162657276} @@ -20346,88 +18428,6 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1574464185} m_CullTransparentMesh: 1 ---- !u!1 &1576062895 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1576062896} - - component: {fileID: 1576062898} - - component: {fileID: 1576062897} - m_Layer: 5 - m_Name: Text - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1576062896 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1576062895} - m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 548855614} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 85, y: 118} - m_SizeDelta: {x: 2000, y: 455.7} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1576062897 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1576062895} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 150 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 0 - m_MaxSize: 300 - m_Alignment: 1 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 0 - m_VerticalOverflow: 0 - m_LineSpacing: 1 - m_Text: 'System - - Touch' ---- !u!222 &1576062898 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1576062895} - m_CullTransparentMesh: 0 --- !u!1 &1576668755 GameObject: m_ObjectHideFlags: 0 @@ -20581,7 +18581,7 @@ MonoBehaviour: m_PointerSortingOrder: 32767 m_TimeToGaze: 1.5 m_EyeTracking: 1 - m_EyePose: {fileID: 1403026793098687128, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_EyePose: {fileID: 5776323397344544520, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} m_InputEvent: 0 m_ActionsKeys: - {fileID: -149401235567842990, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} @@ -20748,12 +18748,10 @@ Transform: - {fileID: 1741443131} - {fileID: 573203267} - {fileID: 1599303145} - - {fileID: 867397450} - - {fileID: 169007645} - - {fileID: 1654580157} - {fileID: 1957853035} - {fileID: 121577665} - {fileID: 99841489} + - {fileID: 855247513} m_Father: {fileID: 0} m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -21234,7 +19232,7 @@ GameObject: - component: {fileID: 1626888407} - component: {fileID: 1626888408} m_Layer: 0 - m_Name: Grip + m_Name: GripR m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -21248,7 +19246,7 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1626888406} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0.2, y: 0.2, z: 0} + m_LocalPosition: {x: 0.2, y: 0.2, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: @@ -21272,7 +19270,7 @@ MonoBehaviour: m_TrackingType: 0 m_UpdateType: 0 m_PositionInput: - m_UseReference: 1 + m_UseReference: 0 m_Action: m_Name: Position m_Type: 0 @@ -21290,9 +19288,9 @@ MonoBehaviour: m_Action: Position m_Flags: 0 m_Flags: 0 - m_Reference: {fileID: 7443918988805782556, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_Reference: {fileID: 0} m_RotationInput: - m_UseReference: 1 + m_UseReference: 0 m_Action: m_Name: Rotation m_Type: 0 @@ -21310,7 +19308,7 @@ MonoBehaviour: m_Action: Rotation m_Flags: 0 m_Flags: 0 - m_Reference: {fileID: 7542131730279260107, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_Reference: {fileID: 0} m_PositionAction: m_Name: Position m_Type: 0 @@ -21623,7 +19621,7 @@ GameObject: - component: {fileID: 1638149181} - component: {fileID: 1638149182} m_Layer: 0 - m_Name: Grip + m_Name: LeftGrip m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -21636,16 +19634,15 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1638149180} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: -0.3, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 1789809035} - {fileID: 2930338} - {fileID: 507420956} - m_Father: {fileID: 1688677235} - m_RootOrder: 0 + m_Father: {fileID: 4704245549949326341} + m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &1638149182 MonoBehaviour: @@ -21662,45 +19659,45 @@ MonoBehaviour: m_TrackingType: 0 m_UpdateType: 0 m_PositionInput: - m_UseReference: 1 + m_UseReference: 0 m_Action: m_Name: Position Input m_Type: 0 m_ExpectedControlType: - m_Id: e3292456-9857-4d13-8e6f-2201600a4848 + m_Id: b5447781-87d4-4258-bdb1-d53d3640ca59 m_Processors: m_Interactions: m_SingletonActionBindings: - m_Name: - m_Id: 2caadaed-6cae-4206-871a-7d122f9443b7 - m_Path: {Tracker0}/devicePosition + m_Id: 187da60f-54fc-41da-ae09-a79e64c93bfe + m_Path: {LeftHand}/devicePosition m_Interactions: m_Processors: m_Groups: m_Action: Position Input m_Flags: 0 m_Flags: 0 - m_Reference: {fileID: 7927903095090760841, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_Reference: {fileID: 0} m_RotationInput: - m_UseReference: 1 + m_UseReference: 0 m_Action: m_Name: Rotation Input m_Type: 0 m_ExpectedControlType: - m_Id: 8236fd6b-5775-45b4-b768-d7978c047049 + m_Id: 8bd5a3c6-a6d1-4c1a-813d-c0cdbddb59f3 m_Processors: m_Interactions: m_SingletonActionBindings: - m_Name: - m_Id: 7406a299-3f75-40d3-9f0a-bc8cfd60eecb - m_Path: {Tracker0}/deviceRotation + m_Id: e8c01c2f-cbb0-4b60-b085-062d51868606 + m_Path: {LeftHand}/deviceRotation m_Interactions: m_Processors: m_Groups: m_Action: Rotation Input m_Flags: 0 m_Flags: 0 - m_Reference: {fileID: -5913230009485065526, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_Reference: {fileID: 0} m_PositionAction: m_Name: m_Type: 0 @@ -21835,7 +19832,6 @@ MonoBehaviour: m_GripPress: {fileID: -4312400075403566641, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} m_TriggerPress: {fileID: 936349958271332385, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} m_TrackpadPress: {fileID: -4875030185300025259, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} - m_TrackpadTouch: {fileID: -6225327852630812328, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} --- !u!114 &1641839127 MonoBehaviour: m_ObjectHideFlags: 0 @@ -21980,15 +19976,15 @@ RectTransform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1654580156} - m_LocalRotation: {x: 0, y: 0.38268343, z: 0, w: 0.92387956} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 1.581} m_LocalScale: {x: 0.003, y: 0.003, z: 0.003} m_ConstrainProportionsScale: 0 m_Children: - {fileID: 1519931347} - m_Father: {fileID: 1588199579} - m_RootOrder: 5 - m_LocalEulerAnglesHint: {x: 0, y: 45, z: 0} + m_Father: {fileID: 855247513} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} m_AnchoredPosition: {x: 3, y: -1.299} @@ -22131,82 +20127,6 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1666535196} m_CullTransparentMesh: 0 ---- !u!1 &1678631314 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1678631315} - - component: {fileID: 1678631317} - - component: {fileID: 1678631316} - m_Layer: 5 - m_Name: Image - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1678631315 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1678631314} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1709561820} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 45, y: 120} - m_SizeDelta: {x: 100, y: 100} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1678631316 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1678631314} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &1678631317 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1678631314} - m_CullTransparentMesh: 0 --- !u!1 &1686534012 GameObject: m_ObjectHideFlags: 0 @@ -22261,56 +20181,6 @@ MonoBehaviour: enabledColor: {r: 0, g: 1, b: 0, a: 1} disabledColor: {r: 1, g: 0, b: 0, a: 1} image: {fileID: 1619008006} ---- !u!1 &1688677234 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1688677235} - - component: {fileID: 1688677236} - m_Layer: 0 - m_Name: LeftHand - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 0 ---- !u!4 &1688677235 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1688677234} - m_LocalRotation: {x: -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: 1638149181} - - {fileID: 265217178} - m_Father: {fileID: 4704245549949326341} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &1688677236 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1688677234} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 873a88a3d45610d4489a58d37c448415, type: 3} - m_Name: - m_EditorClassIdentifier: - IsLeft: 1 - m_IsActive: {fileID: -1235968895226315524, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} - m_TrackingState: {fileID: -7007282730503075863, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} - m_ObjectToHide: {fileID: 1638149180} --- !u!1 &1690534825 GameObject: m_ObjectHideFlags: 0 @@ -22499,61 +20369,6 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1702356771} m_CullTransparentMesh: 0 ---- !u!1 &1709561819 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1709561820} - - component: {fileID: 1709561821} - m_Layer: 5 - m_Name: SystemClick - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1709561820 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1709561819} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1756214648} - - {fileID: 1678631315} - m_Father: {fileID: 1789809035} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 0, y: 4} - m_SizeDelta: {x: 100, y: 100} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1709561821 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1709561819} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 1879fed0e0310334fb310daf7dcc4784, type: 3} - m_Name: - m_EditorClassIdentifier: - m_ActionReference: {fileID: 1040293238378581181, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} - enabledColor: {r: 0, g: 1, b: 0, a: 1} - disabledColor: {r: 1, g: 0, b: 0, a: 1} - image: {fileID: 1678631316} --- !u!1 &1725164086 GameObject: m_ObjectHideFlags: 0 @@ -22836,7 +20651,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!65 &1741443128 BoxCollider: m_ObjectHideFlags: 0 @@ -22915,82 +20730,6 @@ Transform: m_Father: {fileID: 1588199579} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1753990671 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1753990672} - - component: {fileID: 1753990674} - - component: {fileID: 1753990673} - m_Layer: 5 - m_Name: Image - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1753990672 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1753990671} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 548855614} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 45, y: 120} - m_SizeDelta: {x: 100, y: 100} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1753990673 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1753990671} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &1753990674 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1753990671} - m_CullTransparentMesh: 0 --- !u!1001 &1755555154 PrefabInstance: m_ObjectHideFlags: 0 @@ -23053,164 +20792,6 @@ Transform: m_CorrespondingSourceObject: {fileID: 6626048664893692721, guid: 5dc3dee3f9e01d341b7db5195a78b34e, type: 3} m_PrefabInstance: {fileID: 1755555154} m_PrefabAsset: {fileID: 0} ---- !u!1 &1756214647 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1756214648} - - component: {fileID: 1756214650} - - component: {fileID: 1756214649} - m_Layer: 5 - m_Name: Text - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1756214648 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1756214647} - m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1709561820} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 85, y: 118} - m_SizeDelta: {x: 2000, y: 455.7} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1756214649 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1756214647} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 150 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 0 - m_MaxSize: 300 - m_Alignment: 1 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 0 - m_VerticalOverflow: 0 - m_LineSpacing: 1 - m_Text: 'System - - Press' ---- !u!222 &1756214650 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1756214647} - m_CullTransparentMesh: 0 ---- !u!1 &1763268537 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1763268538} - - component: {fileID: 1763268540} - - component: {fileID: 1763268539} - m_Layer: 5 - m_Name: Image - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1763268538 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1763268537} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1283459935} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 45, y: 120} - m_SizeDelta: {x: 100, y: 100} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1763268539 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1763268537} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &1763268540 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1763268537} - m_CullTransparentMesh: 0 --- !u!1 &1772152482 GameObject: m_ObjectHideFlags: 0 @@ -23266,137 +20847,6 @@ MonoBehaviour: enabledColor: {r: 0, g: 1, b: 0, a: 1} disabledColor: {r: 1, g: 0, b: 0, a: 1} image: {fileID: 682385678} ---- !u!1 &1776753737 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1776753738} - - component: {fileID: 1776753739} - m_Layer: 5 - m_Name: SystemTouch - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1776753738 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1776753737} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 435877687} - - {fileID: 504668544} - m_Father: {fileID: 1313886918} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 0, y: -27} - m_SizeDelta: {x: 100, y: 100} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1776753739 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1776753737} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 1879fed0e0310334fb310daf7dcc4784, type: 3} - m_Name: - m_EditorClassIdentifier: - m_ActionReference: {fileID: -2197723308890051586, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} - enabledColor: {r: 0, g: 1, b: 0, a: 1} - disabledColor: {r: 1, g: 0, b: 0, a: 1} - image: {fileID: 504668545} ---- !u!1 &1781355787 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1781355788} - - component: {fileID: 1781355790} - - component: {fileID: 1781355789} - m_Layer: 5 - m_Name: Image - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1781355788 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1781355787} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 520359993} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 45, y: 120} - m_SizeDelta: {x: 100, y: 100} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1781355789 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1781355787} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &1781355790 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1781355787} - m_CullTransparentMesh: 0 --- !u!1 &1785352456 GameObject: m_ObjectHideFlags: 0 @@ -23477,184 +20927,6 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1785352456} m_CullTransparentMesh: 0 ---- !u!1 &1789809034 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1789809035} - - component: {fileID: 1789809038} - - component: {fileID: 1789809037} - - component: {fileID: 1789809036} - m_Layer: 5 - m_Name: ActionMapInfo - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 0 ---- !u!224 &1789809035 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1789809034} - m_LocalRotation: {x: 0.5, y: -0.5, z: 0.5, w: 0.5} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.001, y: 0.001, z: 0.001} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1709561820} - - {fileID: 32622260} - m_Father: {fileID: 1638149181} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 90, y: -90, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0.005} - m_SizeDelta: {x: 1226, y: 740} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1789809036 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1789809034} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreReversedGraphics: 1 - m_BlockingObjects: 0 - m_BlockingMask: - serializedVersion: 2 - m_Bits: 4294967295 ---- !u!114 &1789809037 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1789809034} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} - m_Name: - m_EditorClassIdentifier: - m_UiScaleMode: 0 - m_ReferencePixelsPerUnit: 100 - m_ScaleFactor: 1 - m_ReferenceResolution: {x: 800, y: 600} - m_ScreenMatchMode: 0 - m_MatchWidthOrHeight: 0 - m_PhysicalUnit: 3 - m_FallbackScreenDPI: 96 - m_DefaultSpriteDPI: 96 - m_DynamicPixelsPerUnit: 1 - m_PresetInfoIsWorld: 1 ---- !u!223 &1789809038 -Canvas: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1789809034} - m_Enabled: 1 - serializedVersion: 3 - m_RenderMode: 2 - m_Camera: {fileID: 963194227} - m_PlaneDistance: 100 - m_PixelPerfect: 0 - m_ReceivesEvents: 1 - m_OverrideSorting: 0 - m_OverridePixelPerfect: 0 - m_SortingBucketNormalizedSize: 0 - m_AdditionalShaderChannelsFlag: 0 - m_SortingLayerID: 0 - m_SortingOrder: 0 - m_TargetDisplay: 0 ---- !u!1 &1802302016 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1802302017} - - component: {fileID: 1802302019} - - component: {fileID: 1802302018} - m_Layer: 5 - m_Name: Image - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1802302017 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1802302016} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1336590365} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 45, y: 120} - m_SizeDelta: {x: 100, y: 100} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1802302018 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1802302016} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &1802302019 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1802302016} - m_CullTransparentMesh: 0 --- !u!1 &1807220543 GameObject: m_ObjectHideFlags: 0 @@ -23685,6 +20957,7 @@ RectTransform: m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: + - {fileID: 1276451448} - {fileID: 1058444042} m_Father: {fileID: 867397450} m_RootOrder: 0 @@ -23765,7 +21038,7 @@ RectTransform: m_Children: - {fileID: 62898317} m_Father: {fileID: 470288076} - m_RootOrder: 1 + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 90, y: -90, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} @@ -24447,86 +21720,6 @@ MonoBehaviour: m_Flags: 0 m_Flags: 0 m_HasMigratedActions: 1 ---- !u!1 &1841044785 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1841044786} - - component: {fileID: 1841044788} - - component: {fileID: 1841044787} - m_Layer: 5 - m_Name: PoseName - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1841044786 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1841044785} - m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.05, y: 0.05, z: 0.05} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 324441014} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: -25, y: -30} - m_SizeDelta: {x: 1000, y: 1000} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1841044787 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1841044785} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 300 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 3 - m_MaxSize: 300 - m_Alignment: 4 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 0 - m_VerticalOverflow: 0 - m_LineSpacing: 1 - m_Text: Left Aim ---- !u!222 &1841044788 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1841044785} - m_CullTransparentMesh: 0 --- !u!1 &1863449114 GameObject: m_ObjectHideFlags: 0 @@ -26024,7 +23217,7 @@ RectTransform: m_Children: - {fileID: 431989751} m_Father: {fileID: 1588199579} - m_RootOrder: 6 + m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: -45, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} @@ -26510,7 +23703,7 @@ GameObject: - component: {fileID: 1986878642} - component: {fileID: 1986878643} m_Layer: 0 - m_Name: Device + m_Name: Device3 m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -26555,18 +23748,10 @@ MonoBehaviour: m_Name: Position Input m_Type: 0 m_ExpectedControlType: - m_Id: e3292456-9857-4d13-8e6f-2201600a4848 + m_Id: adb273b6-efd0-4833-a79d-a295111b61c8 m_Processors: m_Interactions: - m_SingletonActionBindings: - - m_Name: - m_Id: 2caadaed-6cae-4206-871a-7d122f9443b7 - m_Path: {Tracker2}/devicePosition - m_Interactions: - m_Processors: - m_Groups: - m_Action: Position Input - m_Flags: 0 + m_SingletonActionBindings: [] m_Flags: 0 m_Reference: {fileID: -2759337842053880306, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} m_RotationInput: @@ -26575,18 +23760,10 @@ MonoBehaviour: m_Name: Rotation Input m_Type: 0 m_ExpectedControlType: - m_Id: 8236fd6b-5775-45b4-b768-d7978c047049 + m_Id: a38557a1-21b4-4d38-bf68-0109cc6b6761 m_Processors: m_Interactions: - m_SingletonActionBindings: - - m_Name: - m_Id: 7406a299-3f75-40d3-9f0a-bc8cfd60eecb - m_Path: {Tracker2}/deviceRotation - m_Interactions: - m_Processors: - m_Groups: - m_Action: Rotation Input - m_Flags: 0 + m_SingletonActionBindings: [] m_Flags: 0 m_Reference: {fileID: 728203289168863980, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} m_PositionAction: @@ -26619,7 +23796,7 @@ GameObject: - component: {fileID: 2002148295} - component: {fileID: 2002148296} m_Layer: 0 - m_Name: Device + m_Name: Device0 m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -26640,7 +23817,7 @@ Transform: - {fileID: 202414071} - {fileID: 1514365410} - {fileID: 18287147} - - {fileID: 5238945993371114003} + - {fileID: 6144798738361035699} m_Father: {fileID: 1632739323} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -26664,18 +23841,10 @@ MonoBehaviour: m_Name: Position Input m_Type: 0 m_ExpectedControlType: - m_Id: e3292456-9857-4d13-8e6f-2201600a4848 + m_Id: 2f540252-8f8c-4b08-8ec3-3f5836487f3b m_Processors: m_Interactions: - m_SingletonActionBindings: - - m_Name: - m_Id: 2caadaed-6cae-4206-871a-7d122f9443b7 - m_Path: {Tracker0}/devicePosition - m_Interactions: - m_Processors: - m_Groups: - m_Action: Position Input - m_Flags: 0 + m_SingletonActionBindings: [] m_Flags: 0 m_Reference: {fileID: -435773219102049562, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} m_RotationInput: @@ -26684,18 +23853,10 @@ MonoBehaviour: m_Name: Rotation Input m_Type: 0 m_ExpectedControlType: - m_Id: 8236fd6b-5775-45b4-b768-d7978c047049 + m_Id: e3a2e573-9d41-4b77-b0ce-d48f863d05a6 m_Processors: m_Interactions: - m_SingletonActionBindings: - - m_Name: - m_Id: 7406a299-3f75-40d3-9f0a-bc8cfd60eecb - m_Path: {Tracker0}/deviceRotation - m_Interactions: - m_Processors: - m_Groups: - m_Action: Rotation Input - m_Flags: 0 + m_SingletonActionBindings: [] m_Flags: 0 m_Reference: {fileID: 8869308336890601743, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} m_PositionAction: @@ -28219,7 +25380,7 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2138131842} m_CullTransparentMesh: 0 ---- !u!1001 &1387123770013499682 +--- !u!1001 &403783806238119598 PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 @@ -28547,6 +25708,8 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 4704245549949326341} + - component: {fileID: 4704245549949326343} + - component: {fileID: 4704245549949326342} m_Layer: 0 m_Name: Hand m_TagString: Untagged @@ -28568,13 +25731,45 @@ Transform: m_Children: - {fileID: 4704245548694993874} - {fileID: 343022093} - - {fileID: 1688677235} + - {fileID: 1638149181} - {fileID: 4704245550269701930} - {fileID: 1162657276} - - {fileID: 433861820} + - {fileID: 470288076} m_Father: {fileID: 1060976101} m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &4704245549949326342 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4704245549949326339} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 873a88a3d45610d4489a58d37c448415, type: 3} + m_Name: + m_EditorClassIdentifier: + IsLeft: 0 + m_IsActive: {fileID: -6825383090160689092, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_TrackingState: {fileID: 1165688881896262676, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_ObjectToHide: {fileID: 470288075} +--- !u!114 &4704245549949326343 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4704245549949326339} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 873a88a3d45610d4489a58d37c448415, type: 3} + m_Name: + m_EditorClassIdentifier: + IsLeft: 1 + m_IsActive: {fileID: 2855746057356915268, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_TrackingState: {fileID: -400128520996231495, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_ObjectToHide: {fileID: 1638149180} --- !u!1 &4704245550269701929 GameObject: m_ObjectHideFlags: 0 @@ -28624,10 +25819,10 @@ MonoBehaviour: pointColor: {r: 0, g: 1, b: 0, a: 1} linkColor: {r: 1, g: 1, b: 1, a: 1} material: {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} ---- !u!4 &5238945993371114003 stripped +--- !u!4 &6144798738361035699 stripped Transform: m_CorrespondingSourceObject: {fileID: 6626048664893692721, guid: 5dc3dee3f9e01d341b7db5195a78b34e, type: 3} - m_PrefabInstance: {fileID: 1387123770013499682} + m_PrefabInstance: {fileID: 403783806238119598} m_PrefabAsset: {fileID: 0} --- !u!114 &9037635856419634546 MonoBehaviour: diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Prefabs/VIVE/Vive_UltimateTracker.prefab b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Prefabs/VIVE/Vive_UltimateTracker.prefab index c6e08df..10d2682 100644 --- a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Prefabs/VIVE/Vive_UltimateTracker.prefab +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Prefabs/VIVE/Vive_UltimateTracker.prefab @@ -61,7 +61,7 @@ MeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 5904567748361503788, guid: 407031a402781d048945abb5156739ad, type: 3} + - {fileID: 2100000, guid: 059b53ad53194a842b6db98a2ec57e27, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Scripts/TrackingModeOrigin.cs b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Scripts/TrackingModeOrigin.cs index 7b5d97d..85bc1a9 100644 --- a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Scripts/TrackingModeOrigin.cs +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Scripts/TrackingModeOrigin.cs @@ -4,6 +4,7 @@ using UnityEngine; using UnityEngine.UI; using UnityEngine.XR; using VIVE.OpenXR; +using VIVE.OpenXR.DisplayRefreshRate; namespace UnityEngine.XR.OpenXR.Samples.ControllerSample { @@ -64,10 +65,18 @@ namespace UnityEngine.XR.OpenXR.Samples.ControllerSample m_LastRecenteredTime = Time.time; }*/ + static private void OnDisplayRateChanged(float fromRate, float toRate) + { + Debug.Log("DisplayRefreshRate fromRate = " + fromRate); + Debug.Log("DisplayRefreshRate toRate = " + toRate); + } + public void OnDesiredSelectionChanged(int newValue) { desiredTrackingOriginMode = (TrackingOriginModeFlags)(newValue == 0 ? 0 : (1 << (newValue - 1))); +#if UNITY_ANDROID + ViveDisplayRefreshRateChanged.Listen(OnDisplayRateChanged); if (desiredTrackingOriginMode == TrackingOriginModeFlags.Device) { float value; @@ -103,6 +112,7 @@ namespace UnityEngine.XR.OpenXR.Samples.ControllerSample } } + #endif } private void TrackingOriginUpdated(TrackingOriginModeFlags mode) diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Scripts/VIVE/ControllerTracking.cs b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Scripts/VIVE/ControllerTracking.cs index 6228cda..cb8991c 100644 --- a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Scripts/VIVE/ControllerTracking.cs +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Scripts/VIVE/ControllerTracking.cs @@ -35,20 +35,8 @@ namespace VIVE.OpenXR.Samples.OpenXRInput public bool UseInputAction { get { return m_UseInputAction; } set { m_UseInputAction = value; } } [SerializeField] - private InputActionReference m_IsTracked = null; - public InputActionReference IsTracked { get { return m_IsTracked; } set { m_IsTracked = value; } } - - [SerializeField] - private InputActionReference m_TrackingState = null; - public InputActionReference TrackingState { get { return m_TrackingState; } set { m_TrackingState = value; } } - - [SerializeField] - private InputActionReference m_Position = null; - public InputActionReference Position { get { return m_Position; } set { m_Position = value; } } - - [SerializeField] - private InputActionReference m_Rotation = null; - public InputActionReference Rotation { get { return m_Rotation; } set { m_Rotation = value; } } + private InputActionReference m_DevicePose = null; + public InputActionReference DevicePose { get { return m_DevicePose; } set { m_DevicePose = value; } } #endif /// VIVE Left Controller Characteristics public const InputDeviceCharacteristics kControllerLeftCharacteristics = ( @@ -200,7 +188,7 @@ namespace VIVE.OpenXR.Samples.OpenXRInput { m_Text.text += "isTracked: "; { - if (Utils.GetButton(m_IsTracked, out bool value, out string msg)) + if (CommonHelper.GetPoseIsTracked(m_DevicePose, out bool value, out string msg)) { m_Text.text += value; } @@ -212,7 +200,7 @@ namespace VIVE.OpenXR.Samples.OpenXRInput m_Text.text += "\n"; m_Text.text += "trackingState: "; { - if (Utils.GetInteger(m_TrackingState, out InputTrackingState value, out string msg)) + if (CommonHelper.GetPoseTrackingState(m_DevicePose, out InputTrackingState value, out string msg)) { m_Text.text += value; } @@ -224,7 +212,7 @@ namespace VIVE.OpenXR.Samples.OpenXRInput m_Text.text += "\n"; m_Text.text += "position ("; { - if (Utils.GetVector3(m_Position, out Vector3 value, out string msg)) + if (CommonHelper.GetPosePosition(m_DevicePose, out Vector3 value, out string msg)) { m_Text.text += value.x.ToString() + ", " + value.y.ToString() + ", " + value.z.ToString(); } @@ -236,7 +224,7 @@ namespace VIVE.OpenXR.Samples.OpenXRInput m_Text.text += ")\n"; m_Text.text += "rotation ("; { - if (Utils.GetQuaternion(m_Rotation, out Quaternion value, out string msg)) + if (CommonHelper.GetPoseRotation(m_DevicePose, out Quaternion value, out string msg)) { m_Text.text += value.x.ToString() + ", " + value.y.ToString() + ", " + value.z.ToString() + ", " + value.w.ToString(); } diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Scripts/VIVE/HandInteractionTracking.cs b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Scripts/VIVE/HandInteractionTracking.cs index 37ee600..c8ab2c2 100644 --- a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Scripts/VIVE/HandInteractionTracking.cs +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Scripts/VIVE/HandInteractionTracking.cs @@ -30,20 +30,8 @@ namespace VIVE.OpenXR.Samples.OpenXRInput #if ENABLE_INPUT_SYSTEM [SerializeField] - private InputActionReference m_IsTracked = null; - public InputActionReference IsTracked { get { return m_IsTracked; } set { m_IsTracked = value; } } - - [SerializeField] - private InputActionReference m_TrackingState = null; - public InputActionReference TrackingState { get { return m_TrackingState; } set { m_TrackingState = value; } } - - [SerializeField] - private InputActionReference m_Position = null; - public InputActionReference Position { get { return m_Position; } set { m_Position = value; } } - - [SerializeField] - private InputActionReference m_Rotation = null; - public InputActionReference Rotation { get { return m_Rotation; } set { m_Rotation = value; } } + private InputActionReference m_GripPose = null; + public InputActionReference GripPose { get { return m_GripPose; } set { m_GripPose = value; } } [SerializeField] private InputActionReference m_Strength = null; @@ -72,7 +60,7 @@ namespace VIVE.OpenXR.Samples.OpenXRInput #if ENABLE_INPUT_SYSTEM m_Text.text += "\nisTracked: "; { - if (Utils.GetButton(m_IsTracked, out bool value, out string msg)) + if (CommonHelper.GetPoseIsTracked(m_GripPose, out bool value, out string msg)) { m_Text.text += value; } @@ -83,7 +71,7 @@ namespace VIVE.OpenXR.Samples.OpenXRInput } m_Text.text += "\ntrackingState: "; { - if (Utils.GetInteger(m_TrackingState, out InputTrackingState value, out string msg)) + if (CommonHelper.GetPoseTrackingState(m_GripPose, out InputTrackingState value, out string msg)) { m_Text.text += value; } @@ -94,7 +82,7 @@ namespace VIVE.OpenXR.Samples.OpenXRInput } m_Text.text += "\nposition ("; { - if (Utils.GetVector3(m_Position, out Vector3 value, out string msg)) + if (CommonHelper.GetPosePosition(m_GripPose, out Vector3 value, out string msg)) { m_Text.text += value.x.ToString() + ", " + value.y.ToString() + ", " + value.z.ToString(); } @@ -105,7 +93,7 @@ namespace VIVE.OpenXR.Samples.OpenXRInput } m_Text.text += ")\nrotation ("; { - if (Utils.GetQuaternion(m_Rotation, out Quaternion value, out string msg)) + if (CommonHelper.GetPoseRotation(m_GripPose, out Quaternion value, out string msg)) { m_Text.text += value.x.ToString() + ", " + value.y.ToString() + ", " + value.z.ToString() + ", " + value.w.ToString(); } @@ -116,7 +104,7 @@ namespace VIVE.OpenXR.Samples.OpenXRInput } m_Text.text += ")\nstrength: "; { - if (Utils.GetAnalog(m_Strength, out float value, out string msg)) + if (CommonHelper.GetAnalog(m_Strength, out float value, out string msg)) { m_Text.text += value.ToString(); } @@ -131,7 +119,7 @@ namespace VIVE.OpenXR.Samples.OpenXRInput #if ENABLE_INPUT_SYSTEM m_Text.text += "\nisTracked: "; { - if (Utils.GetPoseIsTracked(m_AimPose, out bool value, out string msg)) + if (CommonHelper.GetPoseIsTracked(m_AimPose, out bool value, out string msg)) { m_Text.text += value; } @@ -142,7 +130,7 @@ namespace VIVE.OpenXR.Samples.OpenXRInput } m_Text.text += "\ntrackingState: "; { - if (Utils.GetPoseTrackingState(m_AimPose, out InputTrackingState value, out string msg)) + if (CommonHelper.GetPoseTrackingState(m_AimPose, out InputTrackingState value, out string msg)) { m_Text.text += value; } @@ -153,7 +141,7 @@ namespace VIVE.OpenXR.Samples.OpenXRInput } m_Text.text += "\nposition ("; { - if (Utils.GetPosePosition(m_AimPose, out Vector3 value, out string msg)) + if (CommonHelper.GetPosePosition(m_AimPose, out Vector3 value, out string msg)) { m_Text.text += value.x.ToString() + ", " + value.y.ToString() + ", " + value.z.ToString(); } @@ -164,7 +152,7 @@ namespace VIVE.OpenXR.Samples.OpenXRInput } m_Text.text += ")\nrotation ("; { - if (Utils.GetPoseRotation(m_AimPose, out Quaternion value, out string msg)) + if (CommonHelper.GetPoseRotation(m_AimPose, out Quaternion value, out string msg)) { m_Text.text += value.x.ToString() + ", " + value.y.ToString() + ", " + value.z.ToString() + ", " + value.w.ToString(); } @@ -176,7 +164,7 @@ namespace VIVE.OpenXR.Samples.OpenXRInput m_Text.text += ")\n"; m_Text.text += "select: "; { - if (Utils.GetAnalog(m_SelectValue, out float value, out string msg)) + if (CommonHelper.GetAnalog(m_SelectValue, out float value, out string msg)) { m_Text.text += value; } diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Scripts/VIVE/PoseDriver.cs b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Scripts/VIVE/PoseDriver.cs index fde2acd..880bd5f 100644 --- a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Scripts/VIVE/PoseDriver.cs +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Scripts/VIVE/PoseDriver.cs @@ -21,11 +21,11 @@ namespace VIVE.OpenXR.Samples.OpenXRInput if (m_DevicePose == null) { return; } string msg = ""; - if (Utils.GetPosePosition(m_DevicePose, out Vector3 pos, out msg)) + if (CommonHelper.GetPosePosition(m_DevicePose, out Vector3 pos, out msg)) { transform.localPosition = pos; } - if (Utils.GetPoseRotation(m_DevicePose, out Quaternion rot, out msg)) + if (CommonHelper.GetPoseRotation(m_DevicePose, out Quaternion rot, out msg)) { transform.localRotation = rot; } diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Scripts/VIVE/TrackerPose.cs b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Scripts/VIVE/TrackerPose.cs index e581727..95d47c4 100644 --- a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Scripts/VIVE/TrackerPose.cs +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Scripts/VIVE/TrackerPose.cs @@ -172,16 +172,20 @@ namespace VIVE.OpenXR.Samples.OpenXRInput if (getButton(m_Menu)) DEBUG("Update() " + m_Menu.name + " is pressed."); - if (tracked) +#if !UNITY_XR_OPENXR_1_6_0 + if (tracked) // The isTracked value of Pose will always be flase in OpenXR 1.6.0 +#endif { transform.localPosition = position; transform.localRotation = rotation; } +#if !UNITY_XR_OPENXR_1_6_0 else { if (printIntervalLog) DEBUG("Update() Tracker is not tracked."); } +#endif } } } diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Scripts/VIVE/TrackerText.cs b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Scripts/VIVE/TrackerText.cs index b4a00c8..261280d 100644 --- a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Scripts/VIVE/TrackerText.cs +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Scripts/VIVE/TrackerText.cs @@ -59,20 +59,20 @@ namespace VIVE.OpenXR.Samples.OpenXRInput m_Text.text = "Left Tracker "; { // Tracked - if (Utils.GetButton(m_TrackedL, out bool value, out string msg)) + if (CommonHelper.GetButton(m_TrackedL, out bool value, out string msg)) { m_Text.text += "tracked: " + value + ", "; } } { // trackingState - if (Utils.GetInteger(m_TrackingStateL, out InputTrackingState value, out string msg)) + if (CommonHelper.GetInteger(m_TrackingStateL, out InputTrackingState value, out string msg)) { m_Text.text += "state: " + value + ", "; } } { // Left X - if (Utils.GetButton(m_LeftX, out bool value, out string msg)) + if (CommonHelper.GetButton(m_LeftX, out bool value, out string msg)) { if (value) { @@ -82,7 +82,7 @@ namespace VIVE.OpenXR.Samples.OpenXRInput } } { // Left Menu - if (Utils.GetButton(m_LeftMenu, out bool value, out string msg)) + if (CommonHelper.GetButton(m_LeftMenu, out bool value, out string msg)) { if (value) { @@ -96,20 +96,20 @@ namespace VIVE.OpenXR.Samples.OpenXRInput m_Text.text += "\nRight Tracker "; { // Tracked - if (Utils.GetButton(m_TrackedR, out bool value, out string msg)) + if (CommonHelper.GetButton(m_TrackedR, out bool value, out string msg)) { m_Text.text += "tracked: " + value + ", "; } } { // trackingState - if (Utils.GetInteger(m_TrackingStateR, out InputTrackingState value, out string msg)) + if (CommonHelper.GetInteger(m_TrackingStateR, out InputTrackingState value, out string msg)) { m_Text.text += "state: " + value + ", "; } } { // Right A - if (Utils.GetButton(m_RightA, out bool value, out string msg)) + if (CommonHelper.GetButton(m_RightA, out bool value, out string msg)) { if (value) { diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Scripts/VIVE/TrackerTracking.cs b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Scripts/VIVE/TrackerTracking.cs index 8bf3f49..7c0e098 100644 --- a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Scripts/VIVE/TrackerTracking.cs +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Scripts/VIVE/TrackerTracking.cs @@ -64,10 +64,6 @@ namespace VIVE.OpenXR.Samples.OpenXRInput private InputActionReference m_TrackpadPress = null; public InputActionReference TrackpadPress { get { return m_TrackpadPress; } set { m_TrackpadPress = value; } } - [SerializeField] - private InputActionReference m_TrackpadTouch = null; - public InputActionReference TrackpadTouch { get { return m_TrackpadTouch; } set { m_TrackpadTouch = value; } } - private Text m_Text = null; private void Start() { @@ -82,7 +78,7 @@ namespace VIVE.OpenXR.Samples.OpenXRInput m_Text.text += " isTracked: "; { - if (Utils.GetButton(m_IsTracked, out bool value, out string msg)) + if (CommonHelper.GetButton(m_IsTracked, out bool value, out string msg)) { m_Text.text += value; } @@ -94,7 +90,7 @@ namespace VIVE.OpenXR.Samples.OpenXRInput m_Text.text += "\n"; m_Text.text += "trackingState: "; { - if (Utils.GetInteger(m_TrackingState, out InputTrackingState value, out string msg)) + if (CommonHelper.GetInteger(m_TrackingState, out InputTrackingState value, out string msg)) { m_Text.text += value; } @@ -106,7 +102,7 @@ namespace VIVE.OpenXR.Samples.OpenXRInput m_Text.text += "\n"; m_Text.text += "position ("; { - if (Utils.GetVector3(m_Position, out Vector3 value, out string msg)) + if (CommonHelper.GetVector3(m_Position, out Vector3 value, out string msg)) { m_Text.text += value.x.ToString() + ", " + value.y.ToString() + ", " + value.z.ToString(); } @@ -118,7 +114,7 @@ namespace VIVE.OpenXR.Samples.OpenXRInput m_Text.text += ")\n"; m_Text.text += "rotation ("; { - if (Utils.GetQuaternion(m_Rotation, out Quaternion value, out string msg)) + if (CommonHelper.GetQuaternion(m_Rotation, out Quaternion value, out string msg)) { m_Text.text += value.x.ToString() + ", " + value.y.ToString() + ", " + value.z.ToString() + ", " + value.w.ToString(); } @@ -130,7 +126,7 @@ namespace VIVE.OpenXR.Samples.OpenXRInput m_Text.text += ")"; m_Text.text += "\nmenu: "; { - if (Utils.GetButton(m_Menu, out bool value, out string msg)) + if (CommonHelper.GetButton(m_Menu, out bool value, out string msg)) { m_Text.text += value; } @@ -141,7 +137,7 @@ namespace VIVE.OpenXR.Samples.OpenXRInput } m_Text.text += "\ngrip: "; { - if (Utils.GetButton(m_GripPress, out bool value, out string msg)) + if (CommonHelper.GetButton(m_GripPress, out bool value, out string msg)) { m_Text.text += value; } @@ -152,11 +148,11 @@ namespace VIVE.OpenXR.Samples.OpenXRInput } m_Text.text += "\ntrigger press: "; { - if (Utils.GetButton(m_TriggerPress, out bool value, out string msg)) + if (CommonHelper.GetButton(m_TriggerPress, out bool value, out string msg)) { m_Text.text += value; - if (Utils.PerformHaptic(m_TriggerPress, out msg)) + if (CommonHelper.PerformHaptic(m_TriggerPress, out msg)) { m_Text.text += ", Vibrate"; } @@ -172,18 +168,7 @@ namespace VIVE.OpenXR.Samples.OpenXRInput } m_Text.text += "\ntrackpad press: "; { - if (Utils.GetButton(m_TrackpadPress, out bool value, out string msg)) - { - m_Text.text += value; - } - else - { - m_Text.text += msg; - } - } - m_Text.text += "\ntrackpad touch: "; - { - if (Utils.GetButton(m_TrackpadTouch, out bool value, out string msg)) + if (CommonHelper.GetButton(m_TrackpadPress, out bool value, out string msg)) { m_Text.text += value; } diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Scripts/VIVE/UserPresence.cs b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Scripts/VIVE/UserPresence.cs new file mode 100644 index 0000000..5a6a329 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Scripts/VIVE/UserPresence.cs @@ -0,0 +1,56 @@ +// Copyright HTC Corporation All Rights Reserved. + +using UnityEngine; +using UnityEngine.UI; +using UnityEngine.XR.OpenXR; + +/*#if ENABLE_INPUT_SYSTEM +using UnityEngine.InputSystem; +#endif*/ +using VIVE.OpenXR.FrameSynchronization; + +namespace VIVE.OpenXR.Samples.OpenXRInput +{ + [RequireComponent(typeof(Text))] + public class UserPresence : MonoBehaviour + { + private Text m_Text = null; + + private void Awake() + { + m_Text = GetComponent(); + } + private void OnEnable() + { + GetFrameSynchronizationMode(); + } + private void Update() + { + if (m_Text == null) { return; } + + m_Text.text = "User is " + (IsUserPresent() ? "Present" : "Away") + ", " + m_FrameSynchronizationMode; + //Debug.LogFormat("VIVE.OpenXR.Samples.OpenXRInput.UserPresence Update() {0}", m_Text.text); + } + + public bool IsUserPresent() + { +/*#if UNITY_ANDROID && ENABLE_INPUT_SYSTEM + if (ProximitySensor.current != null) + { + if (!ProximitySensor.current.IsActuated()) + InputSystem.EnableDevice(ProximitySensor.current); + + return ProximitySensor.current.distance.ReadValue() < 1; // near p-sensor < 1cm + } +#endif*/ + return XR_EXT_user_presence.Interop.IsUserPresent(); + } + + private string m_FrameSynchronizationMode = "No FS"; + private void GetFrameSynchronizationMode() + { + ViveFrameSynchronization feature = OpenXRSettings.Instance.GetFeature(); + m_FrameSynchronizationMode = feature ? feature.GetSynchronizationMode().ToString() : "No FS"; + } + } +} \ No newline at end of file diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Scripts/VIVE/UserPresence.cs.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Scripts/VIVE/UserPresence.cs.meta new file mode 100644 index 0000000..ed9350a --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Scripts/VIVE/UserPresence.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 06fce22bc702c664fb91ec6da2adb7a6 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Scripts/VIVE/Utils.cs b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Scripts/VIVE/Utils.cs index 752cee7..fa26824 100644 --- a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Scripts/VIVE/Utils.cs +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Scripts/VIVE/Utils.cs @@ -10,6 +10,7 @@ using UnityEngine.InputSystem; namespace VIVE.OpenXR.Samples.OpenXRInput { + [Obsolete("This class is deprecated. Please use VIVE.OpenXR.Samples.CommonHelper instead.")] public static class Utils { public enum DeviceTypes : UInt32 @@ -219,7 +220,6 @@ namespace VIVE.OpenXR.Samples.OpenXRInput if (actionReference.action.activeControl.valueType == typeof(Quaternion)) value = actionReference.action.ReadValue(); - Vector3 direction = value * Vector3.forward; return true; } diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Textures.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Textures.meta index 1fc6694..3c8d207 100644 --- a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Textures.meta +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Textures.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: c8e962475ab40f34aad32fd01175ff0c +guid: 1d1b5a4bac3a8e8459f99444077e1e38 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Textures/VIVE.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Textures/VIVE.meta new file mode 100644 index 0000000..1e88355 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Textures/VIVE.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8bb06b1513db42946b675ba7e0fd1f45 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Textures/VIVE/UltimateTracker.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Textures/VIVE/UltimateTracker.meta new file mode 100644 index 0000000..2184c1d --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Textures/VIVE/UltimateTracker.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1ee97f6fa62581344be043a71dbb083f +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Textures/VIVE/UltimateTracker/Vive_Ultimate_Tracker_BaseMap.png b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Textures/VIVE/UltimateTracker/Vive_Ultimate_Tracker_BaseMap.png new file mode 100644 index 0000000..4dc375c --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Textures/VIVE/UltimateTracker/Vive_Ultimate_Tracker_BaseMap.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c50e2a35df256b60b148da396ca9b032963cfc8590d88a11c1be23f0ce149f21 +size 426675 diff --git a/com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Arts/VRMfile/VRM1/Female1/Female1.Textures/_15.png.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Textures/VIVE/UltimateTracker/Vive_Ultimate_Tracker_BaseMap.png.meta similarity index 98% rename from com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Arts/VRMfile/VRM1/Female1/Female1.Textures/_15.png.meta rename to com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Textures/VIVE/UltimateTracker/Vive_Ultimate_Tracker_BaseMap.png.meta index 05ec062..655e796 100644 --- a/com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Arts/VRMfile/VRM1/Female1/Female1.Textures/_15.png.meta +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Textures/VIVE/UltimateTracker/Vive_Ultimate_Tracker_BaseMap.png.meta @@ -1,12 +1,12 @@ fileFormatVersion: 2 -guid: 6260676f62ad32845bd83a0adbf6fd05 +guid: 690c418cfde810e448d3fdc5756be4e1 TextureImporter: internalIDToNameTable: [] externalObjects: {} serializedVersion: 12 mipmaps: mipMapMode: 0 - enableMipMap: 0 + enableMipMap: 1 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Textures/VIVE/UltimateTracker/Vive_Ultimate_Tracker_NormalMap.png b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Textures/VIVE/UltimateTracker/Vive_Ultimate_Tracker_NormalMap.png new file mode 100644 index 0000000..43e9da6 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Textures/VIVE/UltimateTracker/Vive_Ultimate_Tracker_NormalMap.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:776e77185ea8c4ae80f8b1e58ca9fdef5b7cc1a28256f3e2dd34d676dc3e0238 +size 1132202 diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Textures/VIVE/UltimateTracker/Vive_Ultimate_Tracker_NormalMap.png.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Textures/VIVE/UltimateTracker/Vive_Ultimate_Tracker_NormalMap.png.meta new file mode 100644 index 0000000..fac4876 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Textures/VIVE/UltimateTracker/Vive_Ultimate_Tracker_NormalMap.png.meta @@ -0,0 +1,135 @@ +fileFormatVersion: 2 +guid: cd516ae3f4d095d478df46d9a9e9c22e +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + 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 + ignoreMasterTextureLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Textures/VIVE/UltimateTracker/Vive_Ultimate_Tracker_OcclusionMap.png b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Textures/VIVE/UltimateTracker/Vive_Ultimate_Tracker_OcclusionMap.png new file mode 100644 index 0000000..54526a8 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Textures/VIVE/UltimateTracker/Vive_Ultimate_Tracker_OcclusionMap.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3286bc7d324c4c641e322d5030b6a65379a88cbb20b7537f7b2de07c47c863b4 +size 1018102 diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Textures/VIVE/UltimateTracker/Vive_Ultimate_Tracker_OcclusionMap.png.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Textures/VIVE/UltimateTracker/Vive_Ultimate_Tracker_OcclusionMap.png.meta new file mode 100644 index 0000000..2aab9bb --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Textures/VIVE/UltimateTracker/Vive_Ultimate_Tracker_OcclusionMap.png.meta @@ -0,0 +1,135 @@ +fileFormatVersion: 2 +guid: f31b44eca29026147b23252265a9b1e0 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + 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 + ignoreMasterTextureLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Textures/VIVE/UltimateTracker/Vive_Ultimate_Tracker_SpecularMap.png b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Textures/VIVE/UltimateTracker/Vive_Ultimate_Tracker_SpecularMap.png new file mode 100644 index 0000000..1f9eab7 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Textures/VIVE/UltimateTracker/Vive_Ultimate_Tracker_SpecularMap.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:68df6d7b66d1832c5c4a91a4eb8e7e451637a85d420f5dae3010dfb22154f7bc +size 14921 diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Textures/VIVE/UltimateTracker/Vive_Ultimate_Tracker_SpecularMap.png.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Textures/VIVE/UltimateTracker/Vive_Ultimate_Tracker_SpecularMap.png.meta new file mode 100644 index 0000000..6dd9aba --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Textures/VIVE/UltimateTracker/Vive_Ultimate_Tracker_SpecularMap.png.meta @@ -0,0 +1,135 @@ +fileFormatVersion: 2 +guid: bb13cb3ee9ec8c442a11650dd48df614 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + 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 + ignoreMasterTextureLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Textures/test.png b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Textures/test.png deleted file mode 100644 index cd89871..0000000 --- a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Textures/test.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:cfd6b089af07161821b7cad24dda9824aeb52b910a47929cf55437b027694c46 -size 22658 diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Textures/text.png b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Textures/text.png deleted file mode 100644 index 25e619b..0000000 --- a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Input/Textures/text.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9a94debb0447c29746c352591788bbebee9bbf4830ebf465faa654718be8d0c7 -size 1574 diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Passthrough/Scenes/Passthrough_Configuration.unity b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Passthrough/Scenes/Passthrough_Configuration.unity new file mode 100644 index 0000000..179f468 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Passthrough/Scenes/Passthrough_Configuration.unity @@ -0,0 +1,24569 @@ +%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: 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: 1 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 12 + m_Resolution: 2 + m_BakeResolution: 40 + m_AtlasSize: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + m_ReflectionCompression: 2 + m_MixedBakeMode: 2 + m_BakeBackend: 1 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 512 + m_PVRBounces: 2 + m_PVREnvironmentSampleCount: 256 + m_PVREnvironmentReferencePointCount: 2048 + m_PVRFilteringMode: 1 + m_PVRDenoiserTypeDirect: 1 + m_PVRDenoiserTypeIndirect: 1 + m_PVRDenoiserTypeAO: 1 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVREnvironmentMIS: 1 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightProbeSampleCountMultiplier: 4 + m_LightingDataAsset: {fileID: 0} + m_LightingSettings: {fileID: 0} +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + maxJobWorkers: 0 + preserveTilesOutsideBounds: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &1902239 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1902240} + - component: {fileID: 1902242} + - component: {fileID: 1902241} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1902240 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1902239} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 220459911} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 88.5, y: 0} + m_SizeDelta: {x: 2000, y: 455.7} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1902241 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1902239} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 300 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 3 + m_MaxSize: 300 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: "Secondary2DAxis\xDF\xE5" +--- !u!222 &1902242 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1902239} + m_CullTransparentMesh: 0 +--- !u!1 &38132865 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 38132866} + - component: {fileID: 38132869} + - component: {fileID: 38132868} + - component: {fileID: 38132867} + m_Layer: 5 + m_Name: Scrollbar + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &38132866 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 38132865} + m_LocalRotation: {x: 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: 554957221} + m_Father: {fileID: 1336730670} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 0} + m_Pivot: {x: 1, y: 1} +--- !u!114 &38132867 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 38132865} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2a4db7a114972834c8e4117be1d82ba3, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1436821652} + m_HandleRect: {fileID: 1436821651} + m_Direction: 2 + m_Value: 0 + m_Size: 0.2 + m_NumberOfSteps: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &38132868 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 38132865} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &38132869 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 38132865} + m_CullTransparentMesh: 1 +--- !u!1 &44231288 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 44231289} + - component: {fileID: 44231291} + - component: {fileID: 44231290} + m_Layer: 5 + m_Name: Item Label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &44231289 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 44231288} + m_LocalRotation: {x: 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: 1692129267} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 5, y: -0.5} + m_SizeDelta: {x: -30, y: -3} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &44231290 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 44231288} + 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: Option A + 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: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 45 + m_fontSizeBase: 45 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + 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 &44231291 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 44231288} + m_CullTransparentMesh: 1 +--- !u!1 &46927544 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 46927545} + - component: {fileID: 46927546} + m_Layer: 5 + m_Name: ySlider + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &46927545 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 46927544} + m_LocalRotation: {x: 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: 2117219783} + - {fileID: 252507724} + - {fileID: 1790101007} + m_Father: {fileID: 608486286} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 160, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &46927546 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 46927544} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 67db9e8f0e2ae9c40bc1e2b64352a6b4, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1432655219} + m_FillRect: {fileID: 1844051288} + m_HandleRect: {fileID: 1432655218} + m_Direction: 0 + m_MinValue: -1 + m_MaxValue: 1 + m_WholeNumbers: 0 + m_Value: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &49290004 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 49290005} + - component: {fileID: 49290008} + - component: {fileID: 49290007} + - component: {fileID: 49290006} + m_Layer: 0 + m_Name: Pointer + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &49290005 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 49290004} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.015, y: 0.015, z: 0.015} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1651088749} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 1, y: 1} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!223 &49290006 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 49290004} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_VertexColorAlwaysGammaSpace: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!114 &49290007 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 49290004} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0.9529412, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &49290008 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 49290004} + m_CullTransparentMesh: 1 +--- !u!1 &50973809 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 50973810} + - component: {fileID: 50973812} + - component: {fileID: 50973811} + m_Layer: 5 + m_Name: Fill + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &50973810 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 50973809} + m_LocalRotation: {x: -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: 1984975653} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 10, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &50973811 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 50973809} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &50973812 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 50973809} + m_CullTransparentMesh: 0 +--- !u!1 &62732309 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 62732310} + - component: {fileID: 62732313} + - component: {fileID: 62732312} + - component: {fileID: 62732311} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &62732310 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 62732309} + m_LocalRotation: {x: 0.5, y: -0.5, z: 0.5, w: 0.5} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.001, y: 0.001, z: 0.001} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1564977098} + m_Father: {fileID: 718740958} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 90, y: -90, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0.005} + m_SizeDelta: {x: 662, y: 423} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &62732311 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 62732309} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &62732312 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 62732309} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 1 +--- !u!223 &62732313 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 62732309} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 1629889848} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_VertexColorAlwaysGammaSpace: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!1 &63968657 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 63968658} + - component: {fileID: 63968659} + m_Layer: 5 + m_Name: SystemTouch + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &63968658 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 63968657} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1401916747} + - {fileID: 541814046} + m_Father: {fileID: 1878284124} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: -27} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &63968659 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 63968657} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1879fed0e0310334fb310daf7dcc4784, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionReference: {fileID: -6339248268752122826, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + enabledColor: {r: 0, g: 1, b: 0, a: 1} + disabledColor: {r: 1, g: 0, b: 0, a: 1} + image: {fileID: 541814047} +--- !u!1 &82661891 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 82661892} + - component: {fileID: 82661893} + m_Layer: 0 + m_Name: Device + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &82661892 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 82661891} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -0.4, y: -0.2, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1782194957} + - {fileID: 318452722} + - {fileID: 545955974} + - {fileID: 754386353} + m_Father: {fileID: 1312014152} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &82661893 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 82661891} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c2fadf230d1919748a9aa21d40f74619, type: 3} + m_Name: + m_EditorClassIdentifier: + m_TrackingType: 0 + m_UpdateType: 0 + m_IgnoreTrackingState: 0 + m_PositionInput: + m_UseReference: 1 + m_Action: + m_Name: Position Input + m_Type: 0 + m_ExpectedControlType: + m_Id: e3292456-9857-4d13-8e6f-2201600a4848 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 2caadaed-6cae-4206-871a-7d122f9443b7 + m_Path: {Tracker0}/devicePosition + m_Interactions: + m_Processors: + m_Groups: + m_Action: Position Input + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: -435773219102049562, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_RotationInput: + m_UseReference: 1 + m_Action: + m_Name: Rotation Input + m_Type: 0 + m_ExpectedControlType: + m_Id: 8236fd6b-5775-45b4-b768-d7978c047049 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 7406a299-3f75-40d3-9f0a-bc8cfd60eecb + m_Path: {Tracker0}/deviceRotation + m_Interactions: + m_Processors: + m_Groups: + m_Action: Rotation Input + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: 8869308336890601743, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_TrackingStateInput: + m_UseReference: 0 + m_Action: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: d0d29ba3-3c8a-4d89-b865-760b2388d95d + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 0} + m_PositionAction: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_RotationAction: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 +--- !u!1 &98167216 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 98167217} + - component: {fileID: 98167219} + - component: {fileID: 98167218} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &98167217 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 98167216} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 824263256} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 85, y: 118} + m_SizeDelta: {x: 2000, y: 455.7} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &98167218 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 98167216} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 150 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 300 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'System + + Press' +--- !u!222 &98167219 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 98167216} + m_CullTransparentMesh: 0 +--- !u!1 &104999842 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 104999843} + m_Layer: 0 + m_Name: Tracker1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &104999843 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 104999842} + m_LocalRotation: {x: 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: 544671023} + m_Father: {fileID: 1975217965} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &106022802 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 106022803} + - component: {fileID: 106022805} + - component: {fileID: 106022804} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &106022803 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 106022802} + m_LocalRotation: {x: -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: 1370593072} + m_Father: {fileID: 1329881146} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &106022804 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 106022802} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &106022805 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 106022802} + m_CullTransparentMesh: 0 +--- !u!1 &118240068 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 118240069} + - component: {fileID: 118240071} + - component: {fileID: 118240070} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &118240069 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 118240068} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1186977325} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 45, y: 120} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &118240070 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 118240068} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &118240071 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 118240068} + m_CullTransparentMesh: 0 +--- !u!1 &138746961 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 138746962} + - component: {fileID: 138746964} + - component: {fileID: 138746963} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &138746962 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 138746961} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.099999994, y: 0.099999994, z: 0.099999994} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1242110079} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -0, y: 30} + m_SizeDelta: {x: 2000, y: 455.7} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &138746963 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 138746961} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 300 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 300 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Grip +--- !u!222 &138746964 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 138746961} + m_CullTransparentMesh: 0 +--- !u!1 &150895780 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 150895781} + - component: {fileID: 150895782} + m_Layer: 0 + m_Name: RightHand + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &150895781 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 150895780} + m_LocalRotation: {x: 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: 928529783} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &150895782 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 150895780} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c232203bf3067944e84cf70b2629999a, type: 3} + m_Name: + m_EditorClassIdentifier: + isLeft: 0 + allowUntrackedPose: 0 + pointColor: {r: 0, g: 1, b: 0, a: 1} + linkColor: {r: 1, g: 1, b: 1, a: 1} + material: {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} +--- !u!1 &171772661 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 171772662} + - component: {fileID: 171772664} + - component: {fileID: 171772663} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &171772662 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 171772661} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 746518473} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 45, y: 120} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &171772663 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 171772661} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &171772664 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 171772661} + m_CullTransparentMesh: 0 +--- !u!1 &174176082 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 174176083} + - component: {fileID: 174176085} + - component: {fileID: 174176084} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &174176083 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 174176082} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1886266785} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 85, y: 118} + m_SizeDelta: {x: 2000, y: 455.7} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &174176084 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 174176082} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 150 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 300 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'System + + Touch' +--- !u!222 &174176085 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 174176082} + m_CullTransparentMesh: 0 +--- !u!1 &175061773 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 175061774} + - component: {fileID: 175061777} + - component: {fileID: 175061776} + - component: {fileID: 175061775} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &175061774 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 175061773} + m_LocalRotation: {x: 0.5, y: -0.5, z: 0.5, w: 0.5} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.001, y: 0.001, z: 0.001} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 264007867} + m_Father: {fileID: 516537534} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 90, y: -90, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0.005} + m_SizeDelta: {x: 662, y: 423} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &175061775 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 175061773} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &175061776 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 175061773} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 1 +--- !u!223 &175061777 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 175061773} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 1629889848} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_VertexColorAlwaysGammaSpace: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!1 &205941010 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 205941011} + - component: {fileID: 205941013} + - component: {fileID: 205941012} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &205941011 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 205941010} + m_LocalRotation: {x: -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: 1530353198} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.25} + m_AnchorMax: {x: 1, y: 0.75} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &205941012 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 205941010} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &205941013 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 205941010} + m_CullTransparentMesh: 0 +--- !u!1 &213573946 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 213573947} + - component: {fileID: 213573950} + - component: {fileID: 213573949} + - component: {fileID: 213573948} + m_Layer: 5 + m_Name: Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &213573947 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 213573946} + m_LocalRotation: {x: 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: 729513844} + m_Father: {fileID: 1713029778} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -787, y: -6} + m_SizeDelta: {x: 350, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &213573948 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 213573946} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 213573949} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1569182637} + m_TargetAssemblyTypeName: Passthrough_manager, VIVE.OpenXR.Samples + m_MethodName: Set_Quality1 + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!114 &213573949 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 213573946} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &213573950 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 213573946} + m_CullTransparentMesh: 1 +--- !u!1 &213922204 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 213922205} + - component: {fileID: 213922206} + m_Layer: 5 + m_Name: Secondary2DAxisTouch + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &213922205 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 213922204} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1811416233} + - {fileID: 1822725354} + m_Father: {fileID: 1835351604} + m_RootOrder: 9 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 85, y: 37} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &213922206 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 213922204} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1879fed0e0310334fb310daf7dcc4784, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionReference: {fileID: -1925900790126126306, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + enabledColor: {r: 0, g: 1, b: 0, a: 1} + disabledColor: {r: 1, g: 0, b: 0, a: 1} + image: {fileID: 1822725355} +--- !u!1 &218070317 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 218070318} + - component: {fileID: 218070321} + - component: {fileID: 218070320} + - component: {fileID: 218070319} + m_Layer: 5 + m_Name: DeviceInfo + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &218070318 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 218070317} + m_LocalRotation: {x: -0, y: -0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.05, y: 0.05, z: 0.05} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 352368721} + m_RootOrder: 14 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 260, y: 0} + m_SizeDelta: {x: 10000, y: 1400} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &218070319 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 218070317} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 750fa446a80705b45a3059b8f87e989a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Property: + m_UseReference: 0 + m_Action: + m_Name: Property + m_Type: 0 + m_ExpectedControlType: + m_Id: c3a7da97-f536-4cb8-9a96-bd7d23c21c61 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: bd1e38d1-6c12-40ae-a427-075c4f5eb830 + m_Path: {leftHand}/isTracked + m_Interactions: + m_Processors: + m_Groups: + m_Action: Property + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: 0} + m_RootObject: {fileID: 0} + m_TargetText: {fileID: 218070320} +--- !u!114 &218070320 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 218070317} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 300 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 300 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Name + + Manufacturer + + Characteristics + + Serial Number' +--- !u!222 &218070321 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 218070317} + m_CullTransparentMesh: 0 +--- !u!1 &220459910 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 220459911} + - component: {fileID: 220459912} + m_Layer: 5 + m_Name: Secondary2DAxis + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &220459911 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 220459910} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1902240} + - {fileID: 1983919238} + - {fileID: 1960966491} + m_Father: {fileID: 352368721} + m_RootOrder: 7 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 100, y: 70} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &220459912 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 220459910} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 68ffad370daf7de4097bcd7cb411838c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionReference: {fileID: 4150019624855575819, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + xAxisSlider: {fileID: 1983919239} + yAxisSlider: {fileID: 1960966492} +--- !u!1001 &220509938 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 548482650} + m_Modifications: + - target: {fileID: -8679921383154817045, guid: cfddbefb4c44f1d4495157c73de18d2d, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: cfddbefb4c44f1d4495157c73de18d2d, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: cfddbefb4c44f1d4495157c73de18d2d, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: cfddbefb4c44f1d4495157c73de18d2d, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: cfddbefb4c44f1d4495157c73de18d2d, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: cfddbefb4c44f1d4495157c73de18d2d, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: cfddbefb4c44f1d4495157c73de18d2d, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: cfddbefb4c44f1d4495157c73de18d2d, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: cfddbefb4c44f1d4495157c73de18d2d, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: cfddbefb4c44f1d4495157c73de18d2d, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: cfddbefb4c44f1d4495157c73de18d2d, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 919132149155446097, guid: cfddbefb4c44f1d4495157c73de18d2d, type: 3} + propertyPath: m_Name + value: pum_bracelets_L + objectReference: {fileID: 0} + - target: {fileID: 6324110693043245988, guid: cfddbefb4c44f1d4495157c73de18d2d, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: cfddbefb4c44f1d4495157c73de18d2d, type: 3} +--- !u!4 &220509939 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: cfddbefb4c44f1d4495157c73de18d2d, type: 3} + m_PrefabInstance: {fileID: 220509938} + m_PrefabAsset: {fileID: 0} +--- !u!1 &220509940 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 919132149155446097, guid: cfddbefb4c44f1d4495157c73de18d2d, type: 3} + m_PrefabInstance: {fileID: 220509938} + m_PrefabAsset: {fileID: 0} +--- !u!1 &243798674 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 243798675} + - component: {fileID: 243798677} + - component: {fileID: 243798676} + m_Layer: 5 + m_Name: clicked + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &243798675 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 243798674} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.25, y: 0.25, z: 0.025} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1840602435} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 33, y: 64} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &243798676 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 243798674} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &243798677 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 243798674} + m_CullTransparentMesh: 0 +--- !u!1 &247264887 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 247264888} + - component: {fileID: 247264890} + - component: {fileID: 247264889} + 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 &247264888 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 247264887} + m_LocalRotation: {x: 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: 939391403} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &247264889 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 247264887} + 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: Enable + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 50 + m_fontSizeBase: 50 + 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 &247264890 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 247264887} + m_CullTransparentMesh: 1 +--- !u!1 &248948687 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 248948688} + - component: {fileID: 248948690} + - component: {fileID: 248948689} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &248948688 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 248948687} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 474528018} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 45, y: 120} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &248948689 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 248948687} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &248948690 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 248948687} + m_CullTransparentMesh: 0 +--- !u!1 &252507723 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 252507724} + m_Layer: 5 + m_Name: Fill Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &252507724 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 252507723} + m_LocalRotation: {x: -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: 1844051288} + m_Father: {fileID: 46927545} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.25} + m_AnchorMax: {x: 1, y: 0.75} + m_AnchoredPosition: {x: -5, y: 0} + m_SizeDelta: {x: -20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &254036944 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 254036945} + - component: {fileID: 254036947} + - component: {fileID: 254036946} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &254036945 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 254036944} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1288798519} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 45, y: 120} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &254036946 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 254036944} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &254036947 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 254036944} + m_CullTransparentMesh: 0 +--- !u!1 &254531549 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 254531553} + - component: {fileID: 254531552} + - component: {fileID: 254531551} + - component: {fileID: 254531550} + m_Layer: 0 + m_Name: Cube + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!65 &254531550 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 254531549} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &254531551 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 254531549} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &254531552 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 254531549} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &254531553 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 254531549} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 6.042} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &261576607 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 544671023} + m_Modifications: + - target: {fileID: 3201029004716767610, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_Mesh + value: + objectReference: {fileID: 3613567641014311022, guid: 815c9e4802ddea645a37bd99f011c9b4, type: 3} + - target: {fileID: 4346727372943234170, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.y + value: 0.2 + objectReference: {fileID: 0} + - target: {fileID: 4346727372952809589, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.y + value: 0.2 + objectReference: {fileID: 0} + - target: {fileID: 4346727373925079742, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.y + value: 0.3 + objectReference: {fileID: 0} + - target: {fileID: 4346727373925079742, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823546882, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_Name + value: PoseMarker + objectReference: {fileID: 0} + - target: {fileID: 4346727374823546882, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_RootOrder + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.z + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6251018130860582685, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_Mesh + value: + objectReference: {fileID: 3613567641014311022, guid: 815c9e4802ddea645a37bd99f011c9b4, type: 3} + - target: {fileID: 8595007410106638205, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_Mesh + value: + objectReference: {fileID: 3613567641014311022, guid: 815c9e4802ddea645a37bd99f011c9b4, type: 3} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} +--- !u!4 &261576608 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + m_PrefabInstance: {fileID: 261576607} + m_PrefabAsset: {fileID: 0} +--- !u!1 &264007866 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 264007867} + - component: {fileID: 264007869} + - component: {fileID: 264007868} + m_Layer: 5 + m_Name: PoseName + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &264007867 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 264007866} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.05, y: 0.05, z: 0.05} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 175061774} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -25, y: -30} + m_SizeDelta: {x: 1000, y: 1000} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &264007868 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 264007866} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 300 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 3 + m_MaxSize: 300 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Tracker 4 +--- !u!222 &264007869 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 264007866} + m_CullTransparentMesh: 0 +--- !u!1 &267640273 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 267640274} + - component: {fileID: 267640276} + - component: {fileID: 267640275} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &267640274 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 267640273} + m_LocalRotation: {x: -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: 498762529} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.25} + m_AnchorMax: {x: 1, y: 0.75} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &267640275 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 267640273} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &267640276 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 267640273} + m_CullTransparentMesh: 0 +--- !u!1 &273403739 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 273403740} + - component: {fileID: 273403741} + m_Layer: 0 + m_Name: Grip + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &273403740 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 273403739} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0.2, y: 0.2, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 352368721} + - {fileID: 1576046943} + m_Father: {fileID: 1846808538} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &273403741 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 273403739} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c2fadf230d1919748a9aa21d40f74619, type: 3} + m_Name: + m_EditorClassIdentifier: + m_TrackingType: 0 + m_UpdateType: 0 + m_IgnoreTrackingState: 0 + m_PositionInput: + m_UseReference: 1 + m_Action: + m_Name: Position + m_Type: 0 + m_ExpectedControlType: + m_Id: bef25a9a-d15a-4fa5-94cd-aa39c268aab0 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 8fd137d8-b4b0-4707-9446-a93d224fb36e + m_Path: {LeftHand}/devicePosition + m_Interactions: + m_Processors: + m_Groups: + m_Action: Position + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: 9019252231132517785, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_RotationInput: + m_UseReference: 1 + m_Action: + m_Name: Rotation + m_Type: 0 + m_ExpectedControlType: + m_Id: 9d5ab463-e64e-4a8c-9eae-766779e9f6ee + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 19c04ff2-41ea-4a30-9dba-5ebb06049b7c + m_Path: {LeftHand}/deviceRotation + m_Interactions: + m_Processors: + m_Groups: + m_Action: Rotation + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: -22420666449113973, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_TrackingStateInput: + m_UseReference: 0 + m_Action: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: 3cbc61ac-4ca4-4948-906d-42ea9c19755b + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 0} + m_PositionAction: + m_Name: Position + m_Type: 0 + m_ExpectedControlType: + m_Id: bef25a9a-d15a-4fa5-94cd-aa39c268aab0 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 8fd137d8-b4b0-4707-9446-a93d224fb36e + m_Path: {LeftHand}/devicePosition + m_Interactions: + m_Processors: + m_Groups: + m_Action: Position + m_Flags: 0 + m_Flags: 0 + m_RotationAction: + m_Name: Rotation + m_Type: 0 + m_ExpectedControlType: + m_Id: 9d5ab463-e64e-4a8c-9eae-766779e9f6ee + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 19c04ff2-41ea-4a30-9dba-5ebb06049b7c + m_Path: {LeftHand}/deviceRotation + m_Interactions: + m_Processors: + m_Groups: + m_Action: Rotation + m_Flags: 0 + m_Flags: 0 +--- !u!1 &275980199 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 275980200} + - component: {fileID: 275980202} + - component: {fileID: 275980201} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &275980200 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 275980199} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 474528018} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 85, y: 118} + m_SizeDelta: {x: 2000, y: 455.7} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &275980201 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 275980199} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 150 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 300 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'System + + Touch' +--- !u!222 &275980202 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 275980199} + m_CullTransparentMesh: 0 +--- !u!1 &278428323 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 278428324} + - component: {fileID: 278428327} + - component: {fileID: 278428326} + - component: {fileID: 278428325} + m_Layer: 5 + m_Name: Button (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &278428324 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 278428323} + m_LocalRotation: {x: 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: 1882729586} + m_Father: {fileID: 1713029778} + 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: -348.6, y: -6} + m_SizeDelta: {x: 350, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &278428325 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 278428323} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 278428326} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1569182637} + m_TargetAssemblyTypeName: Passthrough_manager, VIVE.OpenXR.Samples + m_MethodName: Set_Quality2 + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!114 &278428326 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 278428323} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &278428327 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 278428323} + m_CullTransparentMesh: 1 +--- !u!1001 &281558763 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 516537534} + m_Modifications: + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_RootOrder + value: 3 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalPosition.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 919132149155446097, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_Name + value: Vive_UltimateTracker + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 407031a402781d048945abb5156739ad, type: 3} +--- !u!4 &281558764 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + m_PrefabInstance: {fileID: 281558763} + m_PrefabAsset: {fileID: 0} +--- !u!1 &290467452 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 290467453} + - component: {fileID: 290467455} + - component: {fileID: 290467454} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &290467453 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 290467452} + m_LocalRotation: {x: -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: 1645869179} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &290467454 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 290467452} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &290467455 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 290467452} + m_CullTransparentMesh: 0 +--- !u!1 &294651048 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 294651049} + - component: {fileID: 294651051} + - component: {fileID: 294651050} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &294651049 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 294651048} + m_LocalRotation: {x: -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: 737361071} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.25} + m_AnchorMax: {x: 1, y: 0.75} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &294651050 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 294651048} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &294651051 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 294651048} + m_CullTransparentMesh: 0 +--- !u!1 &295224020 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 295224021} + - component: {fileID: 295224023} + - component: {fileID: 295224022} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &295224021 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 295224020} + m_LocalRotation: {x: -0, y: -0, z: 0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.25, y: 0.25, z: 0.25} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1283505035} + m_Father: {fileID: 1370593072} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &295224022 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 295224020} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &295224023 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 295224020} + m_CullTransparentMesh: 0 +--- !u!1 &314705563 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 314705564} + - component: {fileID: 314705567} + - component: {fileID: 314705566} + - component: {fileID: 314705565} + m_Layer: 5 + m_Name: ActionMapInfo + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &314705564 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 314705563} + m_LocalRotation: {x: 0.5, y: -0.5, z: 0.5, w: 0.5} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.001, y: 0.001, z: 0.001} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1288798519} + - {fileID: 1834382181} + m_Father: {fileID: 1066776025} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 90, y: -90, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0.005} + m_SizeDelta: {x: 1226, y: 740} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &314705565 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 314705563} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &314705566 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 314705563} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 1 +--- !u!223 &314705567 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 314705563} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 1629889848} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_VertexColorAlwaysGammaSpace: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!1 &318452721 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 318452722} + - component: {fileID: 318452725} + - component: {fileID: 318452724} + - component: {fileID: 318452723} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &318452722 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 318452721} + m_LocalRotation: {x: 0.5, y: -0.5, z: 0.5, w: 0.5} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.001, y: 0.001, z: 0.001} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 502632933} + m_Father: {fileID: 82661892} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 90, y: -90, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0.005} + m_SizeDelta: {x: 662, y: 423} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &318452723 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 318452721} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &318452724 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 318452721} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 1 +--- !u!223 &318452725 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 318452721} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 1629889848} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_VertexColorAlwaysGammaSpace: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!1 &319640834 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 319640835} + - component: {fileID: 319640837} + - component: {fileID: 319640836} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &319640835 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 319640834} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 783183228} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 85, y: 118} + m_SizeDelta: {x: 2000, y: 455.7} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &319640836 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 319640834} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 150 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 300 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Secondary + + Press' +--- !u!222 &319640837 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 319640834} + m_CullTransparentMesh: 0 +--- !u!1 &330544253 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 330544254} + - component: {fileID: 330544256} + - component: {fileID: 330544255} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &330544254 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 330544253} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1819166721} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 45, y: 120} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &330544255 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 330544253} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &330544256 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 330544253} + m_CullTransparentMesh: 0 +--- !u!1 &335046313 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 335046314} + - component: {fileID: 335046315} + m_Layer: 5 + m_Name: Pressed + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &335046314 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 335046313} + m_LocalRotation: {x: -0, y: -0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1038966289} + m_Father: {fileID: 1459580598} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &335046315 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 335046313} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1879fed0e0310334fb310daf7dcc4784, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionReference: {fileID: -8514278639596572500, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + enabledColor: {r: 0, g: 1, b: 0, a: 1} + disabledColor: {r: 1, g: 0, b: 0, a: 1} + image: {fileID: 1038966290} +--- !u!1 &348978882 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 348978883} + - component: {fileID: 348978885} + - component: {fileID: 348978884} + m_Layer: 5 + m_Name: clicked + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &348978883 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 348978882} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.25, y: 0.25, z: 0.025} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 378491587} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 33, y: 64} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &348978884 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 348978882} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &348978885 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 348978882} + m_CullTransparentMesh: 0 +--- !u!1 &352368720 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 352368721} + - component: {fileID: 352368724} + - component: {fileID: 352368723} + - component: {fileID: 352368722} + m_Layer: 5 + m_Name: ActionMapInfo + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &352368721 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 352368720} + m_LocalRotation: {x: 0.5, y: -0.5, z: 0.5, w: 0.5} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.001, y: 0.001, z: 0.001} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1409538204} + - {fileID: 2072469934} + - {fileID: 1186977325} + - {fileID: 984098751} + - {fileID: 1544299174} + - {fileID: 1494668261} + - {fileID: 590910127} + - {fileID: 220459911} + - {fileID: 378491587} + - {fileID: 1890512586} + - {fileID: 1430661127} + - {fileID: 783183228} + - {fileID: 1819166721} + - {fileID: 1683143632} + - {fileID: 218070318} + - {fileID: 1916663681} + m_Father: {fileID: 273403740} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 90, y: -90, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0.005} + m_SizeDelta: {x: 1226, y: 740} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &352368722 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 352368720} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &352368723 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 352368720} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 1 +--- !u!223 &352368724 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 352368720} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 1629889848} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_VertexColorAlwaysGammaSpace: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!1001 &362029220 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 1310851285} + m_Modifications: + - target: {fileID: -8679921383154817045, guid: 096eb7589fe3b534d92a74ccad9bad32, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 096eb7589fe3b534d92a74ccad9bad32, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 096eb7589fe3b534d92a74ccad9bad32, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 096eb7589fe3b534d92a74ccad9bad32, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 096eb7589fe3b534d92a74ccad9bad32, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 096eb7589fe3b534d92a74ccad9bad32, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 096eb7589fe3b534d92a74ccad9bad32, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 096eb7589fe3b534d92a74ccad9bad32, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 096eb7589fe3b534d92a74ccad9bad32, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 096eb7589fe3b534d92a74ccad9bad32, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 096eb7589fe3b534d92a74ccad9bad32, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 919132149155446097, guid: 096eb7589fe3b534d92a74ccad9bad32, type: 3} + propertyPath: m_Name + value: pum_bracelets_R + objectReference: {fileID: 0} + - target: {fileID: 6324110693043245988, guid: 096eb7589fe3b534d92a74ccad9bad32, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 096eb7589fe3b534d92a74ccad9bad32, type: 3} +--- !u!4 &362029221 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: 096eb7589fe3b534d92a74ccad9bad32, type: 3} + m_PrefabInstance: {fileID: 362029220} + m_PrefabAsset: {fileID: 0} +--- !u!1 &362029222 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 919132149155446097, guid: 096eb7589fe3b534d92a74ccad9bad32, type: 3} + m_PrefabInstance: {fileID: 362029220} + m_PrefabAsset: {fileID: 0} +--- !u!1 &378491586 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 378491587} + - component: {fileID: 378491588} + m_Layer: 5 + m_Name: Secondary2DAxisClick + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &378491587 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 378491586} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1845834111} + - {fileID: 348978883} + m_Father: {fileID: 352368721} + m_RootOrder: 8 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 100, y: 70} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &378491588 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 378491586} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1879fed0e0310334fb310daf7dcc4784, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionReference: {fileID: -7428500947354388255, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + enabledColor: {r: 0, g: 1, b: 0, a: 1} + disabledColor: {r: 1, g: 0, b: 0, a: 1} + image: {fileID: 348978884} +--- !u!1 &412980583 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 412980584} + - component: {fileID: 412980586} + - component: {fileID: 412980585} + m_Layer: 5 + m_Name: Fill + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &412980584 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 412980583} + m_LocalRotation: {x: -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: 1170760117} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 10, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &412980585 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 412980583} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &412980586 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 412980583} + m_CullTransparentMesh: 0 +--- !u!1 &419373414 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 419373415} + - component: {fileID: 419373418} + - component: {fileID: 419373417} + - component: {fileID: 419373416} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &419373415 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 419373414} + m_LocalRotation: {x: 0.5, y: -0.5, z: 0.5, w: 0.5} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.001, y: 0.001, z: 0.001} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 450208148} + m_Father: {fileID: 911429097} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 90, y: -90, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0.005} + m_SizeDelta: {x: 662, y: 423} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &419373416 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 419373414} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &419373417 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 419373414} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 1 +--- !u!223 &419373418 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 419373414} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 1629889848} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_VertexColorAlwaysGammaSpace: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!1001 &426436707 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 718740958} + m_Modifications: + - target: {fileID: 3201029004716767610, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_Mesh + value: + objectReference: {fileID: 3613567641014311022, guid: 815c9e4802ddea645a37bd99f011c9b4, type: 3} + - target: {fileID: 4346727372943234170, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.y + value: 0.1 + objectReference: {fileID: 0} + - target: {fileID: 4346727372952809589, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.y + value: 0.1 + objectReference: {fileID: 0} + - target: {fileID: 4346727373925079742, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.y + value: 0.1 + objectReference: {fileID: 0} + - target: {fileID: 4346727373925079742, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823546882, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_Name + value: PoseMarker + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.x + value: 0.4 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.y + value: 0.4 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.z + value: 0.4 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6251018130860582685, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_Mesh + value: + objectReference: {fileID: 3613567641014311022, guid: 815c9e4802ddea645a37bd99f011c9b4, type: 3} + - target: {fileID: 8595007410106638205, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_Mesh + value: + objectReference: {fileID: 3613567641014311022, guid: 815c9e4802ddea645a37bd99f011c9b4, type: 3} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} +--- !u!4 &426436708 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + m_PrefabInstance: {fileID: 426436707} + m_PrefabAsset: {fileID: 0} +--- !u!1 &433624927 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 433624928} + - component: {fileID: 433624929} + m_Layer: 5 + m_Name: Trigger + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &433624928 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 433624927} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.6, y: 0.6, z: 0.6} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1417655270} + - {fileID: 838888951} + m_Father: {fileID: 1835351604} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 180, y: 0} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &433624929 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 433624927} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 47dc0f697f292694f85e0ea7d8eab70f, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionReference: {fileID: -5684558904543120851, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + slider: {fileID: 1417655271} +--- !u!1 &445483090 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 445483091} + - component: {fileID: 445483093} + - component: {fileID: 445483092} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &445483091 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 445483090} + m_LocalRotation: {x: -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: 1417655270} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.25} + m_AnchorMax: {x: 1, y: 0.75} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &445483092 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 445483090} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &445483093 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 445483090} + m_CullTransparentMesh: 0 +--- !u!1 &450208147 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 450208148} + - component: {fileID: 450208150} + - component: {fileID: 450208149} + m_Layer: 5 + m_Name: PoseName + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &450208148 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 450208147} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.05, y: 0.05, z: 0.05} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 419373415} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -25, y: -30} + m_SizeDelta: {x: 1000, y: 1000} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &450208149 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 450208147} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 300 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 3 + m_MaxSize: 300 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Left Grip +--- !u!222 &450208150 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 450208147} + m_CullTransparentMesh: 0 +--- !u!1 &455892298 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 455892299} + - component: {fileID: 455892302} + - component: {fileID: 455892301} + - component: {fileID: 455892300} + m_Layer: 5 + m_Name: TMPDropdown + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &455892299 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 455892298} + m_LocalRotation: {x: 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: 2093332001} + - {fileID: 1970462318} + - {fileID: 1336730670} + m_Father: {fileID: 1713029778} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -183, y: 330} + m_SizeDelta: {x: 1500, y: 150} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &455892300 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 455892298} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7b743370ac3e4ec2a1668f5455a8ef8a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 455892301} + m_Template: {fileID: 1336730670} + m_CaptionText: {fileID: 2093332002} + m_CaptionImage: {fileID: 0} + m_Placeholder: {fileID: 0} + m_ItemText: {fileID: 44231290} + m_ItemImage: {fileID: 0} + m_Value: 0 + m_Options: + m_Options: + - m_Text: Option A + m_Image: {fileID: 0} + - m_Text: Option B + m_Image: {fileID: 0} + - m_Text: Option C + m_Image: {fileID: 0} + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_AlphaFadeSpeed: 0.15 +--- !u!114 &455892301 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 455892298} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &455892302 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 455892298} + m_CullTransparentMesh: 1 +--- !u!1 &457375637 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 457375638} + - component: {fileID: 457375640} + - component: {fileID: 457375639} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &457375638 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 457375637} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1324573719} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 45, y: 120} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &457375639 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 457375637} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &457375640 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 457375637} + m_CullTransparentMesh: 0 +--- !u!1 &457711610 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 457711611} + - component: {fileID: 457711612} + m_Layer: 0 + m_Name: LeftHand + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &457711611 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 457711610} + m_LocalRotation: {x: 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: 928529783} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &457711612 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 457711610} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c232203bf3067944e84cf70b2629999a, type: 3} + m_Name: + m_EditorClassIdentifier: + isLeft: 1 + allowUntrackedPose: 0 + pointColor: {r: 0, g: 1, b: 0, a: 1} + linkColor: {r: 1, g: 1, b: 1, a: 1} + material: {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} +--- !u!1 &460669359 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 460669360} + - component: {fileID: 460669362} + - component: {fileID: 460669361} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &460669360 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 460669359} + m_LocalRotation: {x: -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: 1983919238} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.25} + m_AnchorMax: {x: 1, y: 0.75} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &460669361 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 460669359} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &460669362 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 460669359} + m_CullTransparentMesh: 0 +--- !u!1 &467465429 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 467465430} + - component: {fileID: 467465431} + m_Layer: 0 + m_Name: Grip + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &467465430 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 467465429} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.2, y: 0.2, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1835351604} + - {fileID: 1880084408} + m_Father: {fileID: 848665809} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &467465431 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 467465429} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c2fadf230d1919748a9aa21d40f74619, type: 3} + m_Name: + m_EditorClassIdentifier: + m_TrackingType: 0 + m_UpdateType: 0 + m_IgnoreTrackingState: 0 + m_PositionInput: + m_UseReference: 1 + m_Action: + m_Name: Position + m_Type: 0 + m_ExpectedControlType: + m_Id: bef25a9a-d15a-4fa5-94cd-aa39c268aab0 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 8fd137d8-b4b0-4707-9446-a93d224fb36e + m_Path: {RightHand}/devicePosition + m_Interactions: + m_Processors: + m_Groups: + m_Action: Position + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: 7443918988805782556, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_RotationInput: + m_UseReference: 1 + m_Action: + m_Name: Rotation + m_Type: 0 + m_ExpectedControlType: + m_Id: 9d5ab463-e64e-4a8c-9eae-766779e9f6ee + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 19c04ff2-41ea-4a30-9dba-5ebb06049b7c + m_Path: {RightHand}/deviceRotation + m_Interactions: + m_Processors: + m_Groups: + m_Action: Rotation + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: 7542131730279260107, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_TrackingStateInput: + m_UseReference: 0 + m_Action: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: 37f81abd-5c70-47ce-8415-a91fcf8fff6d + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 0} + m_PositionAction: + m_Name: Position + m_Type: 0 + m_ExpectedControlType: + m_Id: bef25a9a-d15a-4fa5-94cd-aa39c268aab0 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 8fd137d8-b4b0-4707-9446-a93d224fb36e + m_Path: {RightHand}/devicePosition + m_Interactions: + m_Processors: + m_Groups: + m_Action: Position + m_Flags: 0 + m_Flags: 0 + m_RotationAction: + m_Name: Rotation + m_Type: 0 + m_ExpectedControlType: + m_Id: 9d5ab463-e64e-4a8c-9eae-766779e9f6ee + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 19c04ff2-41ea-4a30-9dba-5ebb06049b7c + m_Path: {RightHand}/deviceRotation + m_Interactions: + m_Processors: + m_Groups: + m_Action: Rotation + m_Flags: 0 + m_Flags: 0 +--- !u!1 &474528017 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 474528018} + - component: {fileID: 474528019} + m_Layer: 5 + m_Name: SystemTouch + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &474528018 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 474528017} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 275980200} + - {fileID: 248948688} + m_Father: {fileID: 608532620} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: -27} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &474528019 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 474528017} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1879fed0e0310334fb310daf7dcc4784, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionReference: {fileID: -505372919438690821, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + enabledColor: {r: 0, g: 1, b: 0, a: 1} + disabledColor: {r: 1, g: 0, b: 0, a: 1} + image: {fileID: 248948689} +--- !u!1 &487787137 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 487787138} + - component: {fileID: 487787140} + - component: {fileID: 487787139} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &487787138 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 487787137} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 783183228} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 45, y: 120} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &487787139 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 487787137} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &487787140 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 487787137} + m_CullTransparentMesh: 0 +--- !u!1 &498413355 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 498413356} + - component: {fileID: 498413358} + - component: {fileID: 498413357} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &498413356 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 498413355} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 746518473} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 85, y: 118} + m_SizeDelta: {x: 2000, y: 455.7} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &498413357 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 498413355} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 150 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 300 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'System + + Touch' +--- !u!222 &498413358 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 498413355} + m_CullTransparentMesh: 0 +--- !u!1 &498762528 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 498762529} + - component: {fileID: 498762530} + m_Layer: 5 + m_Name: xSlider + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &498762529 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 498762528} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 267640274} + - {fileID: 1158917969} + - {fileID: 1220238348} + m_Father: {fileID: 608486286} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + 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: 160, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &498762530 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 498762528} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 67db9e8f0e2ae9c40bc1e2b64352a6b4, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 552421621} + m_FillRect: {fileID: 667475168} + m_HandleRect: {fileID: 552421620} + m_Direction: 0 + m_MinValue: -1 + m_MaxValue: 1 + m_WholeNumbers: 0 + m_Value: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &502632932 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 502632933} + - component: {fileID: 502632935} + - component: {fileID: 502632934} + m_Layer: 5 + m_Name: PoseName + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &502632933 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 502632932} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.05, y: 0.05, z: 0.05} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 318452722} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -25, y: -30} + m_SizeDelta: {x: 1000, y: 1000} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &502632934 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 502632932} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 300 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 3 + m_MaxSize: 300 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Tracker 0 +--- !u!222 &502632935 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 502632932} + m_CullTransparentMesh: 0 +--- !u!1 &504995712 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 504995713} + - component: {fileID: 504995714} + m_Layer: 0 + m_Name: Device + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &504995713 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 504995712} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: -0.2, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 781289366} + - {fileID: 1698140774} + - {fileID: 1551499643} + - {fileID: 810448528} + m_Father: {fileID: 1311375921} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &504995714 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 504995712} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c2fadf230d1919748a9aa21d40f74619, type: 3} + m_Name: + m_EditorClassIdentifier: + m_TrackingType: 0 + m_UpdateType: 0 + m_IgnoreTrackingState: 0 + m_PositionInput: + m_UseReference: 1 + m_Action: + m_Name: Position Input + m_Type: 0 + m_ExpectedControlType: + m_Id: e3292456-9857-4d13-8e6f-2201600a4848 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 2caadaed-6cae-4206-871a-7d122f9443b7 + m_Path: {Tracker3}/devicePosition + m_Interactions: + m_Processors: + m_Groups: + m_Action: Position Input + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: -8287749963549794835, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_RotationInput: + m_UseReference: 1 + m_Action: + m_Name: Rotation Input + m_Type: 0 + m_ExpectedControlType: + m_Id: 8236fd6b-5775-45b4-b768-d7978c047049 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 7406a299-3f75-40d3-9f0a-bc8cfd60eecb + m_Path: {Tracker3}/deviceRotation + m_Interactions: + m_Processors: + m_Groups: + m_Action: Rotation Input + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: 3242339893588026215, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_TrackingStateInput: + m_UseReference: 0 + m_Action: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: c59c3ddf-79fa-46ba-bc7b-4fca801a86f3 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 0} + m_PositionAction: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_RotationAction: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 +--- !u!1 &514113436 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 514113437} + - component: {fileID: 514113439} + - component: {fileID: 514113438} + 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 &514113437 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 514113436} + m_LocalRotation: {x: 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: 1179399500} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &514113438 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 514113436} + 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: Quality:0.75 + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 50 + m_fontSizeBase: 50 + 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 &514113439 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 514113436} + m_CullTransparentMesh: 1 +--- !u!1 &516537533 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 516537534} + - component: {fileID: 516537535} + m_Layer: 0 + m_Name: Device + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &516537534 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 516537533} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0.4, y: -0.2, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1878284124} + - {fileID: 175061774} + - {fileID: 2094137686} + - {fileID: 281558764} + m_Father: {fileID: 1369334815} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &516537535 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 516537533} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c2fadf230d1919748a9aa21d40f74619, type: 3} + m_Name: + m_EditorClassIdentifier: + m_TrackingType: 0 + m_UpdateType: 0 + m_IgnoreTrackingState: 0 + m_PositionInput: + m_UseReference: 1 + m_Action: + m_Name: Position Input + m_Type: 0 + m_ExpectedControlType: + m_Id: e3292456-9857-4d13-8e6f-2201600a4848 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 2caadaed-6cae-4206-871a-7d122f9443b7 + m_Path: {Tracker4}/devicePosition + m_Interactions: + m_Processors: + m_Groups: + m_Action: Position Input + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: 1760866676959018908, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_RotationInput: + m_UseReference: 1 + m_Action: + m_Name: Rotation Input + m_Type: 0 + m_ExpectedControlType: + m_Id: 8236fd6b-5775-45b4-b768-d7978c047049 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 7406a299-3f75-40d3-9f0a-bc8cfd60eecb + m_Path: {Tracker4}/deviceRotation + m_Interactions: + m_Processors: + m_Groups: + m_Action: Rotation Input + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: -2199575455336610917, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_TrackingStateInput: + m_UseReference: 0 + m_Action: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: e05d69a5-70de-4a66-a07c-6a07f9689289 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 0} + m_PositionAction: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_RotationAction: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 +--- !u!1 &537086791 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 537086792} + m_Layer: 5 + m_Name: Handle Slide Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &537086792 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 537086791} + m_LocalRotation: {x: -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: 1046251403} + m_Father: {fileID: 737361071} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &541814045 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 541814046} + - component: {fileID: 541814048} + - component: {fileID: 541814047} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &541814046 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 541814045} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 63968658} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 45, y: 120} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &541814047 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 541814045} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &541814048 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 541814045} + m_CullTransparentMesh: 0 +--- !u!1 &544671022 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 544671023} + - component: {fileID: 544671024} + m_Layer: 0 + m_Name: Device + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &544671023 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 544671022} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -0.2, y: -0.2, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1867447513} + - {fileID: 608532620} + - {fileID: 1549915741} + - {fileID: 261576608} + m_Father: {fileID: 104999843} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &544671024 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 544671022} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c2fadf230d1919748a9aa21d40f74619, type: 3} + m_Name: + m_EditorClassIdentifier: + m_TrackingType: 0 + m_UpdateType: 0 + m_IgnoreTrackingState: 0 + m_PositionInput: + m_UseReference: 1 + m_Action: + m_Name: Position Input + m_Type: 0 + m_ExpectedControlType: + m_Id: e3292456-9857-4d13-8e6f-2201600a4848 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 2caadaed-6cae-4206-871a-7d122f9443b7 + m_Path: {Tracker1}/devicePosition + m_Interactions: + m_Processors: + m_Groups: + m_Action: Position Input + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: -5962029828217132283, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_RotationInput: + m_UseReference: 1 + m_Action: + m_Name: Rotation Input + m_Type: 0 + m_ExpectedControlType: + m_Id: 8236fd6b-5775-45b4-b768-d7978c047049 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 7406a299-3f75-40d3-9f0a-bc8cfd60eecb + m_Path: {Tracker1}/deviceRotation + m_Interactions: + m_Processors: + m_Groups: + m_Action: Rotation Input + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: -4462678269106331646, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_TrackingStateInput: + m_UseReference: 0 + m_Action: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: 2248451e-f24c-4213-a7bc-5dfaacee9ccb + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 0} + m_PositionAction: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_RotationAction: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 +--- !u!1 &545633996 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 545633997} + m_Layer: 5 + m_Name: Fill Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &545633997 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 545633996} + m_LocalRotation: {x: -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: 1532342230} + m_Father: {fileID: 1983919238} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.25} + m_AnchorMax: {x: 1, y: 0.75} + m_AnchoredPosition: {x: -5, y: 0} + m_SizeDelta: {x: -20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1001 &545955973 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 82661892} + m_Modifications: + - target: {fileID: 3201029004716767610, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_Mesh + value: + objectReference: {fileID: 3613567641014311022, guid: 815c9e4802ddea645a37bd99f011c9b4, type: 3} + - target: {fileID: 4346727372943234170, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.y + value: 0.2 + objectReference: {fileID: 0} + - target: {fileID: 4346727372952809589, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.y + value: 0.2 + objectReference: {fileID: 0} + - target: {fileID: 4346727373925079742, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.y + value: 0.3 + objectReference: {fileID: 0} + - target: {fileID: 4346727373925079742, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823546882, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_Name + value: PoseMarker + objectReference: {fileID: 0} + - target: {fileID: 4346727374823546882, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_RootOrder + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.z + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6251018130860582685, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_Mesh + value: + objectReference: {fileID: 3613567641014311022, guid: 815c9e4802ddea645a37bd99f011c9b4, type: 3} + - target: {fileID: 8595007410106638205, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_Mesh + value: + objectReference: {fileID: 3613567641014311022, guid: 815c9e4802ddea645a37bd99f011c9b4, type: 3} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} +--- !u!4 &545955974 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + m_PrefabInstance: {fileID: 545955973} + m_PrefabAsset: {fileID: 0} +--- !u!1 &548482649 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 548482650} + - component: {fileID: 548482652} + - component: {fileID: 548482651} + m_Layer: 0 + m_Name: TrackerL + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &548482650 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 548482649} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.2, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 220509939} + m_Father: {fileID: 1932223632} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &548482651 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 548482649} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 873a88a3d45610d4489a58d37c448415, type: 3} + m_Name: + m_EditorClassIdentifier: + IsLeft: 1 + m_IsActive: {fileID: -3939447612102036819, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_TrackingState: {fileID: 2573631886961530909, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_ObjectToHide: {fileID: 220509940} +--- !u!114 &548482652 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 548482649} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4c129ad20f238874c92d1c11fa0f80e8, type: 3} + m_Name: + m_EditorClassIdentifier: + IsLeft: 1 + m_DevicePose: {fileID: 8747399987281251770, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_PrimaryButton: {fileID: -6267646491421641194, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_Menu: {fileID: 1508652085242017756, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} +--- !u!1 &552421619 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 552421620} + - component: {fileID: 552421622} + - component: {fileID: 552421621} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &552421620 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 552421619} + m_LocalRotation: {x: -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: 1220238348} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &552421621 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 552421619} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &552421622 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 552421619} + m_CullTransparentMesh: 0 +--- !u!1 &553957356 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 553957357} + - component: {fileID: 553957358} + m_Layer: 5 + m_Name: AxisValue + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &553957357 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 553957356} + m_LocalRotation: {x: -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: 1303200713} + - {fileID: 1170760117} + - {fileID: 1329881146} + m_Father: {fileID: 1430661127} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 160, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &553957358 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 553957356} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 67db9e8f0e2ae9c40bc1e2b64352a6b4, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 106022804} + m_FillRect: {fileID: 412980584} + m_HandleRect: {fileID: 106022803} + m_Direction: 0 + m_MinValue: 0 + m_MaxValue: 1 + m_WholeNumbers: 0 + m_Value: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &554957220 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 554957221} + m_Layer: 5 + m_Name: Sliding Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &554957221 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 554957220} + m_LocalRotation: {x: 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: 1436821651} + m_Father: {fileID: 38132866} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -20, y: -20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &557108720 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 557108721} + - component: {fileID: 557108722} + m_Layer: 5 + m_Name: Pressed + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &557108721 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 557108720} + m_LocalRotation: {x: -0, y: -0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1916106688} + m_Father: {fileID: 1644059251} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + 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!114 &557108722 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 557108720} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1879fed0e0310334fb310daf7dcc4784, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionReference: {fileID: 6986180202050166755, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + enabledColor: {r: 0, g: 1, b: 0, a: 1} + disabledColor: {r: 1, g: 0, b: 0, a: 1} + image: {fileID: 1916106689} +--- !u!1 &563979740 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 563979741} + - component: {fileID: 563979743} + - component: {fileID: 563979742} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &563979741 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 563979740} + m_LocalRotation: {x: 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: 1713029778} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -56} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &563979742 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 563979740} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 100 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 120 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: +--- !u!222 &563979743 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 563979740} + m_CullTransparentMesh: 0 +--- !u!1 &565353134 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 565353135} + - component: {fileID: 565353137} + - component: {fileID: 565353136} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &565353135 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 565353134} + m_LocalRotation: {x: -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: 1987598256} + m_Father: {fileID: 1907322144} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &565353136 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 565353134} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &565353137 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 565353134} + m_CullTransparentMesh: 0 +--- !u!1 &571491012 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 571491013} + - component: {fileID: 571491015} + - component: {fileID: 571491014} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &571491013 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 571491012} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1186977325} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 85, y: 118} + m_SizeDelta: {x: 2000, y: 455.7} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &571491014 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 571491012} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 150 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 300 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Primary + + Touch' +--- !u!222 &571491015 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 571491012} + m_CullTransparentMesh: 0 +--- !u!1 &590910126 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 590910127} + - component: {fileID: 590910128} + m_Layer: 5 + m_Name: Primary2DAxisTouch + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &590910127 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 590910126} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1266240673} + - {fileID: 1013621685} + m_Father: {fileID: 352368721} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 100, y: -128} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &590910128 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 590910126} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1879fed0e0310334fb310daf7dcc4784, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionReference: {fileID: 4360133727445611998, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + enabledColor: {r: 0, g: 1, b: 0, a: 1} + disabledColor: {r: 1, g: 0, b: 0, a: 1} + image: {fileID: 1013621686} +--- !u!1 &605668736 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 605668737} + - component: {fileID: 605668739} + - component: {fileID: 605668738} + m_Layer: 0 + m_Name: LeftController + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &605668737 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 605668736} + m_LocalRotation: {x: 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: 1846808538} + m_Father: {fileID: 640969809} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &605668738 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 605668736} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 873a88a3d45610d4489a58d37c448415, type: 3} + m_Name: + m_EditorClassIdentifier: + IsLeft: 1 + m_IsActive: {fileID: 3005817691354473129, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_TrackingState: {fileID: 5178774767481721072, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_ObjectToHide: {fileID: 1846808537} +--- !u!114 &605668739 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 605668736} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a71a8cacc8de6e9449396d7cd616b05e, type: 3} + m_Name: + m_EditorClassIdentifier: + action: {fileID: 6986180202050166755, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + _amplitude: 1 + _duration: 0.1 +--- !u!1 &608486285 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 608486286} + - component: {fileID: 608486287} + m_Layer: 5 + m_Name: Primary2DAxis + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &608486286 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 608486285} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 2096466541} + - {fileID: 498762529} + - {fileID: 46927545} + m_Father: {fileID: 1835351604} + 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: 100, y: -70} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &608486287 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 608486285} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 68ffad370daf7de4097bcd7cb411838c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionReference: {fileID: 3396702884570900202, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + xAxisSlider: {fileID: 498762530} + yAxisSlider: {fileID: 46927546} +--- !u!1 &608532619 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 608532620} + - component: {fileID: 608532623} + - component: {fileID: 608532622} + - component: {fileID: 608532621} + m_Layer: 5 + m_Name: ActionMapInfo + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &608532620 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 608532619} + m_LocalRotation: {x: 0.5, y: -0.5, z: 0.5, w: 0.5} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.001, y: 0.001, z: 0.001} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 2099037705} + - {fileID: 474528018} + m_Father: {fileID: 544671023} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 90, y: -90, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0.005} + m_SizeDelta: {x: 1226, y: 740} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &608532621 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 608532619} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &608532622 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 608532619} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 1 +--- !u!223 &608532623 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 608532619} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 1629889848} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_VertexColorAlwaysGammaSpace: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!1 &617399326 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 617399327} + - component: {fileID: 617399329} + - component: {fileID: 617399328} + m_Layer: 5 + m_Name: Fill + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &617399327 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 617399326} + m_LocalRotation: {x: -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: 1261091473} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 10, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &617399328 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 617399326} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &617399329 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 617399326} + m_CullTransparentMesh: 0 +--- !u!1 &626047878 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 626047879} + - component: {fileID: 626047881} + - component: {fileID: 626047880} + m_Layer: 5 + m_Name: Fill + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &626047879 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 626047878} + m_LocalRotation: {x: -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: 1227224237} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 10, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &626047880 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 626047878} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &626047881 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 626047878} + m_CullTransparentMesh: 0 +--- !u!1 &633741710 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 633741711} + - component: {fileID: 633741712} + m_Layer: 5 + m_Name: ParkingTouch + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &633741711 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 633741710} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1092244489} + - {fileID: 2055707456} + m_Father: {fileID: 1835351604} + m_RootOrder: 13 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: -171} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &633741712 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 633741710} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1879fed0e0310334fb310daf7dcc4784, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionReference: {fileID: 1592923304057336957, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + enabledColor: {r: 0, g: 1, b: 0, a: 1} + disabledColor: {r: 1, g: 0, b: 0, a: 1} + image: {fileID: 2055707457} +--- !u!1 &640969804 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 640969809} + - component: {fileID: 640969808} + - component: {fileID: 640969807} + - component: {fileID: 640969806} + - component: {fileID: 640969805} + m_Layer: 0 + m_Name: PlayerRig + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &640969805 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 640969804} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1caf898641806b3448ff86ad2e1b0727, type: 3} + m_Name: + m_EditorClassIdentifier: + m_GazeRaycast: + Enabled: 1 + m_ControllerRaycast: + Enabled: 1 + m_HandRaycast: + Enabled: 1 +--- !u!114 &640969806 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 640969804} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b6292cddb0024284ea1f3c804ace5d87, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionAsset: {fileID: -944628639613478452, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} +--- !u!114 &640969807 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 640969804} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6a579b9c6142ede44a4a991db9f3f279, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionReference: + m_UseReference: 0 + m_Action: + m_Name: Action Reference + m_Type: 0 + m_ExpectedControlType: + m_Id: 89d6dca9-4d0a-456f-bf8f-da8775262884 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 66bc0fcc-9478-4663-915d-8eb928c886bc + m_Path: /pose/isTracked + m_Interactions: + m_Processors: + m_Groups: + m_Action: Action Reference + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: 0} + m_TargetGameobject: {fileID: 675835210} +--- !u!114 &640969808 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 640969804} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: abafcbe629b1aa54886e2789b79365f4, type: 3} + m_Name: + m_EditorClassIdentifier: + m_RecenteredImage: {fileID: 0} + m_RecenteredOffColor: {r: 0, g: 0, b: 0, a: 1} + m_RecenteredColor: {r: 1, g: 0, b: 0, a: 1} + m_RecenteredColorResetTime: 5 + m_CurrentTrackingOriginMode: 0 + m_CurrentTrackingOriginModeDisplay: {fileID: 0} + m_DesiredTrackingOriginMode: 1 + m_SupportedTrackingOriginModes: 0 +--- !u!4 &640969809 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 640969804} + m_LocalRotation: {x: 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: 675835212} + - {fileID: 877341548} + - {fileID: 605668737} + - {fileID: 1873450931} + - {fileID: 928529783} + - {fileID: 1932223632} + - {fileID: 1975217965} + m_Father: {fileID: 0} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &660298548 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 660298549} + m_Layer: 0 + m_Name: Tracker3 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &660298549 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 660298548} + m_LocalRotation: {x: 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: 1066776025} + m_Father: {fileID: 1975217965} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &667475167 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 667475168} + - component: {fileID: 667475170} + - component: {fileID: 667475169} + m_Layer: 5 + m_Name: Fill + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &667475168 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 667475167} + m_LocalRotation: {x: -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: 1158917969} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 10, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &667475169 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 667475167} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &667475170 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 667475167} + m_CullTransparentMesh: 0 +--- !u!1 &675835210 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 675835212} + - component: {fileID: 675835211} + m_Layer: 0 + m_Name: Gaze + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!114 &675835211 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 675835210} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c2fadf230d1919748a9aa21d40f74619, type: 3} + m_Name: + m_EditorClassIdentifier: + m_TrackingType: 0 + m_UpdateType: 0 + m_IgnoreTrackingState: 0 + m_PositionInput: + m_UseReference: 0 + m_Action: + m_Name: Position + m_Type: 0 + m_ExpectedControlType: + m_Id: 94cf6314-7797-4638-85c0-329ac13b85ee + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 860d4576-ba16-4d92-a540-11541e6219de + m_Path: /pose/position + m_Interactions: + m_Processors: + m_Groups: + m_Action: Position + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: 0} + m_RotationInput: + m_UseReference: 0 + m_Action: + m_Name: Rotation + m_Type: 0 + m_ExpectedControlType: + m_Id: efb1fd02-3cde-42d4-b9c6-4ee43580c4bd + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 21c9140f-23b6-40aa-b8fe-9d0a9ff24af2 + m_Path: /pose/rotation + m_Interactions: + m_Processors: + m_Groups: + m_Action: Rotation + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: 0} + m_TrackingStateInput: + m_UseReference: 0 + m_Action: + m_Name: Tracking State Input + m_Type: 0 + m_ExpectedControlType: + m_Id: 1d093732-0559-4e3a-b5dc-728a03b02524 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 0} + m_PositionAction: + m_Name: Position + m_Type: 0 + m_ExpectedControlType: + m_Id: 94cf6314-7797-4638-85c0-329ac13b85ee + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 860d4576-ba16-4d92-a540-11541e6219de + m_Path: /pose/position + m_Interactions: + m_Processors: + m_Groups: + m_Action: Position + m_Flags: 0 + m_Flags: 0 + m_RotationAction: + m_Name: Rotation + m_Type: 0 + m_ExpectedControlType: + m_Id: efb1fd02-3cde-42d4-b9c6-4ee43580c4bd + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 21c9140f-23b6-40aa-b8fe-9d0a9ff24af2 + m_Path: /pose/rotation + m_Interactions: + m_Processors: + m_Groups: + m_Action: Rotation + m_Flags: 0 + m_Flags: 0 +--- !u!4 &675835212 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 675835210} + m_LocalRotation: {x: -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: 1453289815} + m_Father: {fileID: 640969809} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &680467870 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 680467871} + - component: {fileID: 680467873} + - component: {fileID: 680467872} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &680467871 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 680467870} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 794027259} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 85, y: 118} + m_SizeDelta: {x: 2000, y: 455.7} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &680467872 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 680467870} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 150 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 300 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'System + + Press' +--- !u!222 &680467873 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 680467870} + m_CullTransparentMesh: 0 +--- !u!1 &697509234 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 697509235} + - component: {fileID: 697509237} + - component: {fileID: 697509236} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &697509235 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 697509234} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 794027259} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 45, y: 120} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &697509236 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 697509234} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &697509237 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 697509234} + m_CullTransparentMesh: 0 +--- !u!1 &718740957 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 718740958} + - component: {fileID: 718740959} + m_Layer: 0 + m_Name: RightGrip + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &718740958 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 718740957} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0.3, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 62732310} + - {fileID: 426436708} + m_Father: {fileID: 928529783} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &718740959 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 718740957} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c2fadf230d1919748a9aa21d40f74619, type: 3} + m_Name: + m_EditorClassIdentifier: + m_TrackingType: 0 + m_UpdateType: 0 + m_IgnoreTrackingState: 0 + m_PositionInput: + m_UseReference: 0 + m_Action: + m_Name: Position Input + m_Type: 0 + m_ExpectedControlType: + m_Id: e3292456-9857-4d13-8e6f-2201600a4848 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 2caadaed-6cae-4206-871a-7d122f9443b7 + m_Path: {RightHand}/devicePosition + m_Interactions: + m_Processors: + m_Groups: + m_Action: Position Input + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: -4381620761775135041, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_RotationInput: + m_UseReference: 0 + m_Action: + m_Name: Rotation Input + m_Type: 0 + m_ExpectedControlType: + m_Id: 8236fd6b-5775-45b4-b768-d7978c047049 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 7406a299-3f75-40d3-9f0a-bc8cfd60eecb + m_Path: {RightHand}/deviceRotation + m_Interactions: + m_Processors: + m_Groups: + m_Action: Rotation Input + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: 4333451311024400164, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_TrackingStateInput: + m_UseReference: 0 + m_Action: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: bdb8e6f8-5d57-4975-a4e6-ada26734fe93 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 0} + m_PositionAction: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_RotationAction: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 +--- !u!1 &725263208 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 725263209} + - component: {fileID: 725263210} + m_Layer: 5 + m_Name: AxisValue + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &725263209 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 725263208} + m_LocalRotation: {x: -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: 815180545} + - {fileID: 1279369332} + - {fileID: 1916608836} + m_Father: {fileID: 1409538204} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 160, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &725263210 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 725263208} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 67db9e8f0e2ae9c40bc1e2b64352a6b4, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1969305940} + m_FillRect: {fileID: 1627637949} + m_HandleRect: {fileID: 1969305939} + m_Direction: 0 + m_MinValue: 0 + m_MaxValue: 1 + m_WholeNumbers: 0 + m_Value: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &729513843 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 729513844} + - component: {fileID: 729513846} + - component: {fileID: 729513845} + 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 &729513844 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 729513843} + m_LocalRotation: {x: 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: 213573947} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &729513845 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 729513843} + 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: Quality:0.25 + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 50 + m_fontSizeBase: 50 + 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 &729513846 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 729513843} + m_CullTransparentMesh: 1 +--- !u!1 &737361070 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 737361071} + - component: {fileID: 737361072} + m_Layer: 5 + m_Name: ySlider + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &737361071 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 737361070} + m_LocalRotation: {x: 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: 294651049} + - {fileID: 1261091473} + - {fileID: 537086792} + m_Father: {fileID: 1544299174} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 160, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &737361072 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 737361070} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 67db9e8f0e2ae9c40bc1e2b64352a6b4, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1046251404} + m_FillRect: {fileID: 617399327} + m_HandleRect: {fileID: 1046251403} + m_Direction: 0 + m_MinValue: -1 + m_MaxValue: 1 + m_WholeNumbers: 0 + m_Value: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &737847506 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 737847507} + - component: {fileID: 737847509} + - component: {fileID: 737847508} + m_Layer: 5 + m_Name: PoseName + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &737847507 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 737847506} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.05, y: 0.05, z: 0.05} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1476172581} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -25, y: -30} + m_SizeDelta: {x: 1000, y: 1000} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &737847508 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 737847506} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 300 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 3 + m_MaxSize: 300 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Aim Pose +--- !u!222 &737847509 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 737847506} + m_CullTransparentMesh: 0 +--- !u!1 &741354468 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 741354469} + - component: {fileID: 741354470} + m_Layer: 5 + m_Name: Touched + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &741354469 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 741354468} + m_LocalRotation: {x: -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: 1644059251} + m_Father: {fileID: 1969305939} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + 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!114 &741354470 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 741354468} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1879fed0e0310334fb310daf7dcc4784, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionReference: {fileID: -382439264014408777, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + enabledColor: {r: 0, g: 1, b: 0, a: 1} + disabledColor: {r: 1, g: 0, b: 0, a: 1} + image: {fileID: 1644059252} +--- !u!1 &743632513 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 743632514} + - component: {fileID: 743632515} + m_Layer: 0 + m_Name: Aim + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &743632514 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 743632513} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.2, y: 0.1, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 2000586836} + - {fileID: 1488220534} + m_Father: {fileID: 848665809} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &743632515 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 743632513} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c2fadf230d1919748a9aa21d40f74619, type: 3} + m_Name: + m_EditorClassIdentifier: + m_TrackingType: 0 + m_UpdateType: 0 + m_IgnoreTrackingState: 0 + m_PositionInput: + m_UseReference: 1 + m_Action: + m_Name: Position + m_Type: 0 + m_ExpectedControlType: + m_Id: 463dd22d-e68b-4bf2-9c64-eadb9cb595c7 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 433893d2-3f66-4fa9-8aab-0462fb8ffac4 + m_Path: {RightHand}/pointerPosition + m_Interactions: + m_Processors: + m_Groups: + m_Action: Position + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: -5730229631511484051, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_RotationInput: + m_UseReference: 1 + m_Action: + m_Name: Rotation + m_Type: 0 + m_ExpectedControlType: + m_Id: 81472b8b-1d39-4f4f-8bd8-2a8ec5384508 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 818c41bc-76a6-47ef-bc96-b201ee90f995 + m_Path: {RightHand}/pointerRotation + m_Interactions: + m_Processors: + m_Groups: + m_Action: Rotation + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: -5246335118593862002, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_TrackingStateInput: + m_UseReference: 0 + m_Action: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: f45a226f-87aa-4e21-bc36-d861f3a09a82 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 0} + m_PositionAction: + m_Name: Position + m_Type: 0 + m_ExpectedControlType: + m_Id: 463dd22d-e68b-4bf2-9c64-eadb9cb595c7 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 433893d2-3f66-4fa9-8aab-0462fb8ffac4 + m_Path: {RightHand}/pointerPosition + m_Interactions: + m_Processors: + m_Groups: + m_Action: Position + m_Flags: 0 + m_Flags: 0 + m_RotationAction: + m_Name: Rotation + m_Type: 0 + m_ExpectedControlType: + m_Id: 81472b8b-1d39-4f4f-8bd8-2a8ec5384508 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 818c41bc-76a6-47ef-bc96-b201ee90f995 + m_Path: {RightHand}/pointerRotation + m_Interactions: + m_Processors: + m_Groups: + m_Action: Rotation + m_Flags: 0 + m_Flags: 0 +--- !u!1 &746518472 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 746518473} + - component: {fileID: 746518474} + m_Layer: 5 + m_Name: SystemTouch + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &746518473 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 746518472} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 498413356} + - {fileID: 171772662} + m_Father: {fileID: 1782194957} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: -27} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &746518474 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 746518472} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1879fed0e0310334fb310daf7dcc4784, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionReference: {fileID: -2197723308890051586, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + enabledColor: {r: 0, g: 1, b: 0, a: 1} + disabledColor: {r: 1, g: 0, b: 0, a: 1} + image: {fileID: 171772663} +--- !u!1 &752151177 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 752151178} + - component: {fileID: 752151179} + m_Layer: 5 + m_Name: Menu + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &752151178 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 752151177} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 2091039132} + - {fileID: 902340482} + m_Father: {fileID: 1835351604} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 45} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &752151179 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 752151177} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1879fed0e0310334fb310daf7dcc4784, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionReference: {fileID: -1529377759134130044, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + enabledColor: {r: 0, g: 1, b: 0, a: 1} + disabledColor: {r: 1, g: 0, b: 0, a: 1} + image: {fileID: 902340483} +--- !u!1001 &754386352 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 82661892} + m_Modifications: + - target: {fileID: 5818550160992551307, guid: 5dc3dee3f9e01d341b7db5195a78b34e, type: 3} + propertyPath: m_Name + value: Vive_UltimateTracker + objectReference: {fileID: 0} + - target: {fileID: 6626048664893692721, guid: 5dc3dee3f9e01d341b7db5195a78b34e, type: 3} + propertyPath: m_RootOrder + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 6626048664893692721, guid: 5dc3dee3f9e01d341b7db5195a78b34e, type: 3} + propertyPath: m_LocalPosition.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 6626048664893692721, guid: 5dc3dee3f9e01d341b7db5195a78b34e, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6626048664893692721, guid: 5dc3dee3f9e01d341b7db5195a78b34e, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6626048664893692721, guid: 5dc3dee3f9e01d341b7db5195a78b34e, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6626048664893692721, guid: 5dc3dee3f9e01d341b7db5195a78b34e, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6626048664893692721, guid: 5dc3dee3f9e01d341b7db5195a78b34e, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 6626048664893692721, guid: 5dc3dee3f9e01d341b7db5195a78b34e, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 6626048664893692721, guid: 5dc3dee3f9e01d341b7db5195a78b34e, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6626048664893692721, guid: 5dc3dee3f9e01d341b7db5195a78b34e, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6626048664893692721, guid: 5dc3dee3f9e01d341b7db5195a78b34e, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 5dc3dee3f9e01d341b7db5195a78b34e, type: 3} +--- !u!4 &754386353 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 6626048664893692721, guid: 5dc3dee3f9e01d341b7db5195a78b34e, type: 3} + m_PrefabInstance: {fileID: 754386352} + m_PrefabAsset: {fileID: 0} +--- !u!1 &758075004 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 758075005} + - component: {fileID: 758075007} + - component: {fileID: 758075006} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &758075005 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 758075004} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1682763413} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 88.5, y: 0} + m_SizeDelta: {x: 2000, y: 455.7} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &758075006 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 758075004} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 300 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 3 + m_MaxSize: 300 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: "Secondary2DAxis\xDF\xE5" +--- !u!222 &758075007 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 758075004} + m_CullTransparentMesh: 0 +--- !u!1 &771358011 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 771358012} + - component: {fileID: 771358015} + - component: {fileID: 771358014} + - component: {fileID: 771358013} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &771358012 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 771358011} + m_LocalRotation: {x: 0.5, y: -0.5, z: 0.5, w: 0.5} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.001, y: 0.001, z: 0.001} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1618620641} + m_Father: {fileID: 1066776025} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 90, y: -90, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0.005} + m_SizeDelta: {x: 662, y: 423} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &771358013 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 771358011} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &771358014 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 771358011} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 1 +--- !u!223 &771358015 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 771358011} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 1629889848} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_VertexColorAlwaysGammaSpace: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!1 &772676661 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 772676662} + - component: {fileID: 772676664} + - component: {fileID: 772676663} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &772676662 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 772676661} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 919387890} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 85, y: 118} + m_SizeDelta: {x: 2000, y: 455.7} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &772676663 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 772676661} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 150 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 300 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Primary + + Touch' +--- !u!222 &772676664 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 772676661} + m_CullTransparentMesh: 0 +--- !u!1 &774266807 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 774266808} + m_Layer: 5 + m_Name: Handle Slide Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &774266808 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 774266807} + m_LocalRotation: {x: -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: 1626656186} + m_Father: {fileID: 1801364123} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &781289365 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 781289366} + - component: {fileID: 781289369} + - component: {fileID: 781289368} + - component: {fileID: 781289367} + m_Layer: 5 + m_Name: ActionMapInfo + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &781289366 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 781289365} + m_LocalRotation: {x: 0.5, y: -0.5, z: 0.5, w: 0.5} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.001, y: 0.001, z: 0.001} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 794027259} + - {fileID: 1886266785} + m_Father: {fileID: 504995713} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 90, y: -90, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0.005} + m_SizeDelta: {x: 1226, y: 740} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &781289367 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 781289365} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &781289368 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 781289365} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 1 +--- !u!223 &781289369 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 781289365} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 1629889848} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_VertexColorAlwaysGammaSpace: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!1 &783183227 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 783183228} + - component: {fileID: 783183229} + m_Layer: 5 + m_Name: SecondaryButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &783183228 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 783183227} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 319640835} + - {fileID: 487787138} + m_Father: {fileID: 352368721} + m_RootOrder: 11 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: -95} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &783183229 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 783183227} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1879fed0e0310334fb310daf7dcc4784, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionReference: {fileID: -631344258065148156, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + enabledColor: {r: 0, g: 1, b: 0, a: 1} + disabledColor: {r: 1, g: 0, b: 0, a: 1} + image: {fileID: 487787139} +--- !u!1 &794027258 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 794027259} + - component: {fileID: 794027260} + m_Layer: 5 + m_Name: SystemClick + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &794027259 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 794027258} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 680467871} + - {fileID: 697509235} + m_Father: {fileID: 781289366} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 4} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &794027260 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 794027258} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1879fed0e0310334fb310daf7dcc4784, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionReference: {fileID: -5181303015651418284, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + enabledColor: {r: 0, g: 1, b: 0, a: 1} + disabledColor: {r: 1, g: 0, b: 0, a: 1} + image: {fileID: 697509236} +--- !u!1001 &810448527 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 504995713} + m_Modifications: + - target: {fileID: 5818550160992551307, guid: 5dc3dee3f9e01d341b7db5195a78b34e, type: 3} + propertyPath: m_Name + value: Vive_UltimateTracker + objectReference: {fileID: 0} + - target: {fileID: 6626048664893692721, guid: 5dc3dee3f9e01d341b7db5195a78b34e, type: 3} + propertyPath: m_RootOrder + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 6626048664893692721, guid: 5dc3dee3f9e01d341b7db5195a78b34e, type: 3} + propertyPath: m_LocalPosition.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 6626048664893692721, guid: 5dc3dee3f9e01d341b7db5195a78b34e, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6626048664893692721, guid: 5dc3dee3f9e01d341b7db5195a78b34e, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6626048664893692721, guid: 5dc3dee3f9e01d341b7db5195a78b34e, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6626048664893692721, guid: 5dc3dee3f9e01d341b7db5195a78b34e, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6626048664893692721, guid: 5dc3dee3f9e01d341b7db5195a78b34e, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 6626048664893692721, guid: 5dc3dee3f9e01d341b7db5195a78b34e, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 6626048664893692721, guid: 5dc3dee3f9e01d341b7db5195a78b34e, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6626048664893692721, guid: 5dc3dee3f9e01d341b7db5195a78b34e, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6626048664893692721, guid: 5dc3dee3f9e01d341b7db5195a78b34e, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 5dc3dee3f9e01d341b7db5195a78b34e, type: 3} +--- !u!4 &810448528 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 6626048664893692721, guid: 5dc3dee3f9e01d341b7db5195a78b34e, type: 3} + m_PrefabInstance: {fileID: 810448527} + m_PrefabAsset: {fileID: 0} +--- !u!1 &815180544 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 815180545} + - component: {fileID: 815180547} + - component: {fileID: 815180546} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &815180545 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 815180544} + m_LocalRotation: {x: -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: 725263209} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.25} + m_AnchorMax: {x: 1, y: 0.75} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &815180546 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 815180544} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &815180547 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 815180544} + m_CullTransparentMesh: 0 +--- !u!1 &815668966 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 815668967} + - component: {fileID: 815668969} + - component: {fileID: 815668968} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &815668967 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 815668966} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.099999994, y: 0.099999994, z: 0.099999994} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1430661127} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -0, y: 30} + m_SizeDelta: {x: 2000, y: 455.7} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &815668968 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 815668966} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 300 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 300 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Grip +--- !u!222 &815668969 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 815668966} + m_CullTransparentMesh: 0 +--- !u!1 &823519884 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 823519885} + - component: {fileID: 823519887} + - component: {fileID: 823519886} + m_Layer: 5 + m_Name: clicked + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &823519885 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 823519884} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.25, y: 0.25, z: 0.025} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1494668261} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 33, y: 59} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &823519886 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 823519884} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &823519887 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 823519884} + m_CullTransparentMesh: 0 +--- !u!1 &824263255 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 824263256} + - component: {fileID: 824263257} + m_Layer: 5 + m_Name: SystemClick + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &824263256 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 824263255} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 98167217} + - {fileID: 1733373198} + m_Father: {fileID: 1782194957} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 4} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &824263257 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 824263255} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1879fed0e0310334fb310daf7dcc4784, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionReference: {fileID: 1040293238378581181, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + enabledColor: {r: 0, g: 1, b: 0, a: 1} + disabledColor: {r: 1, g: 0, b: 0, a: 1} + image: {fileID: 1733373199} +--- !u!1 &826677949 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 826677950} + m_Layer: 5 + m_Name: Fill Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &826677950 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 826677949} + m_LocalRotation: {x: -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: 1994262122} + m_Father: {fileID: 1801364123} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.25} + m_AnchorMax: {x: 1, y: 0.75} + m_AnchoredPosition: {x: -5, y: 0} + m_SizeDelta: {x: -20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &838888950 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 838888951} + - component: {fileID: 838888953} + - component: {fileID: 838888952} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &838888951 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 838888950} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.099999994, y: 0.099999994, z: 0.099999994} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 433624928} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -0, y: 30} + m_SizeDelta: {x: 2000, y: 455.7} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &838888952 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 838888950} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 300 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 300 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Trigger +--- !u!222 &838888953 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 838888950} + m_CullTransparentMesh: 0 +--- !u!1 &839516576 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 839516577} + - component: {fileID: 839516578} + m_Layer: 5 + m_Name: Primary2DAxisClick + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &839516577 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 839516576} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1565217526} + - {fileID: 1848260724} + m_Father: {fileID: 1835351604} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 100, y: -70} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &839516578 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 839516576} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1879fed0e0310334fb310daf7dcc4784, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionReference: {fileID: -3683315366864426127, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + enabledColor: {r: 0, g: 1, b: 0, a: 1} + disabledColor: {r: 1, g: 0, b: 0, a: 1} + image: {fileID: 1848260725} +--- !u!1 &840930402 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 840930403} + m_Layer: 5 + m_Name: Handle Slide Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &840930403 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 840930402} + m_LocalRotation: {x: -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: 1905505353} + m_Father: {fileID: 1417655270} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &841739898 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 841739899} + m_Layer: 5 + m_Name: Handle Slide Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &841739899 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 841739898} + m_LocalRotation: {x: -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: 1414389964} + m_Father: {fileID: 1983919238} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &848665808 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 848665809} + m_Layer: 0 + m_Name: VisibleElements + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &848665809 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 848665808} + m_LocalRotation: {x: 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: 467465430} + - {fileID: 743632514} + m_Father: {fileID: 1873450931} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &853191320 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 853191321} + - component: {fileID: 853191324} + - component: {fileID: 853191323} + - component: {fileID: 853191322} + m_Layer: 5 + m_Name: Viewport + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &853191321 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 853191320} + m_LocalRotation: {x: 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: 1908342844} + m_Father: {fileID: 1336730670} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -18, y: 0} + m_Pivot: {x: 0, y: 1} +--- !u!114 &853191322 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 853191320} + 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: 10917, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &853191323 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 853191320} + m_CullTransparentMesh: 1 +--- !u!114 &853191324 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 853191320} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ShowMaskGraphic: 0 +--- !u!1 &865529399 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 865529400} + - component: {fileID: 865529402} + - component: {fileID: 865529401} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &865529400 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 865529399} + m_LocalRotation: {x: -0, y: -0, z: 0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.8, y: 0.8, z: 0.8} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1711581562} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &865529401 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 865529399} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &865529402 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 865529399} + m_CullTransparentMesh: 0 +--- !u!1 &877341547 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 877341548} + - component: {fileID: 877341549} + m_Layer: 0 + m_Name: Head + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &877341548 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 877341547} + m_LocalRotation: {x: 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: 1629889850} + m_Father: {fileID: 640969809} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &877341549 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 877341547} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c2fadf230d1919748a9aa21d40f74619, type: 3} + m_Name: + m_EditorClassIdentifier: + m_TrackingType: 0 + m_UpdateType: 0 + m_IgnoreTrackingState: 0 + m_PositionInput: + m_UseReference: 0 + m_Action: + m_Name: Position + m_Type: 0 + m_ExpectedControlType: + m_Id: 27e93ac4-1a8d-4587-aaae-4b08826ac82f + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 999d0eef-dcb5-4f3b-a509-22da9f558d12 + m_Path: /centerEyePosition + m_Interactions: + m_Processors: + m_Groups: + m_Action: Position + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: 0} + m_RotationInput: + m_UseReference: 0 + m_Action: + m_Name: Rotation + m_Type: 0 + m_ExpectedControlType: + m_Id: f061ad31-8802-4a77-8c67-cbdab9a06599 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: e3da2ddc-60a9-45c0-944f-71a4259458e6 + m_Path: /centerEyeRotation + m_Interactions: + m_Processors: + m_Groups: + m_Action: Rotation + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: 0} + m_TrackingStateInput: + m_UseReference: 0 + m_Action: + m_Name: Tracking State Input + m_Type: 0 + m_ExpectedControlType: + m_Id: 9f8029e3-7825-4747-99ce-b4ec73ff9c68 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 0} + m_PositionAction: + m_Name: Position + m_Type: 0 + m_ExpectedControlType: + m_Id: 27e93ac4-1a8d-4587-aaae-4b08826ac82f + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 999d0eef-dcb5-4f3b-a509-22da9f558d12 + m_Path: /centerEyePosition + m_Interactions: + m_Processors: + m_Groups: + m_Action: Position + m_Flags: 0 + m_Flags: 0 + m_RotationAction: + m_Name: Rotation + m_Type: 0 + m_ExpectedControlType: + m_Id: f061ad31-8802-4a77-8c67-cbdab9a06599 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: e3da2ddc-60a9-45c0-944f-71a4259458e6 + m_Path: /centerEyeRotation + m_Interactions: + m_Processors: + m_Groups: + m_Action: Rotation + m_Flags: 0 + m_Flags: 0 +--- !u!1 &893504746 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 893504747} + - component: {fileID: 893504750} + - component: {fileID: 893504749} + - component: {fileID: 893504748} + m_Layer: 5 + m_Name: Button (5) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &893504747 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 893504746} + m_LocalRotation: {x: 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: 1349875073} + m_Father: {fileID: 1713029778} + m_RootOrder: 8 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 157, y: -214} + m_SizeDelta: {x: 400, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &893504748 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 893504746} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 893504749} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1569182637} + m_TargetAssemblyTypeName: Passthrough_manager, VIVE.OpenXR.Samples + m_MethodName: DisablePassthrough + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!114 &893504749 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 893504746} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &893504750 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 893504746} + m_CullTransparentMesh: 1 +--- !u!1 &902340481 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 902340482} + - component: {fileID: 902340484} + - component: {fileID: 902340483} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &902340482 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 902340481} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 752151178} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 45, y: 120} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &902340483 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 902340481} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &902340484 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 902340481} + m_CullTransparentMesh: 0 +--- !u!1 &903630198 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 903630199} + - component: {fileID: 903630201} + - component: {fileID: 903630200} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &903630199 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 903630198} + m_LocalRotation: {x: -0, y: -0, z: 0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.8, y: 0.8, z: 0.8} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1283505035} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &903630200 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 903630198} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &903630201 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 903630198} + m_CullTransparentMesh: 0 +--- !u!1 &911429096 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 911429097} + - component: {fileID: 911429098} + m_Layer: 0 + m_Name: LeftGrip + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &911429097 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 911429096} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.3, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 419373415} + - {fileID: 1821506884} + m_Father: {fileID: 928529783} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &911429098 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 911429096} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c2fadf230d1919748a9aa21d40f74619, type: 3} + m_Name: + m_EditorClassIdentifier: + m_TrackingType: 0 + m_UpdateType: 0 + m_IgnoreTrackingState: 0 + m_PositionInput: + m_UseReference: 0 + m_Action: + m_Name: Position Input + m_Type: 0 + m_ExpectedControlType: + m_Id: e3292456-9857-4d13-8e6f-2201600a4848 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 2caadaed-6cae-4206-871a-7d122f9443b7 + m_Path: {LeftHand}/devicePosition + m_Interactions: + m_Processors: + m_Groups: + m_Action: Position Input + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: 7927903095090760841, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_RotationInput: + m_UseReference: 0 + m_Action: + m_Name: Rotation Input + m_Type: 0 + m_ExpectedControlType: + m_Id: 8236fd6b-5775-45b4-b768-d7978c047049 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 7406a299-3f75-40d3-9f0a-bc8cfd60eecb + m_Path: {LeftHand}/deviceRotation + m_Interactions: + m_Processors: + m_Groups: + m_Action: Rotation Input + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: -5913230009485065526, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_TrackingStateInput: + m_UseReference: 0 + m_Action: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: 1a53a9c7-8a69-4577-9ae6-c0a8e113c363 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 0} + m_PositionAction: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_RotationAction: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 +--- !u!1 &919387889 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 919387890} + - component: {fileID: 919387891} + m_Layer: 5 + m_Name: PrimaryTouch + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &919387890 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 919387889} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1598794467} + - {fileID: 772676662} + m_Father: {fileID: 1835351604} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: -27} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &919387891 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 919387889} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1879fed0e0310334fb310daf7dcc4784, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionReference: {fileID: -4964576040970502374, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + enabledColor: {r: 0, g: 1, b: 0, a: 1} + disabledColor: {r: 1, g: 0, b: 0, a: 1} + image: {fileID: 1598794468} +--- !u!1 &928529782 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 928529783} + m_Layer: 0 + m_Name: Hand + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &928529783 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 928529782} + m_LocalRotation: {x: -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: 457711611} + - {fileID: 2061362647} + - {fileID: 911429097} + - {fileID: 150895781} + - {fileID: 1651088749} + - {fileID: 718740958} + m_Father: {fileID: 640969809} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &939391402 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 939391403} + - component: {fileID: 939391406} + - component: {fileID: 939391405} + - component: {fileID: 939391404} + m_Layer: 5 + m_Name: Button (4) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &939391403 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 939391402} + m_LocalRotation: {x: 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: 247264888} + m_Father: {fileID: 1713029778} + m_RootOrder: 7 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -440, y: -219} + m_SizeDelta: {x: 400, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &939391404 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 939391402} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 939391405} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1569182637} + m_TargetAssemblyTypeName: Passthrough_manager, VIVE.OpenXR.Samples + m_MethodName: EnablePassthrough + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!114 &939391405 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 939391402} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &939391406 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 939391402} + m_CullTransparentMesh: 1 +--- !u!1 &949566130 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 949566131} + - component: {fileID: 949566133} + - component: {fileID: 949566132} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &949566131 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 949566130} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1812704215} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 45, y: 120} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &949566132 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 949566130} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &949566133 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 949566130} + m_CullTransparentMesh: 0 +--- !u!1 &983217818 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 983217819} + - component: {fileID: 983217821} + - component: {fileID: 983217820} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &983217819 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 983217818} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1838240540} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 56, y: 59} + m_SizeDelta: {x: 2000, y: 455.7} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &983217820 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 983217818} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 150 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 300 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Primary2DAxis + + Touch' +--- !u!222 &983217821 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 983217818} + m_CullTransparentMesh: 0 +--- !u!1 &984098750 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 984098751} + - component: {fileID: 984098753} + - component: {fileID: 984098752} + m_Layer: 5 + m_Name: Menu + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &984098751 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 984098750} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1112855538} + - {fileID: 1161564346} + m_Father: {fileID: 352368721} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 45} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &984098752 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 984098750} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6a579b9c6142ede44a4a991db9f3f279, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionReference: + m_UseReference: 1 + m_Action: + m_Name: Action Reference + m_Type: 0 + m_ExpectedControlType: + m_Id: aa7341ce-5c13-4d98-ae11-ede09d3facc2 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 4335090648579581189, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_TargetGameobject: {fileID: 1161564345} +--- !u!114 &984098753 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 984098750} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1879fed0e0310334fb310daf7dcc4784, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionReference: {fileID: 4335090648579581189, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + enabledColor: {r: 0, g: 1, b: 0, a: 1} + disabledColor: {r: 1, g: 0, b: 0, a: 1} + image: {fileID: 1161564347} +--- !u!1 &1013621684 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1013621685} + - component: {fileID: 1013621687} + - component: {fileID: 1013621686} + m_Layer: 5 + m_Name: clicked + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1013621685 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1013621684} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.25, y: 0.25, z: 0.025} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 590910127} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 33, y: 59} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1013621686 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1013621684} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1013621687 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1013621684} + m_CullTransparentMesh: 0 +--- !u!1 &1028758674 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1028758675} + - component: {fileID: 1028758677} + - component: {fileID: 1028758676} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1028758675 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1028758674} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 2072469934} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 45, y: 120} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1028758676 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1028758674} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1028758677 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1028758674} + m_CullTransparentMesh: 0 +--- !u!1 &1036491267 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1036491268} + - component: {fileID: 1036491270} + - component: {fileID: 1036491269} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1036491268 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1036491267} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1634237469} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 45, y: 120} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1036491269 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1036491267} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1036491270 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1036491267} + m_CullTransparentMesh: 0 +--- !u!1 &1038966288 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1038966289} + - component: {fileID: 1038966291} + - component: {fileID: 1038966290} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1038966289 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1038966288} + m_LocalRotation: {x: -0, y: -0, z: 0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.8, y: 0.8, z: 0.8} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 335046314} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1038966290 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1038966288} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1038966291 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1038966288} + m_CullTransparentMesh: 0 +--- !u!1 &1046251402 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1046251403} + - component: {fileID: 1046251405} + - component: {fileID: 1046251404} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1046251403 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1046251402} + m_LocalRotation: {x: -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: 537086792} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1046251404 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1046251402} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1046251405 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1046251402} + m_CullTransparentMesh: 0 +--- !u!1001 &1055397925 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 1225911832} + m_Modifications: + - target: {fileID: 3201029004716767610, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_Mesh + value: + objectReference: {fileID: 3613567641014311022, guid: 815c9e4802ddea645a37bd99f011c9b4, type: 3} + - target: {fileID: 4346727372943234170, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.y + value: 0.2 + objectReference: {fileID: 0} + - target: {fileID: 4346727372952809589, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.y + value: 0.2 + objectReference: {fileID: 0} + - target: {fileID: 4346727373925079742, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.y + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 4346727373925079742, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.z + value: 9.8 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823546882, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_Name + value: PoseMarker + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.z + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6251018130860582685, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_Mesh + value: + objectReference: {fileID: 3613567641014311022, guid: 815c9e4802ddea645a37bd99f011c9b4, type: 3} + - target: {fileID: 8595007410106638205, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_Mesh + value: + objectReference: {fileID: 3613567641014311022, guid: 815c9e4802ddea645a37bd99f011c9b4, type: 3} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} +--- !u!4 &1055397926 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + m_PrefabInstance: {fileID: 1055397925} + m_PrefabAsset: {fileID: 0} +--- !u!1 &1066776024 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1066776025} + - component: {fileID: 1066776026} + m_Layer: 0 + m_Name: Device + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1066776025 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1066776024} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0.2, y: -0.2, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 314705564} + - {fileID: 771358012} + - {fileID: 1637888823} + - {fileID: 1113734042} + m_Father: {fileID: 660298549} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1066776026 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1066776024} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c2fadf230d1919748a9aa21d40f74619, type: 3} + m_Name: + m_EditorClassIdentifier: + m_TrackingType: 0 + m_UpdateType: 0 + m_IgnoreTrackingState: 0 + m_PositionInput: + m_UseReference: 1 + m_Action: + m_Name: Position Input + m_Type: 0 + m_ExpectedControlType: + m_Id: e3292456-9857-4d13-8e6f-2201600a4848 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 2caadaed-6cae-4206-871a-7d122f9443b7 + m_Path: {Tracker2}/devicePosition + m_Interactions: + m_Processors: + m_Groups: + m_Action: Position Input + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: -2759337842053880306, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_RotationInput: + m_UseReference: 1 + m_Action: + m_Name: Rotation Input + m_Type: 0 + m_ExpectedControlType: + m_Id: 8236fd6b-5775-45b4-b768-d7978c047049 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 7406a299-3f75-40d3-9f0a-bc8cfd60eecb + m_Path: {Tracker2}/deviceRotation + m_Interactions: + m_Processors: + m_Groups: + m_Action: Rotation Input + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: 728203289168863980, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_TrackingStateInput: + m_UseReference: 0 + m_Action: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: 101bc147-5995-4211-a3d7-7aeb98d376be + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 0} + m_PositionAction: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_RotationAction: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 +--- !u!1 &1072292397 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1072292398} + - component: {fileID: 1072292400} + - component: {fileID: 1072292399} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1072292398 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1072292397} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1683143632} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 45, y: 120} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1072292399 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1072292397} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1072292400 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1072292397} + m_CullTransparentMesh: 0 +--- !u!1 &1092244488 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1092244489} + - component: {fileID: 1092244491} + - component: {fileID: 1092244490} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1092244489 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1092244488} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 633741711} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 85, y: 118} + m_SizeDelta: {x: 2000, y: 455.7} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1092244490 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1092244488} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 150 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 300 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Parking + + Touch' +--- !u!222 &1092244491 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1092244488} + m_CullTransparentMesh: 0 +--- !u!1 &1096160467 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1096160469} + - component: {fileID: 1096160468} + 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 &1096160468 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1096160467} + m_Enabled: 1 + serializedVersion: 10 + m_Type: 1 + m_Shape: 0 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Intensity: 1 + m_Range: 10 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 0 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ShadowRadius: 0 + m_ShadowAngle: 0 +--- !u!4 &1096160469 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1096160467} + m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} +--- !u!1 &1112855537 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1112855538} + - component: {fileID: 1112855540} + - component: {fileID: 1112855539} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1112855538 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1112855537} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 984098751} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 85, y: 118} + m_SizeDelta: {x: 2000, y: 455.7} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1112855539 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1112855537} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 300 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 300 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Menu +--- !u!222 &1112855540 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1112855537} + m_CullTransparentMesh: 0 +--- !u!1001 &1113734041 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 1066776025} + m_Modifications: + - target: {fileID: 5818550160992551307, guid: 5dc3dee3f9e01d341b7db5195a78b34e, type: 3} + propertyPath: m_Name + value: Vive_UltimateTracker + objectReference: {fileID: 0} + - target: {fileID: 6626048664893692721, guid: 5dc3dee3f9e01d341b7db5195a78b34e, type: 3} + propertyPath: m_RootOrder + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 6626048664893692721, guid: 5dc3dee3f9e01d341b7db5195a78b34e, type: 3} + propertyPath: m_LocalPosition.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 6626048664893692721, guid: 5dc3dee3f9e01d341b7db5195a78b34e, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6626048664893692721, guid: 5dc3dee3f9e01d341b7db5195a78b34e, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6626048664893692721, guid: 5dc3dee3f9e01d341b7db5195a78b34e, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6626048664893692721, guid: 5dc3dee3f9e01d341b7db5195a78b34e, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6626048664893692721, guid: 5dc3dee3f9e01d341b7db5195a78b34e, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 6626048664893692721, guid: 5dc3dee3f9e01d341b7db5195a78b34e, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 6626048664893692721, guid: 5dc3dee3f9e01d341b7db5195a78b34e, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6626048664893692721, guid: 5dc3dee3f9e01d341b7db5195a78b34e, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6626048664893692721, guid: 5dc3dee3f9e01d341b7db5195a78b34e, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 5dc3dee3f9e01d341b7db5195a78b34e, type: 3} +--- !u!4 &1113734042 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 6626048664893692721, guid: 5dc3dee3f9e01d341b7db5195a78b34e, type: 3} + m_PrefabInstance: {fileID: 1113734041} + m_PrefabAsset: {fileID: 0} +--- !u!1 &1127339591 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1127339592} + - component: {fileID: 1127339594} + - component: {fileID: 1127339593} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1127339592 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1127339591} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.099999994, y: 0.099999994, z: 0.099999994} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1409538204} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -0, y: 30} + m_SizeDelta: {x: 2000, y: 455.7} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1127339593 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1127339591} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 300 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 300 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Trigger +--- !u!222 &1127339594 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1127339591} + m_CullTransparentMesh: 0 +--- !u!1 &1136757561 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1136757562} + - component: {fileID: 1136757564} + - component: {fileID: 1136757563} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1136757562 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1136757561} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1812704215} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 85, y: 118} + m_SizeDelta: {x: 2000, y: 455.7} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1136757563 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1136757561} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 150 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 300 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'System + + Press' +--- !u!222 &1136757564 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1136757561} + m_CullTransparentMesh: 0 +--- !u!1 &1143906617 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1143906618} + - component: {fileID: 1143906620} + - component: {fileID: 1143906619} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1143906618 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1143906617} + m_LocalRotation: {x: -0, y: -0, z: 0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.25, y: 0.25, z: 0.25} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1711581562} + m_Father: {fileID: 1978669976} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1143906619 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1143906617} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1143906620 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1143906617} + m_CullTransparentMesh: 0 +--- !u!1 &1158917968 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1158917969} + m_Layer: 5 + m_Name: Fill Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1158917969 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1158917968} + m_LocalRotation: {x: -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: 667475168} + m_Father: {fileID: 498762529} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.25} + m_AnchorMax: {x: 1, y: 0.75} + m_AnchoredPosition: {x: -5, y: 0} + m_SizeDelta: {x: -20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1161564345 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1161564346} + - component: {fileID: 1161564348} + - component: {fileID: 1161564347} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1161564346 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1161564345} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 984098751} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 45, y: 120} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1161564347 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1161564345} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1161564348 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1161564345} + m_CullTransparentMesh: 0 +--- !u!1 &1170760116 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1170760117} + m_Layer: 5 + m_Name: Fill Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1170760117 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1170760116} + m_LocalRotation: {x: -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: 412980584} + m_Father: {fileID: 553957357} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.25} + m_AnchorMax: {x: 1, y: 0.75} + m_AnchoredPosition: {x: -5, y: 0} + m_SizeDelta: {x: -20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1173075873 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1173075874} + - component: {fileID: 1173075876} + - component: {fileID: 1173075875} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1173075874 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1173075873} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1288798519} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 85, y: 118} + m_SizeDelta: {x: 2000, y: 455.7} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1173075875 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1173075873} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 150 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 300 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'System + + Press' +--- !u!222 &1173075876 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1173075873} + m_CullTransparentMesh: 0 +--- !u!1 &1179399499 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1179399500} + - component: {fileID: 1179399503} + - component: {fileID: 1179399502} + - component: {fileID: 1179399501} + m_Layer: 5 + m_Name: Button (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1179399500 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1179399499} + m_LocalRotation: {x: 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: 514113437} + m_Father: {fileID: 1713029778} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 74.6, y: -6} + m_SizeDelta: {x: 350, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1179399501 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1179399499} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1179399502} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1569182637} + m_TargetAssemblyTypeName: Passthrough_manager, VIVE.OpenXR.Samples + m_MethodName: Set_Quality3 + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!114 &1179399502 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1179399499} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1179399503 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1179399499} + m_CullTransparentMesh: 1 +--- !u!1 &1186977324 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1186977325} + - component: {fileID: 1186977326} + m_Layer: 5 + m_Name: PrimaryTouch + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1186977325 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1186977324} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 571491013} + - {fileID: 118240069} + m_Father: {fileID: 352368721} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: -27} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1186977326 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1186977324} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1879fed0e0310334fb310daf7dcc4784, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionReference: {fileID: 3791933405598543491, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + enabledColor: {r: 0, g: 1, b: 0, a: 1} + disabledColor: {r: 1, g: 0, b: 0, a: 1} + image: {fileID: 118240070} +--- !u!1 &1187241078 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1187241079} + - component: {fileID: 1187241081} + - component: {fileID: 1187241080} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1187241079 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1187241078} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1840602435} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 60, y: 66} + m_SizeDelta: {x: 2000, y: 455.7} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1187241080 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1187241078} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 150 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 300 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Secondary2DAxis + + Press' +--- !u!222 &1187241081 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1187241078} + m_CullTransparentMesh: 0 +--- !u!1 &1220238347 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1220238348} + m_Layer: 5 + m_Name: Handle Slide Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1220238348 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1220238347} + m_LocalRotation: {x: -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: 552421620} + m_Father: {fileID: 498762529} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1222032317 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1222032318} + - component: {fileID: 1222032320} + - component: {fileID: 1222032319} + m_Layer: 5 + m_Name: Item Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1222032318 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1222032317} + m_LocalRotation: {x: 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: 1692129267} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1222032319 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1222032317} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1222032320 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1222032317} + m_CullTransparentMesh: 1 +--- !u!1 &1225911831 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1225911832} + - component: {fileID: 1225911833} + m_Layer: 0 + m_Name: Aim + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1225911832 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1225911831} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0.2, y: 0.1, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1476172581} + - {fileID: 1055397926} + m_Father: {fileID: 1846808538} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1225911833 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1225911831} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c2fadf230d1919748a9aa21d40f74619, type: 3} + m_Name: + m_EditorClassIdentifier: + m_TrackingType: 0 + m_UpdateType: 0 + m_IgnoreTrackingState: 0 + m_PositionInput: + m_UseReference: 1 + m_Action: + m_Name: Position + m_Type: 0 + m_ExpectedControlType: + m_Id: 463dd22d-e68b-4bf2-9c64-eadb9cb595c7 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 433893d2-3f66-4fa9-8aab-0462fb8ffac4 + m_Path: {LeftHand}/pointerPosition + m_Interactions: + m_Processors: + m_Groups: + m_Action: Position + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: 1805487408676636314, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_RotationInput: + m_UseReference: 1 + m_Action: + m_Name: Rotation + m_Type: 0 + m_ExpectedControlType: + m_Id: 81472b8b-1d39-4f4f-8bd8-2a8ec5384508 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 818c41bc-76a6-47ef-bc96-b201ee90f995 + m_Path: {LeftHand}/pointerRotation + m_Interactions: + m_Processors: + m_Groups: + m_Action: Rotation + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: -3341103204585363708, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_TrackingStateInput: + m_UseReference: 0 + m_Action: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: 521dbdf2-eb73-4785-9b6d-b048f59e5b81 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 0} + m_PositionAction: + m_Name: Position + m_Type: 0 + m_ExpectedControlType: + m_Id: 463dd22d-e68b-4bf2-9c64-eadb9cb595c7 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 433893d2-3f66-4fa9-8aab-0462fb8ffac4 + m_Path: {LeftHand}/pointerPosition + m_Interactions: + m_Processors: + m_Groups: + m_Action: Position + m_Flags: 0 + m_Flags: 0 + m_RotationAction: + m_Name: Rotation + m_Type: 0 + m_ExpectedControlType: + m_Id: 81472b8b-1d39-4f4f-8bd8-2a8ec5384508 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 818c41bc-76a6-47ef-bc96-b201ee90f995 + m_Path: {LeftHand}/pointerRotation + m_Interactions: + m_Processors: + m_Groups: + m_Action: Rotation + m_Flags: 0 + m_Flags: 0 +--- !u!1 &1227224236 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1227224237} + m_Layer: 5 + m_Name: Fill Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1227224237 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1227224236} + m_LocalRotation: {x: -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: 626047879} + m_Father: {fileID: 1960966491} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.25} + m_AnchorMax: {x: 1, y: 0.75} + m_AnchoredPosition: {x: -5, y: 0} + m_SizeDelta: {x: -20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1229987650 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1229987651} + m_Layer: 5 + m_Name: Fill Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1229987651 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1229987650} + m_LocalRotation: {x: -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: 1459891531} + m_Father: {fileID: 1530353198} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.25} + m_AnchorMax: {x: 1, y: 0.75} + m_AnchoredPosition: {x: -5, y: 0} + m_SizeDelta: {x: -20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1242110078 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1242110079} + - component: {fileID: 1242110080} + m_Layer: 5 + m_Name: Grip + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1242110079 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1242110078} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1466304301} + - {fileID: 138746962} + m_Father: {fileID: 1835351604} + m_RootOrder: 10 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -64.3, y: 68.5} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1242110080 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1242110078} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 47dc0f697f292694f85e0ea7d8eab70f, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionReference: {fileID: -5194266436686895582, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + slider: {fileID: 1466304302} +--- !u!1 &1261091472 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1261091473} + m_Layer: 5 + m_Name: Fill Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1261091473 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1261091472} + m_LocalRotation: {x: -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: 617399327} + m_Father: {fileID: 737361071} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.25} + m_AnchorMax: {x: 1, y: 0.75} + m_AnchoredPosition: {x: -5, y: 0} + m_SizeDelta: {x: -20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1266240672 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1266240673} + - component: {fileID: 1266240675} + - component: {fileID: 1266240674} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1266240673 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1266240672} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 590910127} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 56, y: 59} + m_SizeDelta: {x: 2000, y: 455.7} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1266240674 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1266240672} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 150 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 300 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Primary2DAxis + + Touch' +--- !u!222 &1266240675 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1266240672} + m_CullTransparentMesh: 0 +--- !u!1 &1275690187 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1275690188} + - component: {fileID: 1275690189} + m_Layer: 5 + m_Name: xSlider + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1275690188 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1275690187} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1391028254} + - {fileID: 1413316930} + - {fileID: 2008885372} + m_Father: {fileID: 1544299174} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + 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: 160, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1275690189 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1275690187} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 67db9e8f0e2ae9c40bc1e2b64352a6b4, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1767764476} + m_FillRect: {fileID: 1712965473} + m_HandleRect: {fileID: 1767764475} + m_Direction: 0 + m_MinValue: -1 + m_MaxValue: 1 + m_WholeNumbers: 0 + m_Value: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &1277099396 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1277099397} + - component: {fileID: 1277099401} + - component: {fileID: 1277099400} + - component: {fileID: 1277099399} + - component: {fileID: 1277099398} + m_Layer: 0 + m_Name: Pointer + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1277099397 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1277099396} + m_LocalRotation: {x: 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: 1629889850} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1277099398 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1277099396} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 78ba47d171a9d604e87df3c8c0304fde, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 0 + m_PhysicsCastDistance: 100 + m_PhysicsEventMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_PointerRingWidth: 0.005 + m_PointerCircleRadius: 0.005 + m_PointerDistance: 1 + m_PointerColor: {r: 1, g: 1, b: 1, a: 1} + m_ProgressColor: {r: 0, g: 245, b: 255, a: 1} + m_PointerMaterial: {fileID: 0} + m_PointerRenderQueue: 5000 + m_PointerSortingOrder: 32767 + m_TimeToGaze: 1.5 + m_EyeTracking: 1 + m_EyePose: {fileID: 5776323397344544520, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_InputEvent: 0 + m_ActionsKeys: + - {fileID: -149401235567842990, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + - {fileID: -3683315366864426127, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_AlwaysEnable: 0 +--- !u!20 &1277099399 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1277099396} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 0 + orthographic size: 5 + m_Depth: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!33 &1277099400 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1277099396} + m_Mesh: {fileID: 0} +--- !u!23 &1277099401 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1277099396} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!1 &1279369331 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1279369332} + m_Layer: 5 + m_Name: Fill Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1279369332 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1279369331} + m_LocalRotation: {x: -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: 1627637949} + m_Father: {fileID: 725263209} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.25} + m_AnchorMax: {x: 1, y: 0.75} + m_AnchoredPosition: {x: -5, y: 0} + m_SizeDelta: {x: -20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1283505034 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1283505035} + - component: {fileID: 1283505036} + m_Layer: 5 + m_Name: Pressed + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1283505035 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1283505034} + m_LocalRotation: {x: -0, y: -0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 903630199} + m_Father: {fileID: 295224021} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1283505036 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1283505034} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1879fed0e0310334fb310daf7dcc4784, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionReference: {fileID: -2169729131751125950, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + enabledColor: {r: 0, g: 1, b: 0, a: 1} + disabledColor: {r: 1, g: 0, b: 0, a: 1} + image: {fileID: 903630200} +--- !u!1 &1288798518 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1288798519} + - component: {fileID: 1288798520} + m_Layer: 5 + m_Name: SystemClick + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1288798519 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1288798518} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1173075874} + - {fileID: 254036945} + m_Father: {fileID: 314705564} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 4} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1288798520 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1288798518} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1879fed0e0310334fb310daf7dcc4784, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionReference: {fileID: 327838288788051219, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + enabledColor: {r: 0, g: 1, b: 0, a: 1} + disabledColor: {r: 1, g: 0, b: 0, a: 1} + image: {fileID: 254036946} +--- !u!1 &1289704352 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1289704353} + - component: {fileID: 1289704355} + - component: {fileID: 1289704354} + 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 &1289704353 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1289704352} + m_LocalRotation: {x: 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: 2000875598} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1289704354 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1289704352} + 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: Quality:1.00 + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 50 + m_fontSizeBase: 50 + 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 &1289704355 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1289704352} + m_CullTransparentMesh: 1 +--- !u!1 &1295195354 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1295195355} + - component: {fileID: 1295195358} + - component: {fileID: 1295195357} + - component: {fileID: 1295195356} + m_Layer: 0 + m_Name: Pointer + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1295195355 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1295195354} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.015, y: 0.015, z: 0.015} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 2061362647} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 1, y: 1} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!223 &1295195356 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1295195354} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_VertexColorAlwaysGammaSpace: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!114 &1295195357 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1295195354} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0.9529412, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1295195358 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1295195354} + m_CullTransparentMesh: 1 +--- !u!1 &1303200712 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1303200713} + - component: {fileID: 1303200715} + - component: {fileID: 1303200714} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1303200713 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1303200712} + m_LocalRotation: {x: -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: 553957357} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.25} + m_AnchorMax: {x: 1, y: 0.75} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1303200714 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1303200712} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1303200715 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1303200712} + m_CullTransparentMesh: 0 +--- !u!1 &1310851284 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1310851285} + - component: {fileID: 1310851287} + - component: {fileID: 1310851286} + m_Layer: 0 + m_Name: TrackerR + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1310851285 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1310851284} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0.2, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 362029221} + m_Father: {fileID: 1932223632} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1310851286 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1310851284} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 873a88a3d45610d4489a58d37c448415, type: 3} + m_Name: + m_EditorClassIdentifier: + IsLeft: 0 + m_IsActive: {fileID: -2142481284763116220, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_TrackingState: {fileID: -4809733646631088894, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_ObjectToHide: {fileID: 362029222} +--- !u!114 &1310851287 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1310851284} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4c129ad20f238874c92d1c11fa0f80e8, type: 3} + m_Name: + m_EditorClassIdentifier: + IsLeft: 0 + m_DevicePose: {fileID: -5152140617287461372, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_PrimaryButton: {fileID: -1209568713510473058, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_Menu: {fileID: 578948288454231874, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} +--- !u!1 &1311375920 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1311375921} + m_Layer: 0 + m_Name: Tracker2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1311375921 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1311375920} + m_LocalRotation: {x: 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: 504995713} + m_Father: {fileID: 1975217965} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1312014151 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1312014152} + m_Layer: 0 + m_Name: Tracker0 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1312014152 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1312014151} + m_LocalRotation: {x: 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: 82661892} + m_Father: {fileID: 1975217965} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1321816050 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1321816051} + - component: {fileID: 1321816053} + - component: {fileID: 1321816052} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1321816051 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1321816050} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 2099037705} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 45, y: 120} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1321816052 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1321816050} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1321816053 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1321816050} + m_CullTransparentMesh: 0 +--- !u!1 &1324573718 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1324573719} + - component: {fileID: 1324573720} + m_Layer: 5 + m_Name: SecondaryTouch + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1324573719 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1324573718} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1566232994} + - {fileID: 457375638} + m_Father: {fileID: 1835351604} + m_RootOrder: 12 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: -133} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1324573720 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1324573718} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1879fed0e0310334fb310daf7dcc4784, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionReference: {fileID: -489211225168818177, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + enabledColor: {r: 0, g: 1, b: 0, a: 1} + disabledColor: {r: 1, g: 0, b: 0, a: 1} + image: {fileID: 457375639} +--- !u!1 &1329881145 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1329881146} + m_Layer: 5 + m_Name: Handle Slide Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1329881146 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1329881145} + m_LocalRotation: {x: -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: 106022803} + m_Father: {fileID: 553957357} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1336730669 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1336730670} + - component: {fileID: 1336730673} + - component: {fileID: 1336730672} + - component: {fileID: 1336730671} + m_Layer: 5 + m_Name: Template + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &1336730670 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1336730669} + m_LocalRotation: {x: 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: 853191321} + - {fileID: 38132866} + m_Father: {fileID: 455892299} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: 0, y: 2} + m_SizeDelta: {x: 0, y: 300} + m_Pivot: {x: 0.5, y: 1} +--- !u!114 &1336730671 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1336730669} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1aa08ab6e0800fa44ae55d278d1423e3, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Content: {fileID: 1908342844} + m_Horizontal: 0 + m_Vertical: 1 + m_MovementType: 2 + m_Elasticity: 0.1 + m_Inertia: 1 + m_DecelerationRate: 0.135 + m_ScrollSensitivity: 1 + m_Viewport: {fileID: 853191321} + m_HorizontalScrollbar: {fileID: 0} + m_VerticalScrollbar: {fileID: 38132867} + m_HorizontalScrollbarVisibility: 0 + m_VerticalScrollbarVisibility: 2 + m_HorizontalScrollbarSpacing: 0 + m_VerticalScrollbarSpacing: -3 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &1336730672 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1336730669} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1336730673 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1336730669} + m_CullTransparentMesh: 1 +--- !u!1 &1349875072 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1349875073} + - component: {fileID: 1349875075} + - component: {fileID: 1349875074} + 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 &1349875073 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1349875072} + m_LocalRotation: {x: 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: 893504747} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1349875074 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1349875072} + 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: 'Disable + +' + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 50 + m_fontSizeBase: 50 + 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 &1349875075 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1349875072} + m_CullTransparentMesh: 1 +--- !u!1 &1369334814 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1369334815} + m_Layer: 0 + m_Name: Tracker4 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1369334815 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1369334814} + m_LocalRotation: {x: 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: 516537534} + m_Father: {fileID: 1975217965} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1370593071 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1370593072} + - component: {fileID: 1370593073} + m_Layer: 5 + m_Name: Touched + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1370593072 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1370593071} + m_LocalRotation: {x: -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: 295224021} + m_Father: {fileID: 106022803} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1370593073 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1370593071} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1879fed0e0310334fb310daf7dcc4784, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionReference: {fileID: -2550821198205516960, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + enabledColor: {r: 0, g: 1, b: 0, a: 1} + disabledColor: {r: 1, g: 0, b: 0, a: 1} + image: {fileID: 295224022} +--- !u!1 &1391028253 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1391028254} + - component: {fileID: 1391028256} + - component: {fileID: 1391028255} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1391028254 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1391028253} + m_LocalRotation: {x: -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: 1275690188} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.25} + m_AnchorMax: {x: 1, y: 0.75} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1391028255 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1391028253} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1391028256 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1391028253} + m_CullTransparentMesh: 0 +--- !u!1 &1392846555 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1392846556} + - component: {fileID: 1392846558} + - component: {fileID: 1392846557} + m_Layer: 5 + m_Name: touched + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1392846556 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1392846555} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.25, y: 0.25, z: 0.025} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1890512586} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 62, y: -3} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1392846557 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1392846555} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1392846558 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1392846555} + m_CullTransparentMesh: 0 +--- !u!1 &1401916746 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1401916747} + - component: {fileID: 1401916749} + - component: {fileID: 1401916748} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1401916747 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1401916746} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 63968658} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 85, y: 118} + m_SizeDelta: {x: 2000, y: 455.7} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1401916748 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1401916746} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 150 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 300 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'System + + Touch' +--- !u!222 &1401916749 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1401916746} + m_CullTransparentMesh: 0 +--- !u!1 &1409538203 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1409538204} + - component: {fileID: 1409538205} + m_Layer: 5 + m_Name: Trigger + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1409538204 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1409538203} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.6, y: 0.6, z: 0.6} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 725263209} + - {fileID: 1127339592} + m_Father: {fileID: 352368721} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 180, y: 0} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1409538205 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1409538203} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 47dc0f697f292694f85e0ea7d8eab70f, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionReference: {fileID: 2526168894431210536, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + slider: {fileID: 725263210} +--- !u!1 &1413316929 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1413316930} + m_Layer: 5 + m_Name: Fill Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1413316930 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1413316929} + m_LocalRotation: {x: -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: 1712965473} + m_Father: {fileID: 1275690188} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.25} + m_AnchorMax: {x: 1, y: 0.75} + m_AnchoredPosition: {x: -5, y: 0} + m_SizeDelta: {x: -20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1414389963 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1414389964} + - component: {fileID: 1414389966} + - component: {fileID: 1414389965} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1414389964 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1414389963} + m_LocalRotation: {x: -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: 841739899} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1414389965 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1414389963} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1414389966 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1414389963} + m_CullTransparentMesh: 0 +--- !u!1 &1417655269 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1417655270} + - component: {fileID: 1417655271} + m_Layer: 5 + m_Name: AxisValue + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1417655270 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1417655269} + m_LocalRotation: {x: -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: 445483091} + - {fileID: 1984975653} + - {fileID: 840930403} + m_Father: {fileID: 433624928} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 160, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1417655271 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1417655269} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 67db9e8f0e2ae9c40bc1e2b64352a6b4, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1905505354} + m_FillRect: {fileID: 50973810} + m_HandleRect: {fileID: 1905505353} + m_Direction: 0 + m_MinValue: 0 + m_MaxValue: 1 + m_WholeNumbers: 0 + m_Value: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &1430661126 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1430661127} + - component: {fileID: 1430661128} + m_Layer: 5 + m_Name: Grip + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1430661127 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1430661126} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 553957357} + - {fileID: 815668967} + m_Father: {fileID: 352368721} + m_RootOrder: 10 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -64.3, y: 68.5} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1430661128 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1430661126} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 47dc0f697f292694f85e0ea7d8eab70f, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionReference: {fileID: -1289947363739713011, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + slider: {fileID: 553957358} +--- !u!1 &1432655217 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1432655218} + - component: {fileID: 1432655220} + - component: {fileID: 1432655219} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1432655218 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1432655217} + m_LocalRotation: {x: -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: 1790101007} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1432655219 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1432655217} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1432655220 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1432655217} + m_CullTransparentMesh: 0 +--- !u!1 &1436821650 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1436821651} + - component: {fileID: 1436821653} + - component: {fileID: 1436821652} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1436821651 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1436821650} + m_LocalRotation: {x: 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: 554957221} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0.2} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1436821652 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1436821650} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1436821653 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1436821650} + m_CullTransparentMesh: 1 +--- !u!1 &1444877456 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1444877457} + - component: {fileID: 1444877459} + - component: {fileID: 1444877458} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1444877457 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1444877456} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1573064748} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 85, y: 118} + m_SizeDelta: {x: 2000, y: 455.7} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1444877458 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1444877456} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 150 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 300 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Secondary + + Press' +--- !u!222 &1444877459 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1444877456} + m_CullTransparentMesh: 0 +--- !u!1 &1453289814 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1453289815} + - component: {fileID: 1453289818} + - component: {fileID: 1453289817} + - component: {fileID: 1453289816} + m_Layer: 0 + m_Name: Sphere + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1453289815 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1453289814} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 5} + m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 675835212} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!135 &1453289816 +SphereCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1453289814} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Radius: 0.5 + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1453289817 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1453289814} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 07f1d383591ceb64b8660305371088a2, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1453289818 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1453289814} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1459580597 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1459580598} + - component: {fileID: 1459580600} + - component: {fileID: 1459580599} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1459580598 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1459580597} + m_LocalRotation: {x: -0, y: -0, z: 0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.25, y: 0.25, z: 0.25} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 335046314} + m_Father: {fileID: 1987598256} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1459580599 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1459580597} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1459580600 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1459580597} + m_CullTransparentMesh: 0 +--- !u!1 &1459891530 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1459891531} + - component: {fileID: 1459891533} + - component: {fileID: 1459891532} + m_Layer: 5 + m_Name: Fill + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1459891531 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1459891530} + m_LocalRotation: {x: -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: 1229987651} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 10, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1459891532 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1459891530} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1459891533 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1459891530} + m_CullTransparentMesh: 0 +--- !u!1 &1466304300 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1466304301} + - component: {fileID: 1466304302} + m_Layer: 5 + m_Name: AxisValue + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1466304301 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1466304300} + m_LocalRotation: {x: -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: 1571511828} + - {fileID: 1761205833} + - {fileID: 1907322144} + m_Father: {fileID: 1242110079} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 160, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1466304302 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1466304300} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 67db9e8f0e2ae9c40bc1e2b64352a6b4, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 565353136} + m_FillRect: {fileID: 1552428890} + m_HandleRect: {fileID: 565353135} + m_Direction: 0 + m_MinValue: 0 + m_MaxValue: 1 + m_WholeNumbers: 0 + m_Value: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &1476172580 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1476172581} + - component: {fileID: 1476172584} + - component: {fileID: 1476172583} + - component: {fileID: 1476172582} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1476172581 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1476172580} + m_LocalRotation: {x: 0.5, y: -0.5, z: 0.5, w: 0.5} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.001, y: 0.001, z: 0.001} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 737847507} + m_Father: {fileID: 1225911832} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 90, y: -90, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0.005} + m_SizeDelta: {x: 662, y: 423} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1476172582 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1476172580} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &1476172583 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1476172580} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 1 +--- !u!223 &1476172584 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1476172580} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 1629889848} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_VertexColorAlwaysGammaSpace: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!1 &1485539353 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1485539354} + - component: {fileID: 1485539356} + - component: {fileID: 1485539355} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1485539354 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1485539353} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1494668261} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 56, y: 59} + m_SizeDelta: {x: 2000, y: 455.7} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1485539355 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1485539353} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 150 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 300 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Primary2DAxis + + Press' +--- !u!222 &1485539356 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1485539353} + m_CullTransparentMesh: 0 +--- !u!1001 &1488220533 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 743632514} + m_Modifications: + - target: {fileID: 4346727372943234170, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.y + value: 0.2 + objectReference: {fileID: 0} + - target: {fileID: 4346727372952809589, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.y + value: 0.2 + objectReference: {fileID: 0} + - target: {fileID: 4346727373925079742, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.y + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 4346727373925079742, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.z + value: 9.8 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823546882, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_Name + value: PoseMarker + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.z + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} +--- !u!4 &1488220534 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + m_PrefabInstance: {fileID: 1488220533} + m_PrefabAsset: {fileID: 0} +--- !u!1 &1494668260 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1494668261} + - component: {fileID: 1494668262} + m_Layer: 5 + m_Name: Primary2DAxisClick + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1494668261 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1494668260} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1485539354} + - {fileID: 823519885} + m_Father: {fileID: 352368721} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 100, y: -70} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1494668262 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1494668260} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1879fed0e0310334fb310daf7dcc4784, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionReference: {fileID: -149401235567842990, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + enabledColor: {r: 0, g: 1, b: 0, a: 1} + disabledColor: {r: 1, g: 0, b: 0, a: 1} + image: {fileID: 823519886} +--- !u!1 &1503002682 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1503002683} + - component: {fileID: 1503002685} + - component: {fileID: 1503002684} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1503002683 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1503002682} + m_LocalRotation: {x: -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: 1960966491} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.25} + m_AnchorMax: {x: 1, y: 0.75} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1503002684 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1503002682} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1503002685 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1503002682} + m_CullTransparentMesh: 0 +--- !u!1 &1512957463 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1512957464} + - component: {fileID: 1512957466} + - component: {fileID: 1512957465} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1512957464 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1512957463} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1573064748} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 45, y: 120} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1512957465 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1512957463} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1512957466 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1512957463} + m_CullTransparentMesh: 0 +--- !u!1 &1519900144 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1519900145} + - component: {fileID: 1519900147} + - component: {fileID: 1519900146} + m_Layer: 5 + m_Name: PoseName + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1519900145 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1519900144} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.05, y: 0.05, z: 0.05} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1835351604} + m_RootOrder: 15 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -25, y: 30} + m_SizeDelta: {x: 1000, y: 1000} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1519900146 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1519900144} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 300 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 3 + m_MaxSize: 300 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Grip Pose +--- !u!222 &1519900147 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1519900144} + m_CullTransparentMesh: 0 +--- !u!1 &1528897135 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1528897136} + - component: {fileID: 1528897138} + - component: {fileID: 1528897137} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1528897136 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1528897135} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 2072469934} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 85, y: 118} + m_SizeDelta: {x: 2000, y: 455.7} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1528897137 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1528897135} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 150 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 300 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Primary + + Press' +--- !u!222 &1528897138 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1528897135} + m_CullTransparentMesh: 0 +--- !u!1 &1530353197 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1530353198} + - component: {fileID: 1530353199} + m_Layer: 5 + m_Name: xSlider + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1530353198 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1530353197} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 205941011} + - {fileID: 1229987651} + - {fileID: 1814523968} + m_Father: {fileID: 1682763413} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + 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: 160, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1530353199 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1530353197} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 67db9e8f0e2ae9c40bc1e2b64352a6b4, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1832197336} + m_FillRect: {fileID: 1459891531} + m_HandleRect: {fileID: 1832197335} + m_Direction: 0 + m_MinValue: -1 + m_MaxValue: 1 + m_WholeNumbers: 0 + m_Value: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &1532342229 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1532342230} + - component: {fileID: 1532342232} + - component: {fileID: 1532342231} + m_Layer: 5 + m_Name: Fill + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1532342230 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1532342229} + m_LocalRotation: {x: -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: 545633997} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 10, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1532342231 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1532342229} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1532342232 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1532342229} + m_CullTransparentMesh: 0 +--- !u!1 &1543308790 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1543308791} + - component: {fileID: 1543308793} + - component: {fileID: 1543308792} + m_Layer: 5 + m_Name: clicked + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1543308791 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1543308790} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.25, y: 0.25, z: 0.025} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1838240540} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 33, y: 59} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1543308792 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1543308790} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1543308793 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1543308790} + m_CullTransparentMesh: 0 +--- !u!1 &1544299173 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1544299174} + - component: {fileID: 1544299175} + m_Layer: 5 + m_Name: Primary2DAxis + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1544299174 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1544299173} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1677951214} + - {fileID: 1275690188} + - {fileID: 737361071} + m_Father: {fileID: 352368721} + 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: 100, y: -70} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1544299175 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1544299173} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 68ffad370daf7de4097bcd7cb411838c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionReference: {fileID: 7596212294181904713, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + xAxisSlider: {fileID: 1275690189} + yAxisSlider: {fileID: 737361072} +--- !u!1 &1545250103 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1545250104} + - component: {fileID: 1545250106} + - component: {fileID: 1545250105} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1545250104 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1545250103} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1834382181} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 85, y: 118} + m_SizeDelta: {x: 2000, y: 455.7} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1545250105 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1545250103} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 150 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 300 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'System + + Touch' +--- !u!222 &1545250106 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1545250103} + m_CullTransparentMesh: 0 +--- !u!1 &1549915740 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1549915741} + - component: {fileID: 1549915744} + - component: {fileID: 1549915743} + - component: {fileID: 1549915742} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1549915741 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1549915740} + m_LocalRotation: {x: 0.5, y: -0.5, z: 0.5, w: 0.5} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.001, y: 0.001, z: 0.001} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 2129550140} + m_Father: {fileID: 544671023} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 90, y: -90, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0.005} + m_SizeDelta: {x: 662, y: 423} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1549915742 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1549915740} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &1549915743 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1549915740} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 1 +--- !u!223 &1549915744 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1549915740} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 1629889848} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_VertexColorAlwaysGammaSpace: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!1001 &1551499642 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 504995713} + m_Modifications: + - target: {fileID: 3201029004716767610, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_Mesh + value: + objectReference: {fileID: 3613567641014311022, guid: 815c9e4802ddea645a37bd99f011c9b4, type: 3} + - target: {fileID: 4346727372943234170, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.y + value: 0.2 + objectReference: {fileID: 0} + - target: {fileID: 4346727372952809589, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.y + value: 0.2 + objectReference: {fileID: 0} + - target: {fileID: 4346727373925079742, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.y + value: 0.3 + objectReference: {fileID: 0} + - target: {fileID: 4346727373925079742, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823546882, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_Name + value: PoseMarker + objectReference: {fileID: 0} + - target: {fileID: 4346727374823546882, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_RootOrder + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.z + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6251018130860582685, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_Mesh + value: + objectReference: {fileID: 3613567641014311022, guid: 815c9e4802ddea645a37bd99f011c9b4, type: 3} + - target: {fileID: 8595007410106638205, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_Mesh + value: + objectReference: {fileID: 3613567641014311022, guid: 815c9e4802ddea645a37bd99f011c9b4, type: 3} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} +--- !u!4 &1551499643 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + m_PrefabInstance: {fileID: 1551499642} + m_PrefabAsset: {fileID: 0} +--- !u!1 &1552428889 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1552428890} + - component: {fileID: 1552428892} + - component: {fileID: 1552428891} + m_Layer: 5 + m_Name: Fill + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1552428890 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1552428889} + m_LocalRotation: {x: -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: 1761205833} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 10, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1552428891 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1552428889} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1552428892 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1552428889} + m_CullTransparentMesh: 0 +--- !u!1 &1564977097 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1564977098} + - component: {fileID: 1564977100} + - component: {fileID: 1564977099} + m_Layer: 5 + m_Name: PoseName + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1564977098 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1564977097} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.05, y: 0.05, z: 0.05} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 62732310} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -25, y: -30} + m_SizeDelta: {x: 1000, y: 1000} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1564977099 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1564977097} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 300 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 3 + m_MaxSize: 300 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Right Grip +--- !u!222 &1564977100 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1564977097} + m_CullTransparentMesh: 0 +--- !u!1 &1565217525 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1565217526} + - component: {fileID: 1565217528} + - component: {fileID: 1565217527} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1565217526 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1565217525} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 839516577} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 56, y: 59} + m_SizeDelta: {x: 2000, y: 455.7} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1565217527 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1565217525} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 150 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 300 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Primary2DAxis + + Press' +--- !u!222 &1565217528 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1565217525} + m_CullTransparentMesh: 0 +--- !u!1 &1566232993 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1566232994} + - component: {fileID: 1566232996} + - component: {fileID: 1566232995} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1566232994 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1566232993} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1324573719} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 85, y: 118} + m_SizeDelta: {x: 2000, y: 455.7} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1566232995 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1566232993} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 150 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 300 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Secondary + + Touch' +--- !u!222 &1566232996 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1566232993} + m_CullTransparentMesh: 0 +--- !u!1 &1569182636 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1569182638} + - component: {fileID: 1569182637} + m_Layer: 0 + m_Name: Quality + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1569182637 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1569182636} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 58d2ddb40a3cc7d4c932f869f43073c2, type: 3} + m_Name: + m_EditorClassIdentifier: + dropdown: {fileID: 455892300} +--- !u!4 &1569182638 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1569182636} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -0.048000008, y: 0.872, z: 3.05} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1571511827 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1571511828} + - component: {fileID: 1571511830} + - component: {fileID: 1571511829} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1571511828 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1571511827} + m_LocalRotation: {x: -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: 1466304301} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.25} + m_AnchorMax: {x: 1, y: 0.75} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1571511829 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1571511827} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1571511830 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1571511827} + m_CullTransparentMesh: 0 +--- !u!1 &1573064747 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1573064748} + - component: {fileID: 1573064749} + m_Layer: 5 + m_Name: SecondaryButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1573064748 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1573064747} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1444877457} + - {fileID: 1512957464} + m_Father: {fileID: 1835351604} + m_RootOrder: 11 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: -95} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1573064749 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1573064747} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1879fed0e0310334fb310daf7dcc4784, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionReference: {fileID: -1644001223835636349, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + enabledColor: {r: 0, g: 1, b: 0, a: 1} + disabledColor: {r: 1, g: 0, b: 0, a: 1} + image: {fileID: 1512957465} +--- !u!1001 &1576046942 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 273403740} + m_Modifications: + - target: {fileID: 4346727374823546882, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_Name + value: PoseMarker + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.z + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} +--- !u!4 &1576046943 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + m_PrefabInstance: {fileID: 1576046942} + m_PrefabAsset: {fileID: 0} +--- !u!1 &1598794466 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1598794467} + - component: {fileID: 1598794469} + - component: {fileID: 1598794468} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1598794467 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1598794466} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 919387890} + 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: 45, y: 120} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1598794468 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1598794466} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1598794469 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1598794466} + m_CullTransparentMesh: 0 +--- !u!1 &1618620640 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1618620641} + - component: {fileID: 1618620643} + - component: {fileID: 1618620642} + m_Layer: 5 + m_Name: PoseName + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1618620641 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1618620640} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.05, y: 0.05, z: 0.05} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 771358012} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -25, y: -30} + m_SizeDelta: {x: 1000, y: 1000} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1618620642 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1618620640} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 300 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 3 + m_MaxSize: 300 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Tracker 3 +--- !u!222 &1618620643 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1618620640} + m_CullTransparentMesh: 0 +--- !u!1 &1626656185 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1626656186} + - component: {fileID: 1626656188} + - component: {fileID: 1626656187} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1626656186 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1626656185} + m_LocalRotation: {x: -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: 774266808} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1626656187 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1626656185} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1626656188 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1626656185} + m_CullTransparentMesh: 0 +--- !u!1 &1627637948 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1627637949} + - component: {fileID: 1627637951} + - component: {fileID: 1627637950} + m_Layer: 5 + m_Name: Fill + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1627637949 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1627637948} + m_LocalRotation: {x: -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: 1279369332} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 10, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1627637950 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1627637948} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1627637951 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1627637948} + m_CullTransparentMesh: 0 +--- !u!1 &1629889847 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1629889850} + - component: {fileID: 1629889848} + - component: {fileID: 1629889849} + m_Layer: 0 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!20 &1629889848 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1629889847} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 2 + m_BackGroundColor: {r: 0, g: 0, b: 0, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.01 + far clip plane: 1000 + field of view: 60 + orthographic: 0 + orthographic size: 5 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -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!81 &1629889849 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1629889847} + m_Enabled: 1 +--- !u!4 &1629889850 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1629889847} + m_LocalRotation: {x: -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: 1277099397} + m_Father: {fileID: 877341548} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1634237468 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1634237469} + - component: {fileID: 1634237470} + m_Layer: 5 + m_Name: PrimaryButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1634237469 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1634237468} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1677121083} + - {fileID: 1036491268} + m_Father: {fileID: 1835351604} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 4} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1634237470 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1634237468} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1879fed0e0310334fb310daf7dcc4784, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionReference: {fileID: 11711766586467970, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + enabledColor: {r: 0, g: 1, b: 0, a: 1} + disabledColor: {r: 1, g: 0, b: 0, a: 1} + image: {fileID: 1036491269} +--- !u!1001 &1637888822 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 1066776025} + m_Modifications: + - target: {fileID: 3201029004716767610, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_Mesh + value: + objectReference: {fileID: 3613567641014311022, guid: 815c9e4802ddea645a37bd99f011c9b4, type: 3} + - target: {fileID: 4346727372943234170, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.y + value: 0.2 + objectReference: {fileID: 0} + - target: {fileID: 4346727372952809589, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.y + value: 0.2 + objectReference: {fileID: 0} + - target: {fileID: 4346727373925079742, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.y + value: 0.3 + objectReference: {fileID: 0} + - target: {fileID: 4346727373925079742, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823546882, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_Name + value: PoseMarker + objectReference: {fileID: 0} + - target: {fileID: 4346727374823546882, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_RootOrder + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.z + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6251018130860582685, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_Mesh + value: + objectReference: {fileID: 3613567641014311022, guid: 815c9e4802ddea645a37bd99f011c9b4, type: 3} + - target: {fileID: 8595007410106638205, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_Mesh + value: + objectReference: {fileID: 3613567641014311022, guid: 815c9e4802ddea645a37bd99f011c9b4, type: 3} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} +--- !u!4 &1637888823 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + m_PrefabInstance: {fileID: 1637888822} + m_PrefabAsset: {fileID: 0} +--- !u!1 &1644059250 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1644059251} + - component: {fileID: 1644059253} + - component: {fileID: 1644059252} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1644059251 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1644059250} + m_LocalRotation: {x: -0, y: -0, z: 0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.25, y: 0.25, z: 0.25} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 557108721} + m_Father: {fileID: 741354469} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1644059252 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1644059250} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1644059253 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1644059250} + m_CullTransparentMesh: 0 +--- !u!1 &1645869178 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1645869179} + m_Layer: 5 + m_Name: Handle Slide Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1645869179 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1645869178} + m_LocalRotation: {x: -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: 290467453} + m_Father: {fileID: 1960966491} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1651088748 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1651088749} + - component: {fileID: 1651088752} + - component: {fileID: 1651088751} + - component: {fileID: 1651088750} + m_Layer: 0 + m_Name: RightPointer + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1651088749 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1651088748} + m_LocalRotation: {x: 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: 49290005} + m_Father: {fileID: 928529783} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1651088750 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1651088748} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3d1efc78bbff2cc4eb930103b4111b67, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 0 + m_PhysicsCastDistance: 100 + m_PhysicsEventMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_ShowRay: 1 + m_RayStartWidth: 0.01 + m_RayEndWidth: 0.01 + m_RayMaterial: {fileID: 10306, guid: 0000000000000000f000000000000000, type: 0} + m_Pointer: {fileID: 49290004} + IsLeft: 0 + m_UsePose: 1 + m_AimPose: {fileID: 2185082307209871477, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_PinchStrength: {fileID: -7726113467501644799, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_PinchThreshold: 0.5 + m_AlwaysEnable: 0 +--- !u!20 &1651088751 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1651088748} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 0 + orthographic size: 5 + m_Depth: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!120 &1651088752 +LineRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1651088748} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 0 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Positions: + - {x: 0, y: 0, z: 0} + - {x: 0, y: 0, z: 1} + m_Parameters: + serializedVersion: 3 + widthMultiplier: 1 + widthCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0.009860992 + value: 0.012810729 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + numCornerVertices: 0 + numCapVertices: 0 + alignment: 0 + textureMode: 0 + shadowBias: 0.5 + generateLightingData: 0 + m_UseWorldSpace: 1 + m_Loop: 0 +--- !u!1 &1658335883 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1658335884} + - component: {fileID: 1658335886} + - component: {fileID: 1658335885} + m_Layer: 5 + m_Name: PoseName + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1658335884 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1658335883} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.05, y: 0.05, z: 0.05} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 2000586836} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -25, y: -30} + m_SizeDelta: {x: 1000, y: 1000} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1658335885 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1658335883} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 300 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 3 + m_MaxSize: 300 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Aim Pose +--- !u!222 &1658335886 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1658335883} + m_CullTransparentMesh: 0 +--- !u!1 &1664865452 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1664865453} + - component: {fileID: 1664865455} + - component: {fileID: 1664865454} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1664865453 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1664865452} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1819166721} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 85, y: 118} + m_SizeDelta: {x: 2000, y: 455.7} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1664865454 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1664865452} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 150 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 300 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Secondary + + Touch' +--- !u!222 &1664865455 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1664865452} + m_CullTransparentMesh: 0 +--- !u!1 &1677121082 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1677121083} + - component: {fileID: 1677121085} + - component: {fileID: 1677121084} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1677121083 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1677121082} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1634237469} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 85, y: 118} + m_SizeDelta: {x: 2000, y: 455.7} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1677121084 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1677121082} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 150 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 300 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Primary + + Press' +--- !u!222 &1677121085 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1677121082} + m_CullTransparentMesh: 0 +--- !u!1 &1677951213 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1677951214} + - component: {fileID: 1677951216} + - component: {fileID: 1677951215} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1677951214 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1677951213} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1544299174} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 88.5, y: 0} + m_SizeDelta: {x: 2000, y: 455.7} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1677951215 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1677951213} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 300 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 3 + m_MaxSize: 300 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Primary2DAxis +--- !u!222 &1677951216 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1677951213} + m_CullTransparentMesh: 0 +--- !u!1 &1682763412 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1682763413} + - component: {fileID: 1682763414} + m_Layer: 5 + m_Name: Secondary2DAxis + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1682763413 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1682763412} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 758075005} + - {fileID: 1530353198} + - {fileID: 1801364123} + m_Father: {fileID: 1835351604} + m_RootOrder: 7 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 100, y: 70} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1682763414 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1682763412} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 68ffad370daf7de4097bcd7cb411838c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionReference: {fileID: 5748190851293166289, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + xAxisSlider: {fileID: 1530353199} + yAxisSlider: {fileID: 1801364124} +--- !u!1 &1683143631 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1683143632} + - component: {fileID: 1683143633} + m_Layer: 5 + m_Name: ParkingTouch + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1683143632 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1683143631} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 2035208850} + - {fileID: 1072292398} + m_Father: {fileID: 352368721} + m_RootOrder: 13 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: -171} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1683143633 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1683143631} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1879fed0e0310334fb310daf7dcc4784, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionReference: {fileID: 1636192856678293987, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + enabledColor: {r: 0, g: 1, b: 0, a: 1} + disabledColor: {r: 1, g: 0, b: 0, a: 1} + image: {fileID: 1072292399} +--- !u!1 &1692129266 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1692129267} + - component: {fileID: 1692129268} + m_Layer: 5 + m_Name: Item + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1692129267 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1692129266} + m_LocalRotation: {x: 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: 1222032318} + - {fileID: 1983291911} + - {fileID: 44231289} + m_Father: {fileID: 1908342844} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1692129268 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1692129266} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9085046f02f69544eb97fd06b6048fe2, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1222032319} + toggleTransition: 1 + graphic: {fileID: 1983291912} + m_Group: {fileID: 0} + onValueChanged: + m_PersistentCalls: + m_Calls: [] + m_IsOn: 1 +--- !u!1 &1698140773 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1698140774} + - component: {fileID: 1698140777} + - component: {fileID: 1698140776} + - component: {fileID: 1698140775} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1698140774 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1698140773} + m_LocalRotation: {x: 0.5, y: -0.5, z: 0.5, w: 0.5} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.001, y: 0.001, z: 0.001} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1740875481} + m_Father: {fileID: 504995713} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 90, y: -90, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0.005} + m_SizeDelta: {x: 662, y: 423} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1698140775 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1698140773} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &1698140776 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1698140773} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 1 +--- !u!223 &1698140777 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1698140773} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 1629889848} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_VertexColorAlwaysGammaSpace: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!1 &1711581561 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1711581562} + - component: {fileID: 1711581563} + m_Layer: 5 + m_Name: Pressed + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1711581562 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1711581561} + m_LocalRotation: {x: -0, y: -0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 865529400} + m_Father: {fileID: 1143906618} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + 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!114 &1711581563 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1711581561} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1879fed0e0310334fb310daf7dcc4784, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionReference: {fileID: 6454596279149084813, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + enabledColor: {r: 0, g: 1, b: 0, a: 1} + disabledColor: {r: 1, g: 0, b: 0, a: 1} + image: {fileID: 865529401} +--- !u!1 &1712965472 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1712965473} + - component: {fileID: 1712965475} + - component: {fileID: 1712965474} + m_Layer: 5 + m_Name: Fill + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1712965473 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1712965472} + m_LocalRotation: {x: -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: 1413316930} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 10, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1712965474 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1712965472} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1712965475 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1712965472} + m_CullTransparentMesh: 0 +--- !u!1 &1713029773 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1713029778} + - component: {fileID: 1713029777} + - component: {fileID: 1713029776} + - component: {fileID: 1713029775} + - component: {fileID: 1713029774} + m_Layer: 5 + m_Name: RCanvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1713029774 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1713029773} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: afe3cda3e244f60419474164d6ba3b0b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 0 + m_CheckFor2DOcclusion: 0 + m_CheckFor3DOcclusion: 0 + m_MaxDistance: 1000 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 0 +--- !u!114 &1713029775 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1713029773} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &1713029776 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1713029773} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 1 +--- !u!223 &1713029777 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1713029773} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 1629889848} + 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_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &1713029778 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1713029773} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 3.05} + m_LocalScale: {x: 0.001, y: 0.001, z: 0.001} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1792614228} + - {fileID: 563979741} + - {fileID: 455892299} + - {fileID: 213573947} + - {fileID: 278428324} + - {fileID: 1179399500} + - {fileID: 2000875598} + - {fileID: 939391403} + - {fileID: 893504747} + m_Father: {fileID: 0} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 1.24} + m_SizeDelta: {x: 2000, y: 850} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1733373197 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1733373198} + - component: {fileID: 1733373200} + - component: {fileID: 1733373199} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1733373198 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1733373197} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 824263256} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 45, y: 120} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1733373199 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1733373197} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1733373200 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1733373197} + m_CullTransparentMesh: 0 +--- !u!1 &1740875480 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1740875481} + - component: {fileID: 1740875483} + - component: {fileID: 1740875482} + m_Layer: 5 + m_Name: PoseName + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1740875481 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1740875480} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.05, y: 0.05, z: 0.05} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1698140774} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -25, y: -30} + m_SizeDelta: {x: 1000, y: 1000} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1740875482 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1740875480} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 300 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 3 + m_MaxSize: 300 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Tracker 2 +--- !u!222 &1740875483 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1740875480} + m_CullTransparentMesh: 0 +--- !u!1 &1761205832 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1761205833} + m_Layer: 5 + m_Name: Fill Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1761205833 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1761205832} + m_LocalRotation: {x: -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: 1552428890} + m_Father: {fileID: 1466304301} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.25} + m_AnchorMax: {x: 1, y: 0.75} + m_AnchoredPosition: {x: -5, y: 0} + m_SizeDelta: {x: -20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1767764474 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1767764475} + - component: {fileID: 1767764477} + - component: {fileID: 1767764476} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1767764475 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1767764474} + m_LocalRotation: {x: -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: 2008885372} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1767764476 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1767764474} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1767764477 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1767764474} + m_CullTransparentMesh: 0 +--- !u!1 &1782194956 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1782194957} + - component: {fileID: 1782194960} + - component: {fileID: 1782194959} + - component: {fileID: 1782194958} + m_Layer: 5 + m_Name: ActionMapInfo + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1782194957 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1782194956} + m_LocalRotation: {x: 0.5, y: -0.5, z: 0.5, w: 0.5} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.001, y: 0.001, z: 0.001} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 824263256} + - {fileID: 746518473} + m_Father: {fileID: 82661892} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 90, y: -90, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0.005} + m_SizeDelta: {x: 1226, y: 740} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1782194958 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1782194956} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &1782194959 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1782194956} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 1 +--- !u!223 &1782194960 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1782194956} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 1629889848} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_VertexColorAlwaysGammaSpace: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!1 &1790101006 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1790101007} + m_Layer: 5 + m_Name: Handle Slide Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1790101007 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1790101006} + m_LocalRotation: {x: -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: 1432655218} + m_Father: {fileID: 46927545} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1792614227 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1792614228} + - component: {fileID: 1792614230} + - component: {fileID: 1792614229} + m_Layer: 5 + m_Name: BG + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1792614228 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1792614227} + m_LocalRotation: {x: 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: 1713029778} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1792614229 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1792614227} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1792614230 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1792614227} + m_CullTransparentMesh: 0 +--- !u!1 &1801364122 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1801364123} + - component: {fileID: 1801364124} + m_Layer: 5 + m_Name: ySlider + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1801364123 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1801364122} + m_LocalRotation: {x: 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: 1998164010} + - {fileID: 826677950} + - {fileID: 774266808} + m_Father: {fileID: 1682763413} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 160, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1801364124 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1801364122} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 67db9e8f0e2ae9c40bc1e2b64352a6b4, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1626656187} + m_FillRect: {fileID: 1994262122} + m_HandleRect: {fileID: 1626656186} + m_Direction: 0 + m_MinValue: -1 + m_MaxValue: 1 + m_WholeNumbers: 0 + m_Value: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &1811416232 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1811416233} + - component: {fileID: 1811416235} + - component: {fileID: 1811416234} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1811416233 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1811416232} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 213922205} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 88.5, y: 0} + m_SizeDelta: {x: 2000, y: 455.7} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1811416234 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1811416232} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 150 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 300 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Secondary2DAxis + + Touch' +--- !u!222 &1811416235 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1811416232} + m_CullTransparentMesh: 0 +--- !u!1 &1812704214 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1812704215} + - component: {fileID: 1812704216} + m_Layer: 5 + m_Name: SystemClick + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1812704215 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1812704214} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1136757562} + - {fileID: 949566131} + m_Father: {fileID: 1878284124} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 4} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1812704216 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1812704214} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1879fed0e0310334fb310daf7dcc4784, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionReference: {fileID: -2074503359615047585, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + enabledColor: {r: 0, g: 1, b: 0, a: 1} + disabledColor: {r: 1, g: 0, b: 0, a: 1} + image: {fileID: 949566132} +--- !u!1 &1814523967 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1814523968} + m_Layer: 5 + m_Name: Handle Slide Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1814523968 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1814523967} + m_LocalRotation: {x: -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: 1832197335} + m_Father: {fileID: 1530353198} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1819166720 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1819166721} + - component: {fileID: 1819166722} + m_Layer: 5 + m_Name: SecondaryTouch + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1819166721 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1819166720} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1664865453} + - {fileID: 330544254} + m_Father: {fileID: 352368721} + m_RootOrder: 12 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: -133} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1819166722 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1819166720} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1879fed0e0310334fb310daf7dcc4784, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionReference: {fileID: -5405649100492650258, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + enabledColor: {r: 0, g: 1, b: 0, a: 1} + disabledColor: {r: 1, g: 0, b: 0, a: 1} + image: {fileID: 330544255} +--- !u!1001 &1821506883 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 911429097} + m_Modifications: + - target: {fileID: 3201029004716767610, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_Mesh + value: + objectReference: {fileID: 3613567641014311022, guid: 815c9e4802ddea645a37bd99f011c9b4, type: 3} + - target: {fileID: 4346727372943234170, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.y + value: 0.1 + objectReference: {fileID: 0} + - target: {fileID: 4346727372952809589, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.y + value: 0.1 + objectReference: {fileID: 0} + - target: {fileID: 4346727373925079742, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.y + value: 0.1 + objectReference: {fileID: 0} + - target: {fileID: 4346727373925079742, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823546882, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_Name + value: PoseMarker + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.x + value: 0.4 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.y + value: 0.4 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.z + value: 0.4 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4640940940180935358, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6251018130860582685, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_Mesh + value: + objectReference: {fileID: 3613567641014311022, guid: 815c9e4802ddea645a37bd99f011c9b4, type: 3} + - target: {fileID: 6813102403969732157, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8595007410106638205, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_Mesh + value: + objectReference: {fileID: 3613567641014311022, guid: 815c9e4802ddea645a37bd99f011c9b4, type: 3} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} +--- !u!4 &1821506884 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + m_PrefabInstance: {fileID: 1821506883} + m_PrefabAsset: {fileID: 0} +--- !u!1 &1822725353 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1822725354} + - component: {fileID: 1822725356} + - component: {fileID: 1822725355} + m_Layer: 5 + m_Name: touched + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1822725354 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1822725353} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.25, y: 0.25, z: 0.025} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 213922205} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 62, y: -3} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1822725355 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1822725353} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1822725356 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1822725353} + m_CullTransparentMesh: 0 +--- !u!1 &1832197334 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1832197335} + - component: {fileID: 1832197337} + - component: {fileID: 1832197336} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1832197335 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1832197334} + m_LocalRotation: {x: -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: 1814523968} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1832197336 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1832197334} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1832197337 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1832197334} + m_CullTransparentMesh: 0 +--- !u!1 &1834382180 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1834382181} + - component: {fileID: 1834382182} + m_Layer: 5 + m_Name: SystemTouch + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1834382181 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1834382180} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1545250104} + - {fileID: 2122748014} + m_Father: {fileID: 314705564} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: -27} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1834382182 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1834382180} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1879fed0e0310334fb310daf7dcc4784, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionReference: {fileID: 6466770052570508134, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + enabledColor: {r: 0, g: 1, b: 0, a: 1} + disabledColor: {r: 1, g: 0, b: 0, a: 1} + image: {fileID: 2122748015} +--- !u!1 &1835351603 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1835351604} + - component: {fileID: 1835351607} + - component: {fileID: 1835351606} + - component: {fileID: 1835351605} + m_Layer: 5 + m_Name: ActionMapInfo + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1835351604 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1835351603} + m_LocalRotation: {x: 0.5, y: -0.5, z: 0.5, w: 0.5} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.001, y: 0.001, z: 0.001} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 433624928} + - {fileID: 1634237469} + - {fileID: 919387890} + - {fileID: 752151178} + - {fileID: 608486286} + - {fileID: 839516577} + - {fileID: 1838240540} + - {fileID: 1682763413} + - {fileID: 1840602435} + - {fileID: 213922205} + - {fileID: 1242110079} + - {fileID: 1573064748} + - {fileID: 1324573719} + - {fileID: 633741711} + - {fileID: 2046359620} + - {fileID: 1519900145} + m_Father: {fileID: 467465430} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 90, y: -90, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0.005} + m_SizeDelta: {x: 1226, y: 740} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1835351605 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1835351603} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &1835351606 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1835351603} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 1 +--- !u!223 &1835351607 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1835351603} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 1629889848} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_VertexColorAlwaysGammaSpace: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!1 &1838240539 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1838240540} + - component: {fileID: 1838240541} + m_Layer: 5 + m_Name: Primary2DAxisTouch + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1838240540 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1838240539} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 983217819} + - {fileID: 1543308791} + m_Father: {fileID: 1835351604} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 100, y: -128} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1838240541 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1838240539} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1879fed0e0310334fb310daf7dcc4784, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionReference: {fileID: 3873870584620388549, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + enabledColor: {r: 0, g: 1, b: 0, a: 1} + disabledColor: {r: 1, g: 0, b: 0, a: 1} + image: {fileID: 1543308792} +--- !u!1 &1840602434 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1840602435} + - component: {fileID: 1840602436} + m_Layer: 5 + m_Name: Secondary2DAxisClick + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1840602435 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1840602434} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1187241079} + - {fileID: 243798675} + m_Father: {fileID: 1835351604} + m_RootOrder: 8 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 100, y: 70} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1840602436 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1840602434} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1879fed0e0310334fb310daf7dcc4784, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionReference: {fileID: -3947085769738995516, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + enabledColor: {r: 0, g: 1, b: 0, a: 1} + disabledColor: {r: 1, g: 0, b: 0, a: 1} + image: {fileID: 243798676} +--- !u!1 &1844051287 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1844051288} + - component: {fileID: 1844051290} + - component: {fileID: 1844051289} + m_Layer: 5 + m_Name: Fill + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1844051288 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1844051287} + m_LocalRotation: {x: -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: 252507724} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 10, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1844051289 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1844051287} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1844051290 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1844051287} + m_CullTransparentMesh: 0 +--- !u!1 &1845834110 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1845834111} + - component: {fileID: 1845834113} + - component: {fileID: 1845834112} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1845834111 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1845834110} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 378491587} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 60, y: 66} + m_SizeDelta: {x: 2000, y: 455.7} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1845834112 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1845834110} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 150 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 300 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Secondary2DAxis + + Press' +--- !u!222 &1845834113 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1845834110} + m_CullTransparentMesh: 0 +--- !u!1 &1846808537 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1846808538} + m_Layer: 0 + m_Name: VisibleElements + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1846808538 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1846808537} + m_LocalRotation: {x: 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: 273403740} + - {fileID: 1225911832} + m_Father: {fileID: 605668737} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1848260723 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1848260724} + - component: {fileID: 1848260726} + - component: {fileID: 1848260725} + m_Layer: 5 + m_Name: clicked + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1848260724 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1848260723} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.25, y: 0.25, z: 0.025} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 839516577} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 33, y: 59} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1848260725 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1848260723} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1848260726 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1848260723} + m_CullTransparentMesh: 0 +--- !u!1001 &1867447512 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 544671023} + m_Modifications: + - target: {fileID: 5818550160992551307, guid: 5dc3dee3f9e01d341b7db5195a78b34e, type: 3} + propertyPath: m_Name + value: Vive_UltimateTracker + objectReference: {fileID: 0} + - target: {fileID: 6626048664893692721, guid: 5dc3dee3f9e01d341b7db5195a78b34e, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6626048664893692721, guid: 5dc3dee3f9e01d341b7db5195a78b34e, type: 3} + propertyPath: m_LocalPosition.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 6626048664893692721, guid: 5dc3dee3f9e01d341b7db5195a78b34e, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6626048664893692721, guid: 5dc3dee3f9e01d341b7db5195a78b34e, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6626048664893692721, guid: 5dc3dee3f9e01d341b7db5195a78b34e, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6626048664893692721, guid: 5dc3dee3f9e01d341b7db5195a78b34e, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6626048664893692721, guid: 5dc3dee3f9e01d341b7db5195a78b34e, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 6626048664893692721, guid: 5dc3dee3f9e01d341b7db5195a78b34e, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 6626048664893692721, guid: 5dc3dee3f9e01d341b7db5195a78b34e, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6626048664893692721, guid: 5dc3dee3f9e01d341b7db5195a78b34e, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6626048664893692721, guid: 5dc3dee3f9e01d341b7db5195a78b34e, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 5dc3dee3f9e01d341b7db5195a78b34e, type: 3} +--- !u!4 &1867447513 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 6626048664893692721, guid: 5dc3dee3f9e01d341b7db5195a78b34e, type: 3} + m_PrefabInstance: {fileID: 1867447512} + m_PrefabAsset: {fileID: 0} +--- !u!1 &1873450930 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1873450931} + - component: {fileID: 1873450933} + - component: {fileID: 1873450932} + m_Layer: 0 + m_Name: RightController + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1873450931 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1873450930} + m_LocalRotation: {x: 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: 848665809} + m_Father: {fileID: 640969809} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1873450932 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1873450930} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 873a88a3d45610d4489a58d37c448415, type: 3} + m_Name: + m_EditorClassIdentifier: + IsLeft: 0 + m_IsActive: {fileID: -1219534774619098812, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_TrackingState: {fileID: 7186331274470829537, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_ObjectToHide: {fileID: 848665808} +--- !u!114 &1873450933 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1873450930} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a71a8cacc8de6e9449396d7cd616b05e, type: 3} + m_Name: + m_EditorClassIdentifier: + action: {fileID: 6454596279149084813, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + _amplitude: 1 + _duration: 0.1 +--- !u!1 &1878284123 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1878284124} + - component: {fileID: 1878284127} + - component: {fileID: 1878284126} + - component: {fileID: 1878284125} + m_Layer: 5 + m_Name: ActionMapInfo + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1878284124 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1878284123} + m_LocalRotation: {x: 0.5, y: -0.5, z: 0.5, w: 0.5} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.001, y: 0.001, z: 0.001} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1812704215} + - {fileID: 63968658} + m_Father: {fileID: 516537534} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 90, y: -90, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0.005} + m_SizeDelta: {x: 1226, y: 740} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1878284125 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1878284123} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &1878284126 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1878284123} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 1 +--- !u!223 &1878284127 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1878284123} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 1629889848} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_VertexColorAlwaysGammaSpace: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!1001 &1880084407 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 467465430} + m_Modifications: + - target: {fileID: 4346727374823546882, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_Name + value: PoseMarker + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.z + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} +--- !u!4 &1880084408 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + m_PrefabInstance: {fileID: 1880084407} + m_PrefabAsset: {fileID: 0} +--- !u!1 &1882729585 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1882729586} + - component: {fileID: 1882729588} + - component: {fileID: 1882729587} + 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 &1882729586 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1882729585} + m_LocalRotation: {x: 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: 278428324} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1882729587 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1882729585} + 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: Quality:0.50 + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 50 + m_fontSizeBase: 50 + 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 &1882729588 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1882729585} + m_CullTransparentMesh: 1 +--- !u!1 &1886266784 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1886266785} + - component: {fileID: 1886266786} + m_Layer: 5 + m_Name: SystemTouch + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1886266785 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1886266784} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 174176083} + - {fileID: 2006892655} + m_Father: {fileID: 781289366} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: -27} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1886266786 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1886266784} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1879fed0e0310334fb310daf7dcc4784, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionReference: {fileID: 4006316368413913923, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + enabledColor: {r: 0, g: 1, b: 0, a: 1} + disabledColor: {r: 1, g: 0, b: 0, a: 1} + image: {fileID: 2006892656} +--- !u!1 &1890512585 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1890512586} + - component: {fileID: 1890512587} + m_Layer: 5 + m_Name: Secondary2DAxisTouch + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1890512586 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1890512585} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1947307121} + - {fileID: 1392846556} + m_Father: {fileID: 352368721} + m_RootOrder: 9 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 85, y: 37} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1890512587 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1890512585} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1879fed0e0310334fb310daf7dcc4784, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionReference: {fileID: -1091252228470322465, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + enabledColor: {r: 0, g: 1, b: 0, a: 1} + disabledColor: {r: 1, g: 0, b: 0, a: 1} + image: {fileID: 1392846557} +--- !u!1 &1905505352 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1905505353} + - component: {fileID: 1905505355} + - component: {fileID: 1905505354} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1905505353 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1905505352} + m_LocalRotation: {x: -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: 1978669976} + m_Father: {fileID: 840930403} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1905505354 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1905505352} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1905505355 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1905505352} + m_CullTransparentMesh: 0 +--- !u!1 &1907322143 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1907322144} + m_Layer: 5 + m_Name: Handle Slide Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1907322144 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1907322143} + m_LocalRotation: {x: -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: 565353135} + m_Father: {fileID: 1466304301} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1908342843 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1908342844} + m_Layer: 5 + m_Name: Content + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1908342844 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1908342843} + m_LocalRotation: {x: 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: 1692129267} + m_Father: {fileID: 853191321} + m_RootOrder: 0 + 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: 0} + m_SizeDelta: {x: 0, y: 100} + m_Pivot: {x: 0.5, y: 1} +--- !u!1 &1916106687 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1916106688} + - component: {fileID: 1916106690} + - component: {fileID: 1916106689} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1916106688 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1916106687} + m_LocalRotation: {x: -0, y: -0, z: 0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.8, y: 0.8, z: 0.8} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 557108721} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1916106689 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1916106687} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1916106690 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1916106687} + m_CullTransparentMesh: 0 +--- !u!1 &1916608835 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1916608836} + m_Layer: 5 + m_Name: Handle Slide Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1916608836 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1916608835} + m_LocalRotation: {x: -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: 1969305939} + m_Father: {fileID: 725263209} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1916663680 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1916663681} + - component: {fileID: 1916663683} + - component: {fileID: 1916663682} + m_Layer: 5 + m_Name: PoseName + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1916663681 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1916663680} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.05, y: 0.05, z: 0.05} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 352368721} + m_RootOrder: 15 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -25, y: 30} + m_SizeDelta: {x: 1000, y: 1000} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1916663682 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1916663680} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 300 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 3 + m_MaxSize: 300 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Grip Pose +--- !u!222 &1916663683 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1916663680} + m_CullTransparentMesh: 0 +--- !u!1 &1932223631 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1932223632} + m_Layer: 0 + m_Name: WristTracker + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1932223632 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1932223631} + m_LocalRotation: {x: 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: 548482650} + - {fileID: 1310851285} + m_Father: {fileID: 640969809} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1934135423 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1934135426} + - component: {fileID: 1934135425} + - component: {fileID: 1934135424} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1934135424 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1934135423} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 01614664b831546d2ae94a42149d80ac, type: 3} + m_Name: + m_EditorClassIdentifier: + m_SendPointerHoverToParent: 1 + m_MoveRepeatDelay: 0.5 + m_MoveRepeatRate: 0.1 + m_XRTrackingOrigin: {fileID: 0} + m_ActionsAsset: {fileID: -944628639613478452, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_PointAction: {fileID: 0} + m_MoveAction: {fileID: 0} + m_SubmitAction: {fileID: 0} + m_CancelAction: {fileID: 0} + m_LeftClickAction: {fileID: -9199573721968962783, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_MiddleClickAction: {fileID: 0} + m_RightClickAction: {fileID: 0} + m_ScrollWheelAction: {fileID: 0} + m_TrackedDevicePositionAction: {fileID: 1162393666371849595, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_TrackedDeviceOrientationAction: {fileID: -8081773802841398021, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_DeselectOnBackgroundClick: 1 + m_PointerBehavior: 0 + m_CursorLockBehavior: 0 +--- !u!114 &1934135425 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1934135423} + 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 &1934135426 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1934135423} + m_LocalRotation: {x: 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_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1947307120 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1947307121} + - component: {fileID: 1947307123} + - component: {fileID: 1947307122} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1947307121 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1947307120} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1890512586} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 88.5, y: 0} + m_SizeDelta: {x: 2000, y: 455.7} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1947307122 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1947307120} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 150 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 300 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Secondary2DAxis + + Touch' +--- !u!222 &1947307123 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1947307120} + m_CullTransparentMesh: 0 +--- !u!1 &1960966490 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1960966491} + - component: {fileID: 1960966492} + m_Layer: 5 + m_Name: ySlider + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1960966491 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1960966490} + m_LocalRotation: {x: 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: 1503002683} + - {fileID: 1227224237} + - {fileID: 1645869179} + m_Father: {fileID: 220459911} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 160, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1960966492 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1960966490} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 67db9e8f0e2ae9c40bc1e2b64352a6b4, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 290467454} + m_FillRect: {fileID: 626047879} + m_HandleRect: {fileID: 290467453} + m_Direction: 0 + m_MinValue: -1 + m_MaxValue: 1 + m_WholeNumbers: 0 + m_Value: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &1969305938 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1969305939} + - component: {fileID: 1969305941} + - component: {fileID: 1969305940} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1969305939 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1969305938} + m_LocalRotation: {x: -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: 741354469} + m_Father: {fileID: 1916608836} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1969305940 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1969305938} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1969305941 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1969305938} + m_CullTransparentMesh: 0 +--- !u!1 &1970462317 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1970462318} + - component: {fileID: 1970462320} + - component: {fileID: 1970462319} + m_Layer: 5 + m_Name: Arrow + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1970462318 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1970462317} + m_LocalRotation: {x: 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: 455892299} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -15, y: 0} + m_SizeDelta: {x: 20, y: 150} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1970462319 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1970462317} + 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: 10915, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1970462320 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1970462317} + m_CullTransparentMesh: 1 +--- !u!1 &1973051707 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1973051708} + - component: {fileID: 1973051710} + - component: {fileID: 1973051709} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1973051708 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1973051707} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 2099037705} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 85, y: 118} + m_SizeDelta: {x: 2000, y: 455.7} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1973051709 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1973051707} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 150 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 300 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'System + + Press' +--- !u!222 &1973051710 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1973051707} + m_CullTransparentMesh: 0 +--- !u!1 &1975217964 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1975217965} + - component: {fileID: 1975217966} + m_Layer: 0 + m_Name: XRTracker + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1975217965 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1975217964} + m_LocalRotation: {x: -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: 1312014152} + - {fileID: 104999843} + - {fileID: 1311375921} + - {fileID: 660298549} + - {fileID: 1369334815} + m_Father: {fileID: 640969809} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1975217966 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1975217964} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d53a5bd8aa792be48acb949920405d68, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ObjectInfos: + - DeviceIndex: 0 + IsActive: {fileID: -4075331206353396614, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + TrackingState: {fileID: 1892801136238123075, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + ObjectToHide: {fileID: 1312014151} + - DeviceIndex: 1 + IsActive: {fileID: 4282205522676104102, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + TrackingState: {fileID: -633232421337915597, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + ObjectToHide: {fileID: 104999842} + - DeviceIndex: 2 + IsActive: {fileID: -2751704700927415866, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + TrackingState: {fileID: 3930846034774602431, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + ObjectToHide: {fileID: 1311375920} + - DeviceIndex: 3 + IsActive: {fileID: -4035614722232820992, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + TrackingState: {fileID: -2295886707305085291, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + ObjectToHide: {fileID: 660298548} + - DeviceIndex: 4 + IsActive: {fileID: -7345373580490958299, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + TrackingState: {fileID: -8781820432748197562, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + ObjectToHide: {fileID: 1369334814} +--- !u!1 &1978669975 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1978669976} + - component: {fileID: 1978669977} + m_Layer: 5 + m_Name: Touched + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1978669976 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1978669975} + m_LocalRotation: {x: -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: 1143906618} + m_Father: {fileID: 1905505353} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + 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!114 &1978669977 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1978669975} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1879fed0e0310334fb310daf7dcc4784, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionReference: {fileID: 6960837491323481197, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + enabledColor: {r: 0, g: 1, b: 0, a: 1} + disabledColor: {r: 1, g: 0, b: 0, a: 1} + image: {fileID: 1143906619} +--- !u!1 &1983291910 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1983291911} + - component: {fileID: 1983291913} + - component: {fileID: 1983291912} + m_Layer: 5 + m_Name: Item Checkmark + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1983291911 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1983291910} + m_LocalRotation: {x: 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: 1692129267} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 10, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1983291912 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1983291910} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10901, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1983291913 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1983291910} + m_CullTransparentMesh: 1 +--- !u!1 &1983919237 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1983919238} + - component: {fileID: 1983919239} + m_Layer: 5 + m_Name: xSlider + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1983919238 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1983919237} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 460669360} + - {fileID: 545633997} + - {fileID: 841739899} + m_Father: {fileID: 220459911} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + 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: 160, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1983919239 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1983919237} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 67db9e8f0e2ae9c40bc1e2b64352a6b4, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1414389965} + m_FillRect: {fileID: 1532342230} + m_HandleRect: {fileID: 1414389964} + m_Direction: 0 + m_MinValue: -1 + m_MaxValue: 1 + m_WholeNumbers: 0 + m_Value: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &1984975652 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1984975653} + m_Layer: 5 + m_Name: Fill Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1984975653 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1984975652} + m_LocalRotation: {x: -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: 50973810} + m_Father: {fileID: 1417655270} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.25} + m_AnchorMax: {x: 1, y: 0.75} + m_AnchoredPosition: {x: -5, y: 0} + m_SizeDelta: {x: -20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1987598255 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1987598256} + - component: {fileID: 1987598257} + m_Layer: 5 + m_Name: Touched + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1987598256 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1987598255} + m_LocalRotation: {x: -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: 1459580598} + m_Father: {fileID: 565353135} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1987598257 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1987598255} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1879fed0e0310334fb310daf7dcc4784, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionReference: {fileID: 5862474197572769877, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + enabledColor: {r: 0, g: 1, b: 0, a: 1} + disabledColor: {r: 1, g: 0, b: 0, a: 1} + image: {fileID: 1459580599} +--- !u!1 &1994262121 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1994262122} + - component: {fileID: 1994262124} + - component: {fileID: 1994262123} + m_Layer: 5 + m_Name: Fill + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1994262122 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1994262121} + m_LocalRotation: {x: -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: 826677950} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 10, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1994262123 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1994262121} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1994262124 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1994262121} + m_CullTransparentMesh: 0 +--- !u!1 &1998164009 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1998164010} + - component: {fileID: 1998164012} + - component: {fileID: 1998164011} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1998164010 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1998164009} + m_LocalRotation: {x: -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: 1801364123} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.25} + m_AnchorMax: {x: 1, y: 0.75} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1998164011 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1998164009} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1998164012 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1998164009} + m_CullTransparentMesh: 0 +--- !u!1 &2000586835 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2000586836} + - component: {fileID: 2000586839} + - component: {fileID: 2000586838} + - component: {fileID: 2000586837} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2000586836 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2000586835} + m_LocalRotation: {x: 0.5, y: -0.5, z: 0.5, w: 0.5} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.001, y: 0.001, z: 0.001} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1658335884} + m_Father: {fileID: 743632514} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 90, y: -90, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0.005} + m_SizeDelta: {x: 662, y: 423} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2000586837 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2000586835} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &2000586838 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2000586835} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 1 +--- !u!223 &2000586839 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2000586835} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 1629889848} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_VertexColorAlwaysGammaSpace: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!1 &2000875597 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2000875598} + - component: {fileID: 2000875601} + - component: {fileID: 2000875600} + - component: {fileID: 2000875599} + m_Layer: 5 + m_Name: Button (3) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2000875598 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2000875597} + m_LocalRotation: {x: 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: 1289704353} + m_Father: {fileID: 1713029778} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 550.7, y: -6} + m_SizeDelta: {x: 350, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2000875599 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2000875597} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 2000875600} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1569182637} + m_TargetAssemblyTypeName: Passthrough_manager, VIVE.OpenXR.Samples + m_MethodName: Set_Quality4 + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!114 &2000875600 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2000875597} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &2000875601 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2000875597} + m_CullTransparentMesh: 1 +--- !u!1 &2006892654 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2006892655} + - component: {fileID: 2006892657} + - component: {fileID: 2006892656} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2006892655 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2006892654} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1886266785} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 45, y: 120} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2006892656 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2006892654} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &2006892657 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2006892654} + m_CullTransparentMesh: 0 +--- !u!1 &2008885371 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2008885372} + m_Layer: 5 + m_Name: Handle Slide Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2008885372 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2008885371} + m_LocalRotation: {x: -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: 1767764475} + m_Father: {fileID: 1275690188} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &2035208849 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2035208850} + - component: {fileID: 2035208852} + - component: {fileID: 2035208851} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2035208850 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2035208849} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1683143632} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 85, y: 118} + m_SizeDelta: {x: 2000, y: 455.7} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2035208851 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2035208849} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 150 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 300 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Parking + + Touch' +--- !u!222 &2035208852 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2035208849} + m_CullTransparentMesh: 0 +--- !u!1 &2046359619 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2046359620} + - component: {fileID: 2046359623} + - component: {fileID: 2046359622} + - component: {fileID: 2046359621} + m_Layer: 5 + m_Name: DeviceInfo + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2046359620 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2046359619} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.05, y: 0.05, z: 0.05} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1835351604} + m_RootOrder: 14 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 260, y: 0} + m_SizeDelta: {x: 10000, y: 1400} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2046359621 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2046359619} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 750fa446a80705b45a3059b8f87e989a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Property: + m_UseReference: 0 + m_Action: + m_Name: Property + m_Type: 0 + m_ExpectedControlType: + m_Id: f84292a7-bba3-4459-9093-88fe0e18958d + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: aadf2e66-314d-43ac-9af7-b97d6b2bdece + m_Path: {rightHand}/isTracked + m_Interactions: + m_Processors: + m_Groups: + m_Action: Property + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: 0} + m_RootObject: {fileID: 0} + m_TargetText: {fileID: 2046359622} +--- !u!114 &2046359622 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2046359619} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 300 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 300 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Name + + Manufacturer + + Characteristics + + Serial Number' +--- !u!222 &2046359623 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2046359619} + m_CullTransparentMesh: 0 +--- !u!1 &2055707455 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2055707456} + - component: {fileID: 2055707458} + - component: {fileID: 2055707457} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2055707456 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2055707455} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 633741711} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 45, y: 120} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2055707457 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2055707455} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &2055707458 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2055707455} + m_CullTransparentMesh: 0 +--- !u!1 &2061362646 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2061362647} + - component: {fileID: 2061362650} + - component: {fileID: 2061362649} + - component: {fileID: 2061362648} + m_Layer: 0 + m_Name: LeftPointer + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2061362647 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2061362646} + m_LocalRotation: {x: 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: 1295195355} + m_Father: {fileID: 928529783} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &2061362648 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2061362646} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3d1efc78bbff2cc4eb930103b4111b67, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 0 + m_PhysicsCastDistance: 100 + m_PhysicsEventMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_ShowRay: 1 + m_RayStartWidth: 0.01 + m_RayEndWidth: 0.01 + m_RayMaterial: {fileID: 10306, guid: 0000000000000000f000000000000000, type: 0} + m_Pointer: {fileID: 1295195354} + IsLeft: 1 + m_UsePose: 1 + m_AimPose: {fileID: -7749099873530262829, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_PinchStrength: {fileID: 5411044373122788356, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_PinchThreshold: 0.5 + m_AlwaysEnable: 0 +--- !u!20 &2061362649 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2061362646} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 0 + orthographic size: 5 + m_Depth: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!120 &2061362650 +LineRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2061362646} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 0 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Positions: + - {x: 0, y: 0, z: 0} + - {x: 0, y: 0, z: 1} + m_Parameters: + serializedVersion: 3 + widthMultiplier: 1 + widthCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0.01036503 + value: 0.01029409 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + numCornerVertices: 0 + numCapVertices: 0 + alignment: 0 + textureMode: 0 + shadowBias: 0.5 + generateLightingData: 0 + m_UseWorldSpace: 1 + m_Loop: 0 +--- !u!1 &2072469933 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2072469934} + - component: {fileID: 2072469935} + m_Layer: 5 + m_Name: PrimaryButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2072469934 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2072469933} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1528897136} + - {fileID: 1028758675} + m_Father: {fileID: 352368721} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 4} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2072469935 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2072469933} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1879fed0e0310334fb310daf7dcc4784, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionReference: {fileID: 5113088590926889233, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + enabledColor: {r: 0, g: 1, b: 0, a: 1} + disabledColor: {r: 1, g: 0, b: 0, a: 1} + image: {fileID: 1028758676} +--- !u!1 &2091039131 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2091039132} + - component: {fileID: 2091039134} + - component: {fileID: 2091039133} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2091039132 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2091039131} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 752151178} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 85, y: 118} + m_SizeDelta: {x: 2000, y: 455.7} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2091039133 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2091039131} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 300 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 300 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Menu +--- !u!222 &2091039134 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2091039131} + m_CullTransparentMesh: 0 +--- !u!1 &2093332000 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2093332001} + - component: {fileID: 2093332003} + - component: {fileID: 2093332002} + m_Layer: 5 + m_Name: Label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2093332001 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2093332000} + m_LocalRotation: {x: 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: 455892299} + 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: -7.5, y: -0.5} + m_SizeDelta: {x: -35, y: -13} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2093332002 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2093332000} + 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: Option A + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 50 + m_fontSizeBase: 50 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + 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 &2093332003 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2093332000} + m_CullTransparentMesh: 1 +--- !u!1001 &2094137685 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 516537534} + m_Modifications: + - target: {fileID: 3201029004716767610, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_Mesh + value: + objectReference: {fileID: 3613567641014311022, guid: 815c9e4802ddea645a37bd99f011c9b4, type: 3} + - target: {fileID: 4346727372943234170, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.y + value: 0.2 + objectReference: {fileID: 0} + - target: {fileID: 4346727372952809589, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.y + value: 0.2 + objectReference: {fileID: 0} + - target: {fileID: 4346727373925079742, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.y + value: 0.3 + objectReference: {fileID: 0} + - target: {fileID: 4346727373925079742, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823546882, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_Name + value: PoseMarker + objectReference: {fileID: 0} + - target: {fileID: 4346727374823546882, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_RootOrder + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalScale.z + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6251018130860582685, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_Mesh + value: + objectReference: {fileID: 3613567641014311022, guid: 815c9e4802ddea645a37bd99f011c9b4, type: 3} + - target: {fileID: 8595007410106638205, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + propertyPath: m_Mesh + value: + objectReference: {fileID: 3613567641014311022, guid: 815c9e4802ddea645a37bd99f011c9b4, type: 3} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} +--- !u!4 &2094137686 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4346727374823547005, guid: bb80d5486fc7a7f428255d7f539caf18, type: 3} + m_PrefabInstance: {fileID: 2094137685} + m_PrefabAsset: {fileID: 0} +--- !u!1 &2096466540 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2096466541} + - component: {fileID: 2096466543} + - component: {fileID: 2096466542} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2096466541 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2096466540} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 608486286} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 88.5, y: 0} + m_SizeDelta: {x: 2000, y: 455.7} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2096466542 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2096466540} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 300 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 3 + m_MaxSize: 300 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Primary2DAxis +--- !u!222 &2096466543 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2096466540} + m_CullTransparentMesh: 0 +--- !u!1 &2099037704 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2099037705} + - component: {fileID: 2099037706} + m_Layer: 5 + m_Name: SystemClick + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2099037705 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2099037704} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1973051708} + - {fileID: 1321816051} + m_Father: {fileID: 608532620} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 4} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2099037706 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2099037704} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1879fed0e0310334fb310daf7dcc4784, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionReference: {fileID: -1359020159613672713, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + enabledColor: {r: 0, g: 1, b: 0, a: 1} + disabledColor: {r: 1, g: 0, b: 0, a: 1} + image: {fileID: 1321816052} +--- !u!1 &2117219782 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2117219783} + - component: {fileID: 2117219785} + - component: {fileID: 2117219784} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2117219783 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2117219782} + m_LocalRotation: {x: -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: 46927545} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.25} + m_AnchorMax: {x: 1, y: 0.75} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2117219784 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2117219782} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &2117219785 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2117219782} + m_CullTransparentMesh: 0 +--- !u!1 &2122748013 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2122748014} + - component: {fileID: 2122748016} + - component: {fileID: 2122748015} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2122748014 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2122748013} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1834382181} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 45, y: 120} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2122748015 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2122748013} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &2122748016 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2122748013} + m_CullTransparentMesh: 0 +--- !u!1 &2129550139 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2129550140} + - component: {fileID: 2129550142} + - component: {fileID: 2129550141} + m_Layer: 5 + m_Name: PoseName + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2129550140 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2129550139} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.05, y: 0.05, z: 0.05} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1549915741} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -25, y: -30} + m_SizeDelta: {x: 1000, y: 1000} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2129550141 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2129550139} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 300 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 3 + m_MaxSize: 300 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Tracker 1 +--- !u!222 &2129550142 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2129550139} + m_CullTransparentMesh: 0 diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Passthrough/Scenes/Passthrough_Configuration.unity.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Passthrough/Scenes/Passthrough_Configuration.unity.meta new file mode 100644 index 0000000..cec43c3 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Passthrough/Scenes/Passthrough_Configuration.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 37fafa14ce44e084c9515a88ebfae47c +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Passthrough/Scripts/PassthroughSample_Planar.cs b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Passthrough/Scripts/PassthroughSample_Planar.cs index 0189377..e8b97bd 100644 --- a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Passthrough/Scripts/PassthroughSample_Planar.cs +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Passthrough/Scripts/PassthroughSample_Planar.cs @@ -1,23 +1,19 @@ -using System.Collections; -using System.Collections.Generic; +// Copyright HTC Corporation All Rights Reserved. + using UnityEngine; -using VIVE.OpenXR.CompositionLayer; -using VIVE.OpenXR.CompositionLayer.Passthrough; - +using VIVE.OpenXR.Passthrough; using VIVE.OpenXR.Samples; namespace VIVE.OpenXR.CompositionLayer.Samples.Passthrough { public class PassthroughSample_Planar : MonoBehaviour { - private int activePassthroughID = 0; + private OpenXR.Passthrough.XrPassthroughHTC activePassthroughID = 0; private LayerType currentActiveLayerType = LayerType.Underlay; private void Update() { - - if (VRSInputManager.instance.GetButtonDown(VRSButtonReference.B)) //Set Passthrough as Overlay { SetPassthroughToOverlay(); @@ -37,7 +33,7 @@ namespace VIVE.OpenXR.CompositionLayer.Samples.Passthrough { if(activePassthroughID != 0) { - CompositionLayerPassthroughAPI.DestroyPassthrough(activePassthroughID); + PassthroughAPI.DestroyPassthrough(activePassthroughID); activePassthroughID = 0; } } @@ -47,7 +43,7 @@ namespace VIVE.OpenXR.CompositionLayer.Samples.Passthrough { if (activePassthroughID != 0) { - CompositionLayerPassthroughAPI.SetPassthroughLayerType(activePassthroughID, LayerType.Overlay); + PassthroughAPI.SetPassthroughLayerType(activePassthroughID, LayerType.Overlay); currentActiveLayerType = LayerType.Overlay; } } @@ -56,19 +52,19 @@ namespace VIVE.OpenXR.CompositionLayer.Samples.Passthrough { if (activePassthroughID != 0) { - CompositionLayerPassthroughAPI.SetPassthroughLayerType(activePassthroughID, LayerType.Underlay); + PassthroughAPI.SetPassthroughLayerType(activePassthroughID, LayerType.Underlay); currentActiveLayerType = LayerType.Underlay; } } void StartPassthrough() { - activePassthroughID = CompositionLayerPassthroughAPI.CreatePlanarPassthrough(currentActiveLayerType, OnDestroyPassthroughFeatureSession); + PassthroughAPI.CreatePlanarPassthrough(out activePassthroughID, currentActiveLayerType, OnDestroyPassthroughFeatureSession); } - void OnDestroyPassthroughFeatureSession(int passthroughID) + void OnDestroyPassthroughFeatureSession(OpenXR.Passthrough.XrPassthroughHTC passthroughID) { - CompositionLayerPassthroughAPI.DestroyPassthrough(passthroughID); + PassthroughAPI.DestroyPassthrough(passthroughID); activePassthroughID = 0; } } diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Passthrough/Scripts/PassthroughSample_Projection.cs b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Passthrough/Scripts/PassthroughSample_Projection.cs index 8de4007..2584b7f 100644 --- a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Passthrough/Scripts/PassthroughSample_Projection.cs +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Passthrough/Scripts/PassthroughSample_Projection.cs @@ -1,10 +1,9 @@ -using System.Collections; -using System.Collections.Generic; +// Copyright HTC Corporation All Rights Reserved. + using UnityEngine; using UnityEngine.UI; -using VIVE.OpenXR.CompositionLayer; -using VIVE.OpenXR.CompositionLayer.Passthrough; +using VIVE.OpenXR.Passthrough; using VIVE.OpenXR.Samples; namespace VIVE.OpenXR.CompositionLayer.Samples.Passthrough @@ -21,7 +20,7 @@ namespace VIVE.OpenXR.CompositionLayer.Samples.Passthrough private Vector3 scale = Vector3.one; private float scaleModifier = 1f; - private int activePassthroughID = 0; + private OpenXR.Passthrough.XrPassthroughHTC activePassthroughID = 0; private LayerType currentActiveLayerType = LayerType.Underlay; private ProjectedPassthroughSpaceType currentActiveSpaceType = ProjectedPassthroughSpaceType.Worldlock; @@ -69,7 +68,7 @@ namespace VIVE.OpenXR.CompositionLayer.Samples.Passthrough { if (activePassthroughID != 0) { - CompositionLayerPassthroughAPI.DestroyPassthrough(activePassthroughID); + PassthroughAPI.DestroyPassthrough(activePassthroughID); activePassthroughID = 0; } } @@ -79,7 +78,7 @@ namespace VIVE.OpenXR.CompositionLayer.Samples.Passthrough { if (activePassthroughID != 0) { - CompositionLayerPassthroughAPI.SetPassthroughLayerType(activePassthroughID, LayerType.Overlay); + PassthroughAPI.SetPassthroughLayerType(activePassthroughID, LayerType.Overlay); currentActiveLayerType = LayerType.Overlay; } } @@ -88,7 +87,7 @@ namespace VIVE.OpenXR.CompositionLayer.Samples.Passthrough { if (activePassthroughID != 0) { - CompositionLayerPassthroughAPI.SetPassthroughLayerType(activePassthroughID, LayerType.Underlay); + PassthroughAPI.SetPassthroughLayerType(activePassthroughID, LayerType.Underlay); currentActiveLayerType = LayerType.Underlay; } } @@ -97,7 +96,7 @@ namespace VIVE.OpenXR.CompositionLayer.Samples.Passthrough { if (activePassthroughID != 0) { - if (CompositionLayerPassthroughAPI.SetProjectedPassthroughSpaceType(activePassthroughID, ProjectedPassthroughSpaceType.Headlock)) + if (PassthroughAPI.SetProjectedPassthroughSpaceType(activePassthroughID, ProjectedPassthroughSpaceType.Headlock)) { passthroughMeshTransform.SetParent(hmd.transform); @@ -110,7 +109,7 @@ namespace VIVE.OpenXR.CompositionLayer.Samples.Passthrough { if (activePassthroughID != 0) { - if (CompositionLayerPassthroughAPI.SetProjectedPassthroughSpaceType(activePassthroughID, ProjectedPassthroughSpaceType.Worldlock)) + if (PassthroughAPI.SetProjectedPassthroughSpaceType(activePassthroughID, ProjectedPassthroughSpaceType.Worldlock)) { passthroughMeshTransform.SetParent(null); @@ -131,30 +130,30 @@ namespace VIVE.OpenXR.CompositionLayer.Samples.Passthrough void StartPassthrough() { - activePassthroughID = CompositionLayerPassthroughAPI.CreateProjectedPassthrough(currentActiveLayerType, OnDestroyPassthroughFeatureSession); + PassthroughAPI.CreateProjectedPassthrough(out activePassthroughID, currentActiveLayerType, OnDestroyPassthroughFeatureSession); SetPassthroughMesh(); } void SetPassthroughMesh() { - CompositionLayerPassthroughAPI.SetProjectedPassthroughMesh(activePassthroughID, passthroughMesh.vertices, passthroughMesh.triangles); + PassthroughAPI.SetProjectedPassthroughMesh(activePassthroughID, passthroughMesh.vertices, passthroughMesh.triangles); switch (currentActiveSpaceType) { case ProjectedPassthroughSpaceType.Headlock: //Apply HMD offset Vector3 relativePosition = hmd.transform.InverseTransformPoint(passthroughMeshTransform.transform.position); Quaternion relativeRotation = Quaternion.Inverse(hmd.transform.rotation).normalized * passthroughMeshTransform.transform.rotation.normalized; - CompositionLayerPassthroughAPI.SetProjectedPassthroughMeshTransform(activePassthroughID, currentActiveSpaceType, relativePosition, relativeRotation, scale * scaleModifier, false); + PassthroughAPI.SetProjectedPassthroughMeshTransform(activePassthroughID, currentActiveSpaceType, relativePosition, relativeRotation, scale * scaleModifier, false); break; case ProjectedPassthroughSpaceType.Worldlock: default: - CompositionLayerPassthroughAPI.SetProjectedPassthroughMeshTransform(activePassthroughID, currentActiveSpaceType, passthroughMeshTransform.transform.position, passthroughMeshTransform.transform.rotation, scale * scaleModifier); + PassthroughAPI.SetProjectedPassthroughMeshTransform(activePassthroughID, currentActiveSpaceType, passthroughMeshTransform.transform.position, passthroughMeshTransform.transform.rotation, scale * scaleModifier); break; } } - void OnDestroyPassthroughFeatureSession(int passthroughID) + void OnDestroyPassthroughFeatureSession(OpenXR.Passthrough.XrPassthroughHTC passthrough) { - CompositionLayerPassthroughAPI.DestroyPassthrough(passthroughID); + PassthroughAPI.DestroyPassthrough(passthrough); activePassthroughID = 0; } } diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Passthrough/Scripts/Passthrough_manager.cs b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Passthrough/Scripts/Passthrough_manager.cs new file mode 100644 index 0000000..39783f3 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Passthrough/Scripts/Passthrough_manager.cs @@ -0,0 +1,243 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Runtime.InteropServices; +using TMPro; +using UnityEngine; +using UnityEngine.UI; +using VIVE.OpenXR; +using VIVE.OpenXR.CompositionLayer; +using VIVE.OpenXR.Passthrough; + +public class Passthrough_manager : MonoBehaviour +{ + public TMP_Dropdown dropdown; + //public Slider slider; + + private VIVE.OpenXR.Passthrough.XrPassthroughHTC activePassthroughID = 0; + private LayerType currentActiveLayerType = LayerType.Underlay; + + static UInt32 count = 0; + static XrPassthroughConfigurationImageRateHTC[] arrays = new XrPassthroughConfigurationImageRateHTC[2]; + static XrPassthroughConfigurationImageRateHTC config_rate = new XrPassthroughConfigurationImageRateHTC(); + static XrPassthroughConfigurationImageQualityHTC config_quality = new XrPassthroughConfigurationImageQualityHTC(); + + static bool inited = false; + + // Start is called before the first frame update + void Start() + { + Debug.Log("Passthrough_manager EnumeratePassthroughImageRatesHTC"); + XrResult result = XR_HTC_passthrough_configuration.EnumeratePassthroughImageRatesHTC(imageRateCapacityInput: 0, imageRateCountOutput: ref count, imageRates: arrays); + Debug.Log("Passthrough_manager EnumeratePassthroughImageRatesHTC = " + count); + if (result == XrResult.XR_SUCCESS) + { + Array.Resize(ref arrays, (int)count); + List Options = new List(); + result = XR_HTC_passthrough_configuration.EnumeratePassthroughImageRatesHTC(imageRateCapacityInput: count, imageRateCountOutput: ref count, imageRates: arrays); + + if (result == XrResult.XR_SUCCESS) + { + for (int i = 0; i < count; i++) + { + Debug.Log("Passthrough_manager EnumeratePassthroughImageRatesHTC index " + i + " srcImageRate = " + arrays[i].srcImageRate); + Debug.Log("Passthrough_manager EnumeratePassthroughImageRatesHTC index " + i + " dstImageRate = " + arrays[i].dstImageRate); + Options.Add(new String(arrays[i].srcImageRate + "/" + arrays[i].dstImageRate)); + } + } + dropdown.ClearOptions(); + dropdown.AddOptions(Options); + Debug.Log("Passthrough_manager count = " + dropdown.options.Count); + } + else + { + Debug.Log("Passthrough_manager EnumeratePassthroughImageRatesHTC result = " + result); + } + config_rate.type = XrStructureType.XR_TYPE_PASSTHROUGH_CONFIGURATION_IMAGE_RATE_HTC; + config_rate.next = IntPtr.Zero; + + int size = Marshal.SizeOf(typeof(XrPassthroughConfigurationImageRateHTC)); + IntPtr ptr = Marshal.AllocHGlobal(size); + + Marshal.StructureToPtr(config_rate, ptr, false); + if (XR_HTC_passthrough_configuration.GetPassthroughConfigurationHTC(ptr) == XrResult.XR_SUCCESS) + { + config_rate = (XrPassthroughConfigurationImageRateHTC)Marshal.PtrToStructure(ptr, typeof(XrPassthroughConfigurationImageRateHTC)); + Debug.Log("Passthrough_manager get srcImageRate = " + config_rate.srcImageRate); + Debug.Log("Passthrough_manager get dstImageRate = " + config_rate.dstImageRate); + } + Marshal.FreeHGlobal(ptr); + + config_quality.type = XrStructureType.XR_TYPE_PASSTHROUGH_CONFIGURATION_IMAGE_QUALITY_HTC; + config_quality.next = IntPtr.Zero; + + int size2 = Marshal.SizeOf(typeof(XrPassthroughConfigurationImageQualityHTC)); + IntPtr ptr2 = Marshal.AllocHGlobal(size2); + + Marshal.StructureToPtr(config_quality, ptr2, false); + if (XR_HTC_passthrough_configuration.GetPassthroughConfigurationHTC(ptr2) == XrResult.XR_SUCCESS) + { + config_quality = (XrPassthroughConfigurationImageQualityHTC)Marshal.PtrToStructure(ptr2, typeof(XrPassthroughConfigurationImageQualityHTC)); + Debug.Log("Passthrough_manager get scale = " + config_quality.scale); + } + Marshal.FreeHGlobal(ptr2); + //slider.value = config_quality.scale; + + dropdown.onValueChanged.AddListener(DropdownValueChanged); + } + + static private void OnImageQualityChanged(float fromQuality, float toQuality) + { + Debug.Log("Passthrough_manager from scale = " + fromQuality); + Debug.Log("Passthrough_manager to scale = " + toQuality); + } + + static private void OnImageRateChanged(float fromSrcImageRate, float fromDestImageRate, float toSrcImageRate, float toDestImageRate) + { + Debug.Log("Passthrough_manager fromSrcImageRate = " + fromSrcImageRate); + Debug.Log("Passthrough_manager fromDestImageRate = " + fromDestImageRate); + Debug.Log("Passthrough_manager toSrcImageRate = " + toSrcImageRate); + Debug.Log("Passthrough_manager toDestImageRate = " + toDestImageRate); + } + + static public void Set_Quality1() + { + VivePassthroughImageQualityChanged.Listen(OnImageQualityChanged); + + XrPassthroughConfigurationImageQualityHTC config = new XrPassthroughConfigurationImageQualityHTC(); + config.type = XrStructureType.XR_TYPE_PASSTHROUGH_CONFIGURATION_IMAGE_QUALITY_HTC; + config.next = IntPtr.Zero; + config.scale = 0.25f; + + int size = Marshal.SizeOf(typeof(XrPassthroughConfigurationImageQualityHTC)); + IntPtr ptr = Marshal.AllocHGlobal(size); + + Marshal.StructureToPtr(config, ptr, false); + if (XR_HTC_passthrough_configuration.SetPassthroughConfigurationHTC(ptr) == XrResult.XR_SUCCESS) + { + Debug.Log("Passthrough_manager set scale = " + config.scale); + } + Marshal.FreeHGlobal(ptr); + } + + static public void Set_Quality2() + { + VivePassthroughImageQualityChanged.Listen(OnImageQualityChanged); + + XrPassthroughConfigurationImageQualityHTC config = new XrPassthroughConfigurationImageQualityHTC(); + config.type = XrStructureType.XR_TYPE_PASSTHROUGH_CONFIGURATION_IMAGE_QUALITY_HTC; + config.next = IntPtr.Zero; + config.scale = 0.50f; + + int size = Marshal.SizeOf(typeof(XrPassthroughConfigurationImageQualityHTC)); + IntPtr ptr = Marshal.AllocHGlobal(size); + + Marshal.StructureToPtr(config, ptr, false); + if (XR_HTC_passthrough_configuration.SetPassthroughConfigurationHTC(ptr) == XrResult.XR_SUCCESS) + { + Debug.Log("Passthrough_manager set scale = " + config.scale); + } + Marshal.FreeHGlobal(ptr); + } + + static public void Set_Quality3() + { + VivePassthroughImageQualityChanged.Listen(OnImageQualityChanged); + + XrPassthroughConfigurationImageQualityHTC config = new XrPassthroughConfigurationImageQualityHTC(); + config.type = XrStructureType.XR_TYPE_PASSTHROUGH_CONFIGURATION_IMAGE_QUALITY_HTC; + config.next = IntPtr.Zero; + config.scale = 0.75f; + + int size = Marshal.SizeOf(typeof(XrPassthroughConfigurationImageQualityHTC)); + IntPtr ptr = Marshal.AllocHGlobal(size); + + Marshal.StructureToPtr(config, ptr, false); + if (XR_HTC_passthrough_configuration.SetPassthroughConfigurationHTC(ptr) == XrResult.XR_SUCCESS) + { + Debug.Log("Passthrough_manager set scale = " + config.scale); + } + Marshal.FreeHGlobal(ptr); + } + + static public void Set_Quality4() + { + VivePassthroughImageQualityChanged.Listen(OnImageQualityChanged); + + XrPassthroughConfigurationImageQualityHTC config = new XrPassthroughConfigurationImageQualityHTC(); + config.type = XrStructureType.XR_TYPE_PASSTHROUGH_CONFIGURATION_IMAGE_QUALITY_HTC; + config.next = IntPtr.Zero; + config.scale = 1.00f; + + int size = Marshal.SizeOf(typeof(XrPassthroughConfigurationImageQualityHTC)); + IntPtr ptr = Marshal.AllocHGlobal(size); + + Marshal.StructureToPtr(config, ptr, false); + if (XR_HTC_passthrough_configuration.SetPassthroughConfigurationHTC(ptr) == XrResult.XR_SUCCESS) + { + Debug.Log("Passthrough_manager set scale = " + config.scale); + } + Marshal.FreeHGlobal(ptr); + } + + static public void DropdownValueChanged(int idx) + { + VivePassthroughImageRateChanged.Listen(OnImageRateChanged); + + Debug.Log("Passthrough_manager dropdown value = " + idx); + XrPassthroughConfigurationImageRateHTC config = new XrPassthroughConfigurationImageRateHTC(); + config.type = XrStructureType.XR_TYPE_PASSTHROUGH_CONFIGURATION_IMAGE_RATE_HTC; + config.next = IntPtr.Zero; + config.srcImageRate = arrays[idx].srcImageRate; + config.dstImageRate = arrays[idx].dstImageRate; + + int size = Marshal.SizeOf(typeof(XrPassthroughConfigurationImageRateHTC)); + IntPtr ptr = Marshal.AllocHGlobal(size); + + Marshal.StructureToPtr(config, ptr, false); + if (XR_HTC_passthrough_configuration.SetPassthroughConfigurationHTC(ptr) == XrResult.XR_SUCCESS) + { + Debug.Log("Passthrough_manager set srcImageRate = " + config.srcImageRate); + Debug.Log("Passthrough_manager set dstImageRate = " + config.dstImageRate); + } + Marshal.FreeHGlobal(ptr); + } + + // Update is called once per frame + void Update() + { + if (!inited) + { + inited = true; + } + } + + void StartPassthrough() + { + PassthroughAPI.CreatePlanarPassthrough(out activePassthroughID, currentActiveLayerType, OnDestroyPassthroughFeatureSession); + } + + void OnDestroyPassthroughFeatureSession(VIVE.OpenXR.Passthrough.XrPassthroughHTC passthroughID) + { + PassthroughAPI.DestroyPassthrough(passthroughID); + activePassthroughID = 0; + } + + public void EnablePassthrough() + { + if (activePassthroughID == 0) + { + StartPassthrough(); + } + } + + public void DisablePassthrough() + { + if (activePassthroughID != 0) + { + PassthroughAPI.DestroyPassthrough(activePassthroughID); + activePassthroughID = 0; + } + //dropdown.onValueChanged.RemoveListener(DropdownValueChanged); + } +} diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Passthrough/Scripts/Passthrough_manager.cs.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Passthrough/Scripts/Passthrough_manager.cs.meta new file mode 100644 index 0000000..c3c68ea --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Passthrough/Scripts/Passthrough_manager.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 58d2ddb40a3cc7d4c932f869f43073c2 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/SceneUnderstanding/Meshing Subsystem Feature/MeshingTeapotFeature.cs b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/SceneUnderstanding/Meshing Subsystem Feature/MeshingTeapotFeature.cs index f6119bd..914cf09 100644 --- a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/SceneUnderstanding/Meshing Subsystem Feature/MeshingTeapotFeature.cs +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/SceneUnderstanding/Meshing Subsystem Feature/MeshingTeapotFeature.cs @@ -78,7 +78,7 @@ namespace UnityEngine.XR.OpenXR.Samples.MeshingFeature Marshal.GetFunctionPointerForDelegate(m_XrLocateSceneComponentsMSFT), Marshal.GetFunctionPointerForDelegate(m_XrGetSceneMeshBuffersMSFT)); systemProperties.type = XrStructureType.XR_TYPE_SYSTEM_PROPERTIES; - XrSystemPassThroughPropertiesHTC SystemPassThroughPropertiesHTC; + //XrSystemPassThroughPropertiesHTC SystemPassThroughPropertiesHTC; int res = xrGetSystemProperties(ref systemProperties); if (res != (int)XrResult.XR_SUCCESS) { diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/SceneUnderstanding/MeshingFeaturePlugin/Native~/openxr/openxr.h b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/SceneUnderstanding/MeshingFeaturePlugin/Native~/openxr/openxr.h index ae231ec..3d973bc 100644 --- a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/SceneUnderstanding/MeshingFeaturePlugin/Native~/openxr/openxr.h +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/SceneUnderstanding/MeshingFeaturePlugin/Native~/openxr/openxr.h @@ -2894,10 +2894,10 @@ typedef enum XrLipShapeHTC { XR_LIP_SHAPE_MOUTH_UPPER_OVERTURN_HTC = 9, XR_LIP_SHAPE_MOUTH_LOWER_OVERTURN_HTC = 10, XR_LIP_SHAPE_MOUTH_POUT_HTC = 11, - XR_LIP_SHAPE_MOUTH_SMILE_RIGHT_HTC = 12, - XR_LIP_SHAPE_MOUTH_SMILE_LEFT_HTC = 13, - XR_LIP_SHAPE_MOUTH_SAD_RIGHT_HTC = 14, - XR_LIP_SHAPE_MOUTH_SAD_LEFT_HTC = 15, + XR_LIP_SHAPE_MOUTH_RAISER_RIGHT_HTC = 12, + XR_LIP_SHAPE_MOUTH_RAISER_LEFT_HTC = 13, + XR_LIP_SHAPE_MOUTH_STRETCHER_RIGHT_HTC = 14, + XR_LIP_SHAPE_MOUTH_STRETCHER_LEFT_HTC = 15, XR_LIP_SHAPE_CHEEK_PUFF_RIGHT_HTC = 16, XR_LIP_SHAPE_CHEEK_PUFF_LEFT_HTC = 17, XR_LIP_SHAPE_CHEEK_SUCK_HTC = 18, diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/SceneUnderstanding/MeshingFeaturePlugin/Native~/openxr/openxr_reflection.h b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/SceneUnderstanding/MeshingFeaturePlugin/Native~/openxr/openxr_reflection.h index 216bd36..2fb1820 100644 --- a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/SceneUnderstanding/MeshingFeaturePlugin/Native~/openxr/openxr_reflection.h +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/SceneUnderstanding/MeshingFeaturePlugin/Native~/openxr/openxr_reflection.h @@ -528,10 +528,10 @@ XR_ENUM_STR(XrResult); _(XR_LIP_SHAPE_MOUTH_UPPER_OVERTURN_HTC, 9) \ _(XR_LIP_SHAPE_MOUTH_LOWER_OVERTURN_HTC, 10) \ _(XR_LIP_SHAPE_MOUTH_POUT_HTC, 11) \ - _(XR_LIP_SHAPE_MOUTH_SMILE_RIGHT_HTC, 12) \ - _(XR_LIP_SHAPE_MOUTH_SMILE_LEFT_HTC, 13) \ - _(XR_LIP_SHAPE_MOUTH_SAD_RIGHT_HTC, 14) \ - _(XR_LIP_SHAPE_MOUTH_SAD_LEFT_HTC, 15) \ + _(XR_LIP_SHAPE_MOUTH_RAISER_RIGHT_HTC, 12) \ + _(XR_LIP_SHAPE_MOUTH_RAISER_LEFT_HTC, 13) \ + _(XR_LIP_SHAPE_MOUTH_STRETCHER_RIGHT_HTC, 14) \ + _(XR_LIP_SHAPE_MOUTH_STRETCHER_LEFT_HTC, 15) \ _(XR_LIP_SHAPE_CHEEK_PUFF_RIGHT_HTC, 16) \ _(XR_LIP_SHAPE_CHEEK_PUFF_LEFT_HTC, 17) \ _(XR_LIP_SHAPE_CHEEK_SUCK_HTC, 18) \ diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator.meta new file mode 100644 index 0000000..fcf6c2d --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 44809949fdc78b44aa05f00e98e416fc +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo.meta new file mode 100644 index 0000000..f3ecc6e --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a34dd2f0ecd78a24cbebc1c21e4986f7 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Audio.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Audio.meta new file mode 100644 index 0000000..556516b --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Audio.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 43c2e487b219c244885d98b16599acca +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Audio/Button Pop.wav b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Audio/Button Pop.wav new file mode 100644 index 0000000..70e4169 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Audio/Button Pop.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4a1b9aa5525b2c782068ef44fb1722d6b3b1f834d1dd350b173967152fb9f0c0 +size 51580 diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Audio/Button Pop.wav.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Audio/Button Pop.wav.meta new file mode 100644 index 0000000..5c37ad7 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Audio/Button Pop.wav.meta @@ -0,0 +1,22 @@ +fileFormatVersion: 2 +guid: 1fbec703c78e3bd4696a20be852c3005 +AudioImporter: + externalObjects: {} + serializedVersion: 6 + defaultSettings: + loadType: 0 + sampleRateSetting: 0 + sampleRateOverride: 44100 + compressionFormat: 1 + quality: 1 + conversionMode: 0 + platformSettingOverrides: {} + forceToMono: 0 + normalize: 1 + preloadAudioData: 1 + loadInBackground: 0 + ambisonic: 0 + 3D: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Materials.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Materials.meta new file mode 100644 index 0000000..d83da19 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Materials.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 341134c66f518934393555d4f152dea7 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Materials/BlackGroove.mat b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Materials/BlackGroove.mat new file mode 100644 index 0000000..2c180f8 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Materials/BlackGroove.mat @@ -0,0 +1,77 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: BlackGroove + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _BumpScale: 1 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _GlossMapScale: 1 + - _Glossiness: 0.8 + - _GlossyReflections: 1 + - _Metallic: 0.812 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _UVSec: 0 + - _ZWrite: 1 + m_Colors: + - _Color: {r: 0.13207549, g: 0.13207549, b: 0.13207549, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} diff --git a/com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Materials/Blue.mat.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Materials/BlackGroove.mat.meta similarity index 75% rename from com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Materials/Blue.mat.meta rename to com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Materials/BlackGroove.mat.meta index 2135337..00075da 100644 --- a/com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Materials/Blue.mat.meta +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Materials/BlackGroove.mat.meta @@ -1,8 +1,8 @@ -fileFormatVersion: 2 -guid: 1b386f8c7ca45f847828c4cf2c9703fa -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 0 - userData: - assetBundleName: - assetBundleVariant: +fileFormatVersion: 2 +guid: 054c9f8dbab5635489881b3867319137 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Materials/SimpleTeleportHighlight.mat b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Materials/SimpleTeleportHighlight.mat new file mode 100644 index 0000000..2409768 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Materials/SimpleTeleportHighlight.mat @@ -0,0 +1,87 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: SimpleTeleportHighlight + m_Shader: {fileID: 4800000, guid: 7ca1792758cb78e41a96844f8613e35e, type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: [] + m_InvalidKeywords: [] + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _AlphaRamp: 1 + - _BumpScale: 1 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _MaxTransparency: 0 + - _Metallic: 0 + - _MinTransparency: 1 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _UVSec: 0 + - _ZWrite: 1 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _TintColor: {r: 0, g: 0.72440803, b: 0.9811321, a: 1} + m_BuildTextureStacks: [] diff --git a/com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Materials/Green.mat.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Materials/SimpleTeleportHighlight.mat.meta similarity index 75% rename from com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Materials/Green.mat.meta rename to com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Materials/SimpleTeleportHighlight.mat.meta index c6ef227..2529b25 100644 --- a/com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Materials/Green.mat.meta +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Materials/SimpleTeleportHighlight.mat.meta @@ -1,8 +1,8 @@ -fileFormatVersion: 2 -guid: a2a31e899e72926409960396e796f459 -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 0 - userData: - assetBundleName: - assetBundleVariant: +fileFormatVersion: 2 +guid: 8e2ddb874e202ef41b23bb8e740eae35 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Meshes.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Meshes.meta new file mode 100644 index 0000000..103d69b --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Meshes.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: fd54f403de183574b9d2435570ccf287 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Meshes/CameraModel.asset b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Meshes/CameraModel.asset new file mode 100644 index 0000000..ad5fd95 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Meshes/CameraModel.asset @@ -0,0 +1,165 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!43 &4300000 +Mesh: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: CameraModel + serializedVersion: 10 + m_SubMeshes: + - serializedVersion: 2 + firstByte: 0 + indexCount: 780 + topology: 0 + baseVertex: 0 + firstVertex: 0 + vertexCount: 483 + localAABB: + m_Center: {x: -0.000000029802322, y: 0.0591359, z: -0.33409745} + m_Extent: {x: 0.14364533, y: 0.20278113, z: 0.39892757} + m_Shapes: + vertices: [] + shapes: [] + channels: [] + fullWeights: [] + m_BindPose: [] + m_BoneNameHashes: + m_RootBoneNameHash: 0 + m_BonesAABB: [] + m_VariableBoneCountWeights: + m_Data: + m_MeshCompression: 0 + m_IsReadable: 1 + m_KeepVertices: 0 + m_KeepIndices: 0 + m_IndexFormat: 0 + m_IndexBuffer: 000001000200010003000200040005000600050007000600080009000a000b000c000d000e000f001000110012001300140015001600170015001800190015001a001b0015001c001d001e001f0020002100220023002400250026002700280029002a002b002c002d002e002f0030003100320033003400350036003700380039003a003b003c003d003e003f0040004100420043004400450046004700480049004a004b004c004d004e004f0050005100520053005400550056005700580059005a005b005c005d005e005f006000610062006300640065006600670066006800670069006a006b006a006c006b006d006e006f006e0070006f0071007200730072007400730075007600770076007800770079007a007b007a007c007b007d007e007f007e0080007f0081008200830082008400830085008600870086008800870089008a008b008a008c008b008d008e008f008e0090008f0091009200930092009400930095009600970096009800970099009a009b009a009c009b009d009e009f009e00a0009f00a100a200a300a200a400a300a500a600a700a600a800a700a900aa00ab00aa00ac00ab00ad00ae00af00ae00b000af00b100b200b300b200b400b300a700a800b500a800b600b500ab00ac00b700ac00b800b700af00b000b900b000ba00b900bb00bc00bd00bc00be00bd000900bf00c000c000bf001000c100c200c300c200c400c300c500c600c700c600c800c7000c00c900ca00ca00c9001300cb00cc00cd00cc00ce00cd00cf00d000d100d000d200d100d300d400d500d400d600d500d700d800d900d800da00d900db00dc00dd00dc00de00dd00df00e000e100e000e200e100d500d600e300d600e400e300d900da00e500da00e600e500dd00de00e700de00e800e700e100e200e900e200ea00e900eb00ec00ed00ec00ee00ed00e500e600ef00e600f000ef00e700e800f100e800f200f100e900ea00f300ea00f400f300f500f600f700f600f800f700f000e600f900e600fa00f900e700f100fb00f100fc00fb00bc00bb00fd00bb00fe00fd00ff0000010101000102010101f900fa000301fa0004010301fb00fc000501fc0006010501fd00fe000701fe000801070109010a010b010a010c010b010401fa000d01fa000e010d01fb0005010f01050110010f01ec00eb001101eb001201110113011401150114011601150117011801190118011a0119011b011c011d011c011e011d011f012001210120012201210123012401250124012601250127012801290128012a0129012b012c012d012c012e012d012f013001310130013201310133013401350134013601350137013801390138013a0139013b013c013d013c013e013d013f014001410140014201410143014401450144014601450147014801490148014a0149014b014c014d014c014e014d014f015001510150015201510153015401550154015601550157015801590158015a0159015b015c015d015c015e015d015f016001610160016201610163016401650164016601650167016801690168016a0169016b016c016d016c016e016d016f017001710170017201710173017401750174017601750177017801790178017a0179017b017c017d017c017e017d017f018001810180018201810183018401850184018601850187018801890188018a0189018b018c018d018c018e018d018f019001910190019201910193019401950194019601950197019801990198019a0199019b019c019d019c019e019d019f01a001a101a001a201a101a301a401a501a401a601a501a701a801a901a801aa01a901ab01ac01ad01ac01ae01ad01af01b001b101b001b201b101b301b401b501b401b601b501b701b801b901b801ba01b901bb01bc01bd01bc01be01bd01bf01c001c101c001c201c101c301c401c501c401c601c501c701c801c901c801ca01c901cb01cc01cd01cc01ce01cd01cf01d001d101d001d201d101d30115001b00d4011500d301d5011500d40116001500d501d6011500140018001500d601d70115001700d8011500d701d9011500d801da011500d901db011500da01dc011500db01dd011500dc011a001500dd01de0115001900df011500de01e0011500df01e1011500e001e2011500e1011c001500e201 + m_VertexData: + serializedVersion: 3 + m_VertexCount: 483 + m_Channels: + - stream: 0 + offset: 0 + format: 0 + dimension: 3 + - stream: 0 + offset: 12 + format: 0 + dimension: 3 + - stream: 0 + offset: 24 + format: 0 + dimension: 4 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 40 + format: 0 + dimension: 2 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + m_DataSize: 23184 + _typelessdata: bc1713bec115e43da5c5843da68e643f0000000061a1e63e60a1e6be6c571f33a68e643f000080bf591bf63ebc7ac63ebc1713bec015e4bda5c5843da68e643f0000000061a1e63e60a1e6be6c571f33a68e643f000080bf591bf63ebb7ac6be58990abeccf7bc3d8834463da68e643f0000000061a1e63e60a1e6be6c571f33a68e643f000080bf2d4ad53e9870a43e58990abeccf7bcbd8834463da68e643f0000000062a1e63e62a1e6be504095b3a68e643f000080bf2d4ad53e9870a4bebd17133ec015e4bdaac5843db38e64bf000000002ea1e63e2ea1e6bef246d133b48e64bf000080bf5d1bf6bebb7ac6bebd17133ec115e43daac5843db38e64bf000000002ea1e63e2ea1e6bef246d133b48e64bf000080bf5d1bf6bebc7ac63e5b990a3eccf7bcbd8f34463db38e64bf000000002ea1e63e2ea1e6bef246d133b48e64bf000080bf304ad5be9870a4be5b990a3eccf7bc3d8f34463db48e64bf000000002ea1e63e2ea1e6be635f47b1b48e64bf000080bf304ad5be9870a43ebe1713bebc17133eb9bf0abf53b6d9aff9ff7f3fc82f7a3afad9beb3c82f7a3af9ff7fbf000080bfcdcce93f040000bfc117133ebc17133eb7bf0abf53b6d9aff9ff7f3fc82f7a3afad9beb3c82f7a3af9ff7fbf000080bfcbcce93f0000003fc2b0dfbd761d133ec99b10bf53b6d9aff9ff7f3fc82f7a3afad9beb3c82f7a3af9ff7fbf000080bf83fff33fc8a7c2bebf17133ebc17133e85a73bbf2eb7d92ff9ff7f3fc8307aba411465b5c9307abaf9ff7fbf000080bf7a651f40feffff3ec51713bebc17133e87a73bbf2eb7d92ff9ff7f3fc8307aba411465b5c9307abaf9ff7fbf000080bf7c651f400a0000bfbbb0df3d761d133e7bcb35bf2eb7d92ff9ff7f3fc8307aba411465b5c9307abaf9ff7fbf000080bf254c1a40b4a7c23ebdb0df3d761d133ec79b10bf08c5a3af0000803f17b51c393d66bfb317b51c39000080bf000080bf54f2f33fb6a7c23eadf5f43c871f133e861c1ebf08c5a3af0000803f17b51c393d66bfb317b51c39000080bf000080bf3ab90540d029d53d14f6f4bc871f133e881c1ebf08c5a3af0000803f17b51c393d66bfb317b51c39000080bf000080bf3bb90540602ad5bdcdb0dfbd761d133e7fcb35bf17c5a32f0000803f2eb51cb9a4d97e332eb51cb9000080bf000080bfc5521a40d2a7c2be30f6f4bc871f133ec24a28bf17c5a32f0000803f2eb51cb9a4d97e332eb51cb9000080bf000080bfb9920e40782ad5bdadf5f43c871f133ec04a28bf17c5a32f0000803f2eb51cb9a4d97e332eb51cb9000080bf000080bfb8920e40d029d53d354589bc2a13803d30deaabc58796eb387ee0f34000080bf0000803f9af8003453796eb3000080bf4c0654bc55d2453d8f9c78b20000000035deaabc58796eb387ee0f34000080bf0000803f9af8003453796eb3000080bf0000000000000026c79704bd56a8653d30deaabc58796eb387ee0f34000080bf0000803f9af8003453796eb3000080bfccccccbcad5c313dc097043d55a8653d30deaabc5c796e3387ee0f34000080bf0000803f5cf073b35b796e33000080bfcecccc3cac5c313d2545893c2a13803d30deaabc5c796e3387ee0f34000080bf0000803f5cf073b35b796e33000080bf4c06543c55d2453d2045893c2a1380bd37deaabc75c7beb2734a6633000080bf0000803fd6b60ab479c7beb2000080bf4406543c56d245bdbe97043d56a865bd37deaabc75c7beb2734a6633000080bf0000803fd6b60ab479c7beb2000080bfcacccc3cad5c31bdc59784bd0000000035deaabc0000000000000000000080bf0000803f0000000000000000000080bfcdcc4cbd000000262a1380bd354589bc35deaabc0000000000000000000080bf0000803f0000000000000000000080bf54d245bd570654bcd39c52bdf1fcdcb0481592bb5262c2bdd004a3b422d87e3f23d87ebffffc10335362c2bd000080bf97901d3dac583fb900000000f1fc5cb10000000095bbc032d3860ab40000803f000080bf1f87ac329c72c632000080bfcd5fb6baac583fb9ab6f4bbdcc0a5a3c481592bbb2c2bbbd813dc93c23d87e3fd9eb7ebf13c709b985cfbbbd000080bf150b183da769253cab6f4bbdcc0a5a3c481592bbb2c2bbbd813dc93c23d87e3fdfeb7ebf7c7090b9accdbbbd000080bf6e6c183d18b71f3c00000000f1fc5cb10000000095bbc032d3860ab40000803f000080bf352db232a959c632000080bf7a07aaba1e520cba546536bdd39cd23c3f1592bb5b57a8bd5e62423d23d87e3fc0217fbfc180afb8e485a8bd000080bf213a083df85b9e3c546536bdd39cd23c3f1592bb5b57a8bd5e62423d23d87e3fe0217fbf39ee22ba8878a8bd000080bf17ef083dc8e69b3c00000000f1fc5cb10000000095bbc032d3860ab40000803f000080bfb7939434662ec632000080bfb82192bac9685fbae3ec14bde3ec143d3f1592bb377389bd2f73893d23d87e3f876b7fbf743c093956c789bd000080bf4a4bde3c975edf3ce3ec14bde3ec143d3f1592bb377389bd2f73893d23d87e3fd06b7fbf532878ba68a189bd000080bf8f2fe03c8878dd3c00000000f1fc5cb10000000095bbc032d3860ab40000803f000080bfcfc9c4b46cfcc532000080bf6f7c60badeb791bad39cd2bc5665363d3a1592bb706242bd4d57a83d23d87e3f89b57fbffa2dee39a53243bd000080bf73e89c3c71a5083dd39cd2bc5665363d3a1592bb706242bd4d57a83d23d87e3feab57fbf7f4f98bafda642bd000080bfad179f3c6903083d00000000f1fc5cb10000000095bbc032d3860ab40000803f000080bf022645b312d1c532000080bfc83c0dbab3d6a9bacc0a5abc996f4b3d3a1592bbc03dc9bcb1c2bb3d23d87e3feaeb7fbf9722523a58b2cabc000080bf545b213cb350183dcc0a5abc996f4b3d3a1592bbc03dc9bcb1c2bb3d23d87e3f2fec7fbf19a69ebaf72dc9bc000080bf0d03263c9400183d00000000f1fc5cb10000000095bbc032d3860ab40000803f000080bf3a019b32498abf32000080bf0ece40b95e59b6ba00000000d49c523d3a1592bbda05c6b24462c23d23d87e3ff7ff7fbf1e5e8d3a15b5d7b8000080bf119917b9c6901d3d00000000d49c523d3a1592bbda05c6b24462c23d23d87e3ff7ff7fbf435e8dba5e9cd738000080bf11931739c6901d3d00000000f1fc5cb10000000095bbc032d3860ab40000803f000080bf3e019bb2498abf32000080bf0ec840395e59b6bacb0a5a3c996f4b3d3a1592bbda3dc93caec2bb3d23d87e3f2fec7fbf3da69e3a112ec93c000080bf250326bc9400183dcb0a5a3c996f4b3d3a1592bbda3dc93caec2bb3d23d87e3feaeb7fbf4a2252ba71b2ca3c000080bf6c5b21bcb350183d00000000f1fc5cb10000000095bbc032d3860ab40000803f000080bf0126453312d1c532000080bf483b0d3ab3d6a9bad29cd23c5665363d3a1592bb5a62423d5757a83d23d87e3feab57fbf4d4f983ae6a6423d000080bfb9179fbc6903083dd29cd23c5665363d3a1592bb5a62423d5757a83d23d87e3f89b57fbfe12eeeb98f32433d000080bf7fe89cbc71a5083d00000000f1fc5cb10000000095bbc032d3860ab40000803f000080bfcdc9c4346afcc532000080bfef7a603adfb791bae3ec143de3ec143d3f1592bb5d73893d0e73893d23d87e3fd06b7fbf6229783a8ea1893d000080bf9b2fe0bc8878dd3ce3ec143de3ec143d3f1592bb5d73893d0e73893d23d87e3f876b7fbf6c3c09b97cc7893d000080bf544bdebc995edf3c00000000f1fc5cb10000000095bbc032d3860ab40000803f000080bfe19394b4652ec632000080bf1e21923a7d685fba3f65363dd39cd23c3f1592bb7057a83d5862423d22d87e3fe0217fbfcced223a9e78a83d000080bf0bef08bdcae69b3c3f65363dd39cd23c3f1592bb7057a83d5862423d22d87e3fc0217fbfbc79af38f985a83d000080bf163a08bdf75b9e3c00000000f1fc5cb10000000095bbc032d3860ab40000803f000080bff0b71ab3a959c632000080bfcc06aa3a2d520cba966f4b3dcc0a5a3c481592bbb4c2bb3df93dc93c22d87e3fddeb7ebf776e9039adcdbb3d000080bf636c18bd17b71f3c966f4b3dcc0a5a3c481592bbb4c2bb3df93dc93c22d87e3fd9eb7ebf12cb093988cfbb3d000080bf0b0b18bd9e69253c00000000f1fc5cb10000000095bbc032d3860ab40000803f000080bfb900eeb19c72c632000080bf0e5fb63ad65a3fb9d39c523df1fcdcb0481592bb5162c23d0606cc3222d87e3f23d87ebf6d4299b25162c23d000080bf9d901dbdd65a3fb9d39c523df1fcdcb0481592bb5162c23d0606cc3222d87e3f23d87ebf25ef04b35162c23d000080bf9d901dbdd65a3f3900000000f1fc5cb10000000095bbc032d3860ab40000803f000080bf2287acb29c72c632000080bf0e5fb63ad65a3f39966f4b3dcd0a5abc481592bbadc2bb3d843ec9bc22d87e3fd9eb7ebf4fd809b980cfbb3d000080bf0b0b18bd9e6925bc966f4b3dcd0a5abc481592bbadc2bb3d843ec9bc22d87e3fdfeb7ebfd08690b9a7cdbb3d000080bf636c18bd17b71fbc00000000f1fc5cb10000000095bbc032d3860ab40000803f000080bf4a7801b4a959c632000080bfcc06aa3a2d520c3a3f65363dd59cd2bc4c1592bb6f57a83d886242bd22d87e3fc0217fbfa5dbafb8f885a83d000080bf163a08bdf75b9ebc3f65363dd59cd2bc4c1592bb6f57a83d886242bd22d87e3fe0217fbf3a0423ba9b78a83d000080bf0bef08bdcae69bbc00000000f1fc5cb10000000095bbc032d3860ab40000803f000080bf7fc239b3652ec632000080bf1e21923a7d685f3ae3ec143de6ec14bd4c1592bb5273893d4d7389bd22d87e3f876b7fbf9be508396fc7893d000080bf544bdebc995edfbce3ec143de6ec14bd4c1592bb5273893d4d7389bd22d87e3fd06b7fbf3e0078ba89a1893d000080bf9b2fe0bc8878ddbc00000000f1fc5cb10000000095bbc032d3860ab40000803f000080bf7a4499346afcc532000080bfef7a603adfb7913ad29cd23c566536bd561592bb5462423d7b57a8bd22d87e3f89b57fbf0681ee399732433d000080bf7fe89cbc71a508bdd29cd23c566536bd561592bb5462423d7b57a8bd22d87e3feab57fbffa5098bae0a6423d000080bfb9179fbc690308bd00000000f1fc5cb10000000095bbc032d3860ab40000803f000080bff522c8b312d1c532000080bf483b0d3ab3d6a93acb0a5a3c996f4bbd561592bbd13dc93cc0c2bbbd22d87e3feaeb7fbf581f523a66b2ca3c000080bf6c5b21bcb35018bdcb0a5a3c996f4bbd561592bbd13dc93cc0c2bbbd22d87e3f2fec7fbfc8a69eba082ec93c000080bf250326bc940018bd00000000f1fc5cb10000000095bbc032d3860ab40000803f000080bf337b0331498abf32000080bf0ec840395e59b63a00000000d49c52bd561592bbe805c8325462c2bd22d87e3ff7ff7fbfa45d8d3aecb3d738000080bf11931739c6901dbd00000000d49c52bd561592bbe805c8325462c2bd22d87e3ff7ff7fbfc95d8dba359bd7b8000080bf119917b9c6901dbd00000000f1fc5cb10000000095bbc032d3860ab40000803f000080bf4d7b03b1498abf32000080bf0ece40b95e59b63acc0a5abc996f4bbd561592bbd83dc9bcbbc2bbbd22d87e3f2fec7fbfcda69e3a0e2ec9bc000080bf0d03263c940018bdcc0a5abc996f4bbd561592bbd83dc9bcbbc2bbbd22d87e3feaeb7fbf3d1f52ba6db2cabc000080bf545b213cb35018bd00000000f1fc5cb10000000095bbc032d3860ab40000803f000080bff322c83312d1c532000080bfc83c0dbab3d6a93ad39cd2bc566536bd561592bb436242bd6f57a8bd22d87e3feab57fbfc250983acfa642bd000080bfad179f3c690308bdd39cd2bc566536bd561592bb436242bd6f57a8bd22d87e3f89b57fbfb181eeb9863243bd000080bf73e89c3c71a508bd00000000f1fc5cb10000000095bbc032d3860ab40000803f000080bf7b4499b46cfcc532000080bf6f7c60badeb7913ae3ec14bde6ec14bd4c1592bb3c7389bd5d7389bd22d87e3fd06b7fbf95ff773a73a189bd000080bf8f2fe03c8878ddbce3ec14bde6ec14bd4c1592bb3c7389bd5d7389bd22d87e3f876b7fbf64e308b959c789bd000080bf4a4bde3c975edfbc00000000f1fc5cb10000000095bbc032d3860ab40000803f000080bf4ac23933662ec632000080bfb82192bac9685f3a546536bdd59cd2bc4c1592bb5f57a8bd6b6242bd23d87e3fe0217fbfa504233a8a78a8bd000080bf17ef083dc8e69bbc546536bdd59cd2bc4c1592bb5f57a8bd6b6242bd23d87e3fc0217fbf70d2af38e685a8bd000080bf1f3a083dfb5b9ebc00000000f1fc5cb10000000095bbc032d3860ab40000803f000080bf7947f833aa59c632000080bf9b07aabaae510c3a966f4bbdcd0a5abc481592bbbdc2bbbdfa3dc9bc22d87e3fddeb7ebfbe859039b6cdbbbd000080bf5d6c183d1fb71fbc966f4bbdcd0a5abc481592bbbdc2bbbdfa3dc9bc22d87e3fd9eb7ebf2ed5093990cfbbbd000080bf050b183d9e6925bc00000000f1fc5cb10000000095bbc032d3860ab40000803f000080bfad00ee319c72c632000080bfcd5fb6bad45a3f39d39c52bdf1fcdcb0481592bb5262c2bdd004a3b422d87e3f23d87ebf215eb1325362c2bd000080bf97901d3dd55a3f39bd17133ec015e4bdaac5843d62ae603f000000007b64f5be7964f53eca5911b262ae603f000080bf1e45fb3ebb7ac6bec217933dcb7736bd6e9588bd62ae603f000000007b64f5be7b64f53e7147b9b262ae603f000080bf33bcfcbc94c81ebebd17133ec115e43daac5843d62ae603f000000007b64f5be7b64f53e7147b9b262ae603f000080bf1e45fb3ebc7ac63ec217933dcb77363d6e9588bd62ae603f000000007b64f5be7b64f53efef014b362ae603f000080bf33bcfcbc94c81e3ebf17133ebc1713be85a73bbf5bc5de3400000000000080bf0000803f000000005bc5de34000080bfd6ffff3e000000bfc51713bebc1713be87a73bbf5bc5de3400000000000080bf0000803f000000005bc5de34000080bf1e0000bf000000bfbf17133ebc17133e85a73bbf5bc5de3400000000000080bf0000803f000000005bc5de34000080bfd6ffff3e0000003fc51713bebc17133e87a73bbf5bc5de3400000000000080bf0000803f000000005bc5de34000080bf1e0000bf0000003f26596bbdcb7736bd719588bde21e56bf00000000b0500cbfb0500c3ff42bdfb2e31e56bf000080bf21230b3d94c81ebebc1713bec015e4bda5c5843de21e56bf00000000b0500cbfb0500c3f0dd78a33e31e56bf000080bf3b6c03bfbb7ac6be26596bbdcb77363d719588bde21e56bf00000000b0500cbfb0500c3f0dd78a33e31e56bf000080bf21230b3d94c81e3ebc1713bec115e43da5c5843de11e56bf00000000b0500cbfb0500c3f8bbc2634e31e56bf000080bf3b6c03bfbc7ac63e245babbd431864bd1e4d8ebc8721d7b3000000000000803f000080bf000000008721d7b3000080bf281d953eea7c46be2b5bab3d431864bd154d8ebc8721d7b3000000000000803f000080bf000000008721d7b3000080bf301d95beea7c46be245babbd4518643d1e4d8ebc8721d7b3000000000000803f000080bf000000008721d7b3000080bf281d953eec7c463e2b5bab3d4518643d154d8ebc8721d7b3000000000000803f000080bf000000008721d7b3000080bf301d95beec7c463ebd17133ec115e43daac5843dde437c336a3b643f2deae7be56ea58342deae7be6a3b64bf000080bf3582dcbe0200003fc217933dcb77363d6e9588bd962793336a3b643f2ceae7be051132342deae7be6b3b64bf000080bfd19ba93d0400803ebc1713bec115e43da5c5843d962793336a3b643f2ceae7be051132342deae7be6b3b64bf000080bf3582dcbefcffffbe26596bbdcb77363d719588bd3d2da8336b3b643f2ceae7beb7370b342beae7be6b3b64bf000080bfd19ba93dc4cc4cbebc1713bec015e4bda5c5843ddb437c336b3b64bf2beae7be74731fb42beae7be6c3b643f000080bf3582dc3efcffffbe26596bbdcb7736bd719588bd952793336b3b64bf2beae7be86355bb42beae7be6c3b643f000080bfd39ba9bdc4cc4cbebd17133ec015e4bdaac5843d952793336b3b64bf2beae7be86355bb42beae7be6c3b643f000080bf3582dc3e0200003fc217933dcb7736bd6e9588bd3c2da8336b3b64bf2beae7becd7b8bb42beae7be6c3b643f000080bfd39ba9bd0400803ebc1713bec015e4bda5c5843ddd0cd3b31601273f5306423f000080bf000000005f3b0bb4000080bffcffff3e56fff5bebd17133ec015e4bdaac5843d64ebb7b31801273f5206423f000080bf00000000c0aaf2b3000080bf020000bf56fff5be58990abeccf7bcbd8834463d64ebb7b31801273f5206423f000080bf00000000c0aaf2b3000080bfae37f13ebb15c9be5b990a3eccf7bcbd8f34463deac99cb31901273f5106423f000080bfb9539127c2deceb3000080bfb637f1bebb15c9bebd17133ec115e43daac5843ddc0cd3b3160127bf5206423f000080bf000000005f3b0bb4000080bf020000bf57fff53ebc1713bec115e43da5c5843d64ebb7b3140127bf5406423f000080bf00000000bfaaf2b3000080bffcffff3e57fff53e5b990a3eccf7bc3d8f34463d64ebb7b3140127bf5406423f000080bf00000000bfaaf2b3000080bfb637f1bebb15c93e58990abeccf7bc3d8834463dedc99cb3130127bf5606423f000080bf00000000c0deceb3000080bfae37f13ebb15c93e58990abeccf7bcbd8834463d552249b3cdb65f3fd7e6f83edbe0ac33d7e6f83eccb65fbf000080bf3b5bb6beae37f1be5b990a3eccf7bcbd8f34463d9a8741b3cdb65f3fd8e6f83e19b22032d9e6f83eccb65fbf000080bf3b5bb6beb637f13e245babbd431864bd1e4d8ebc9a8741b3cdb65f3fd8e6f83e19b22032d9e6f83eccb65fbf000080bf10fcc0bd281d95be2b5bab3d431864bd154d8ebcdfec39b3cdb65f3fd9e6f83e55b484b3d9e6f83eccb65fbf000080bf10fcc0bd301d953e58990abeccf7bc3d8834463dc547493f00000000242f1e3f252f1ebf67bc8eb2c547493f000080bf2c32f13e9870a43e58990abeccf7bcbd8834463dc547493f00000000242f1e3f232f1ebfa973ef31c447493f000080bf2c32f13e9870a4be245babbd4518643d1e4d8ebcc547493f00000000242f1e3f232f1ebfa973ef31c447493f000080bfed46383eec7c463e245babbd431864bd1e4d8ebcc547493f00000000242f1e3f232f1ebf1d3b0333c447493f000080bfed46383eea7c46be5b990a3eccf7bcbd8f34463dc64749bf00000000222f1e3f222f1ebff06f00b3c54749bf000080bf3132f1be9870a4be5b990a3eccf7bc3d8f34463dc64749bf00000000222f1e3f222f1ebf15cfd732c54749bf000080bf3132f1be9870a43e2b5bab3d431864bd154d8ebcc64749bf00000000222f1e3f222f1ebf15cfd732c54749bf000080bff74638beea7c46be2b5bab3d4518643d154d8ebcc54749bf00000000222f1e3f222f1ebf811fac33c54749bf000080bff74638beec7c463e5b990a3eccf7bc3d8f34463d562249b3ceb65fbfd7e6f83ed1f89eb2d5e6f83ecdb65f3f000080bf3a5bb63eb637f13e58990abeccf7bc3d8834463dcf0270b3ceb65fbfd6e6f83ea8b39fb3d4e6f83ecdb65f3f000080bf3a5bb63eae37f1be2b5bab3d4518643d154d8ebccf0270b3ceb65fbfd6e6f83ea8b39fb3d4e6f83ecdb65f3f000080bf0ffcc03d301d953e245babbd4518643d1e4d8ebca4718bb3ceb65fbfd6e6f83e8dd40bb4d4e6f83ecdb65f3f000080bf0ffcc03d281d95bec217933dcb7736bd6e9588bd49292fb4859aa9bee08b713f000080bf000000007ea439b4000080bf040080be4c0d50be26596bbdcb7736bd719588bd07210cb4839aa9bee08b713f000080bf00000000988314b4000080bfc4cc4c3e4c0d50bebd17133ebc1713beebd5cfbd07210cb4839aa9bee08b713f000080bf00000000988314b4000080bf000000bfdd9911bfbd1713bebc1713beefd5cfbd8b31d2b3819aa9bee18b713f000080bf0000000063c5deb3000080bf0000003fdd9911bfc217933dcb77363d6e9588bd8d34df3e000000009064663f906466bf313c60328c34df3e000080bfe18399be94c81e3ec217933dcb7736bd6e9588bd8d34df3e000000009064663f906466bfb74647b28e34df3e000080bfe18399be94c81ebebd17133ebc17133eebd5cfbd8d34df3e000000009064663f906466bfb74647b28e34df3e000080bff1de13bf0000003fbd17133ebc1713beebd5cfbd8d34df3e000000009064663f906466bf68b21bb38e34df3e000080bff1de13bf000000bf26596bbdcb7736bd719588bdf9a6bfbe000000007d636d3f7d636dbf56894032f9a6bfbe000080bfe5b67f3e94c81ebe26596bbdcb77363d719588bdf9a6bfbe000000007d636d3f7d636dbf161b2bb2f9a6bfbe000080bfe5b67f3e94c81e3ebd1713bebc1713beefd5cfbdf9a6bfbe000000007d636d3f7d636dbf161b2bb2f9a6bfbe000080bff3bf123f000000bfbd1713bebc17133eefd5cfbdf9a6bfbe000000007d636d3f7d636dbfe1af05b3f9a6bfbe000080bff3bf123f0000003f26596bbdcb77363d719588bd4a292fb47f9aa93ee18b713f000080bf000000007ea439b4000080bfc4cc4c3e4c0d503ec217933dcb77363d6e9588bd08210cb4819aa93ee08b713f000080bfc29693a7988314b4000080bf040080be4c0d503ebd1713bebc17133eefd5cfbd08210cb4819aa93ee08b713f000080bfc29693a7988314b4000080bf0000003fdd99113fbd17133ebc17133eebd5cfbd8a31d2b3839aa93ee08b713f000080bf0000000063c5deb3000080bf000000bfdd99113fbd17133ebc1713beebd5cfbd00000000000080bf00000000a14911b4000000000000803f000080bf9ae695be0000003fbd1713bebc1713beefd5cfbd00000000000080bf000000005cf609b4000000000000803f000080bf9ae695be000000bfc117133ebc1713beb7bf0abf00000000000080bf000000005cf609b4000000000000803f000080bf2ebde9bf0000003fbe1713bebc1713beb9bf0abf00000000000080bf0000000016a302b4000000000000803f000080bf30bde9bf040000bfbd17133ebc17133eebd5cfbd0000803f00000000a0491134a04911b4000000000000803f000080bf9ae695be0000003fbd17133ebc1713beebd5cfbd0000803f00000000a0491134a04911b4000000000000803f000080bf9ae695be000000bfc117133ebc17133eb7bf0abf0000803f00000000a0491134a04911b4000000000000803f000080bf2ebde9bf0000003fc117133ebc1713beb7bf0abf0000803f00000000a0491134a04911b4000000000000803f000080bf2ebde9bf000000bfbd1713bebc1713beefd5cfbd000080bf000000009e4911339e4911b300000000000080bf000080bf9de6953e000000bfbd1713bebc17133eefd5cfbd000080bf000000009e4911339e4911b300000000000080bf000080bf9de6953e0000003fbe1713bebc1713beb9bf0abf000080bf000000009e4911339e4911b300000000000080bf000080bf31bde93f000000bfbe1713bebc17133eb9bf0abf000080bf000000009e4911339e4911b300000000000080bf000080bf31bde93f0000003fbd1713bebc17133eefd5cfbd000000000000803f0000000016a3023400000000000080bf000080bf9ae6953e000000bfbd17133ebc17133eebd5cfbd000000000000803f000000005cf6093400000000000080bf000080bf9ae6953e0000003fbe1713bebc17133eb9bf0abf000000000000803f000000005cf6093400000000000080bf000080bf30bde93f040000bfc117133ebc17133eb7bf0abf000000000000803f00000000a149113400000000000080bf000080bf2ebde93f0000003fbf17133ebc1713be85a73bbf00000000000080bf000000003f1d2033000000000000803f000080bf516d1fc0feffff3ec51713bebc1713be87a73bbf00000000000080bf00000000b3be0c32000000000000803f000080bf536d1fc00a0000bfbf17133ebc17133e85a73bbf0000803f00000000bc8127b4bc812734000000000000803f000080bf516d1fc00000003fbf17133ebc1713be85a73bbf0000803f00000000bc8127b4bc812734000000000000803f000080bf516d1fc0000000bfc51713bebc1713be87a73bbf000080bf0000000084911235849112b500000000000080bf000080bf546d1f40000000bfc51713bebc17133e87a73bbf000080bf0000000084911235849112b500000000000080bf000080bf546d1f400000003f4bf6f4bcfd19863e921c1ebf000000000000803f00000000a50629b300000000000080bf000080bf0bb80540902ad5bd83f5f43cfd19863e8e1c1ebf000000000000803f00000000b106a9b200000000000080bf000080bf07b80540ac29d53d83f6f4bcfd19863ecd4a28bf000000000000803f00000000b106a9b200000000000080bf000080bffb930e40c02ad5bd83f5f43cfd19863ecb4a28bf000000000000803f000000000000000000000000000080bf000080bffa930e40ac29d53dbdb0df3d761d133ec79b10bf5b94a5affcff7f3f8eae103aeba49a338fae103afeff7fbf000080bf7ffff33fb6a7c23ec2b0dfbd761d133ec99b10bf5b94a5affcff7f3f8eae103aeba49a338fae103afeff7fbf000080bf83fff33fc8a7c2bec51713bebc17133e87a73bbfc55d26bafdff7f3f1680be2f9bbe0cb260a4bb2f000080bf000080bf536d1f4077d6ffbebe1713bebc17133eb9bf0abfc45d26bafdff7f3fc4acc12fda3a123204a5c42f000080bf000080bf30bde93f6bd6ffbecdb0dfbd761d133e7fcb35bfc45d26bafdff7f3fc4acc12fda3a123204a5c42f000080bf000080bffe531a40347ec2bec2b0dfbd761d133ec99b10bfc35d26bafdff7f3f73d9c42f209ad832aaa5cd2f000080bf000080bfe6eff33f2a7ec2bec117133ebc17133eb7bf0abfaf5d263afdff7f3fd8b6d9ae6e858eb359307aae000080bf000080bf2ebde93f63d6ff3ebf17133ebc17133e85a73bbfb05d263afdff7f3f4c70b4aec752dbb251ce90ae000080bf000080bf516d1f4061d6ff3ebdb0df3d761d133ec79b10bfb05d263afdff7f3f4c70b4aec752dbb251ce90ae000080bf000080bfe2eff33f187ec23ebbb0df3d761d133e7bcb35bfb15d263afdff7f3fc0298fae337083327984a4ae000080bf000080bffc531a40167ec23ecdb0dfbd761d133e7fcb35bf29952530fcff7f3f44af10ba5cb0a8b345af10bafeff7fbf000080bf274c1a40d2a7c2bebbb0df3d761d133e7bcb35bf29952530fcff7f3f44af10ba5cb0a8b345af10bafeff7fbf000080bf254c1a40b4a7c23ecdb0dfbd761d133e7fcb35bf9668d0b80000803f5798762e739ad832dcce802e000080bf000080bffe531a4050a1c2bec2b0dfbd761d133ec99b10bf9068d0b80000803f73f2cc2e824f3e31618dcd2e000080bf000080bfe6eff33f46a1c2be30f6f4bc871f133ec24a28bf9068d0b80000803f73f2cc2e824f3e31618dcd2e000080bf000080bff2930e406e10d5bd14f6f4bc871f133e881c1ebf8b68d0b80000803f5d4c0f2f9b06a9b2f4250d2f000080bf000080bf02b805405610d5bdbdb0df3d761d133ec79b10bf7d68d0380000803f795733ad6d708332b8174ead000080bf000080bfe2eff33f34a1c23ebbb0df3d761d133e7bcb35bf7e68d0380000803f7957b3ac6c700332b817ceac000080bf000080bffc531a4032a1c23eadf5f43c871f133e861c1ebf7e68d0380000803f7957b3ac6c700332b817ceac000080bf000080bf01b80540c60fd53dadf5f43c871f133ec04a28bf7e68d0380000803f000000000000000000000000000080bf000080bff1930e40c60fd53d14f6f4bc871f133e881c1ebfbfc405b67fe79c360000803f000080bf00000000bfc405b6000080bfa12bd53d5507003fadf5f43c871f133e861c1ebfed3527b68e4a89360000803f000080bf00000000ed3527b6000080bf8f28d5bd5507003f27f6f4bc5455473e8c1c1ebfed3527b68e4a89360000803f000080bf00000000ed3527b6000080bfb12bd53d3f762d3f9ff5f43c5455473e891c1ebf1ba748b63c5b6b360000803f000080bf000000001ba748b6000080bf8328d5bd3f762d3f30f6f4bc871f133ec24a28bf000080bf136384b58405b0358405b0b50068e69f000080bf000080bff3930e40ca06003f14f6f4bc871f133e881c1ebf000080bf438c61b5d42ac935d42ac9b585454420000080bf000080bf03b80540ca06003f4bf6f4bc5455473ec74a28bf000080bf438c61b5d42ac935d42ac9b585454420000080bf000080bff6930e40b4752d3f27f6f4bc5455473e8c1c1ebf000080bf60523ab52550e2352550e2b500000000000080bf000080bf06b80540b4752d3fadf5f43c871f133e861c1ebf0000803f924a09350000000000000000000000000000803f000080bf01b805c0c706003fadf5f43c871f133ec04a28bf0000803f924a09350000000000000000000000000000803f000080bff1930ec0c706003f9ff5f43c5455473e891c1ebf0000803f924a09350000000000000000000000000000803f000080bf03b805c0b1752d3f9ff5f43c5455473ec54a28bf0000803f924a09350000000000000000000000000000803f000080bff4930ec0b1752d3fadf5f43c871f133ec04a28bfb7c405366021c4b6000080bf0000803f00000000b7c40536000080bf7a28d53d5f07003f30f6f4bc871f133ec24a28bfb5c405365f21c4b6000080bf0000803f00000000b5c40536000080bfce2bd5bd5f07003f9ff5f43c5455473ec54a28bfb5c405365f21c4b6000080bf0000803f00000000b5c40536000080bf6e28d53d49762d3f4bf6f4bc5455473ec74a28bfb3c405365e21c4b6000080bf0000803f29acaaa1b3c40536000080bfe62bd5bd49762d3f39f6f4bc59ef693e8f1c1ebf1ca748b65390b1360000803f000080bf10841aa21ca748b6000080bf022dd53dc5924b3f91f5f43c59ef693e8c1c1ebf1ba748b65390b1360000803f000080bf10841aa21ba748b6000080bf3627d5bdc5924b3f67f6f4bc59ef693ec94a28bf000080bf082aaab572df003672df00b6a31394a0000080bf000080bff9930e40f3914b3f39f6f4bc59ef693e8f1c1ebf000080bfde2b85b5d1961036d19610b676c567a0000080bf000080bf09b80540f3914b3f91f5f43c59ef693e8c1c1ebf0000803f67284f350000000000000000000000000000803f000080bf05b805c0ef914b3f91f5f43c59ef693ec84a28bf0000803f67284f350000000000000000000000000000803f000080bff7930ec0ef914b3f91f5f43c59ef693ec84a28bf0aa7c83546f893b6000080bf0000803f63c300a10aa7c835000080bf6228d53dd3924b3f67f6f4bc59ef693ec94a28bfafc485356fc06cb6000080bf0000803f00000000afc48535000080bffe2bd5bdd3924b3f67f6f4bc59ef693ecd4d50bee635a7b6a93bc2360000803f000080bf00000000e635a7b6000080bf1e2cd53d33924b3f71f5f43c59ef693eb94d50be56c0b3b650d2ab360000803f000080bfdd84152256c0b3b6000080bf2628d5bd33924b3f79f6f4bcfd19863eda4d50be56c0b3b650d2ab360000803f000080bfdd84152256c0b3b6000080bf2e2cd53d2364693f63f5f43cfd19863ec34d50bec74ac0b6f86895360000803f000080bf00000000c74ac0b6000080bf1a28d5bd2364693f83f6f4bcfd19863ecd4a28bf000080bfdad1abb5224e2036224e20b672849520000080bf000080bffc930e40e363693f4bf6f4bcfd19863e921c1ebf000080bfa07786b572053036720530b6c4066a20000080bf000080bf0cb80540e363693f83f5f43cfd19863e8e1c1ebf0000803f9b2c51350000000000000000000000000000803f000080bf07b805c0df63693f83f5f43cfd19863ecb4a28bf0000803f9b2c51350000000000000000000000000000803f000080bffa930ec0df63693f83f5f43cfd19863ecb4a28bf04a7c835982cd1b6000080bf0000803ff405362104a7c835000080bf5628d53dc664693f83f6f4bcfd19863ecd4a28bfacc40536620eefb6000080bf0000803f00000000acc40536000080bf162cd5bdc664693f39f6f4bc59ef693e8f1c1ebf00000000000080bf00000000693fc0b3000000000000803f000080bf08b805c0802ad5bd91f5f43c59ef693e8c1c1ebf00000000000080bf00000000a847c1b3000000000000803f000080bf05b805c0b829d53d4bf6f4bc59ef693ee3f078be00000000000080bf00000000a847c1b3000000000000803f000080bf412649bf802ad5bd88f5f43c59ef693ed1f078be00000000000080bf00000000e74fc2b3000000000000803f000080bf312649bfc029d53d5ef6f4bcfd19863ef1f078be000080bf58348ab58196c5b38896c5336a6044b3000080bf000080bf4d26493fe263693f4bf6f4bc59ef693ee3f078be000080bf92f08db5683fc0b36f3fc0336a6044b3000080bf000080bf4126493ff2914b3f88f5f43c59ef693ed1f078be0000803f9e2c5135643f4033643f40b3fa05b61d0000803f000080bf312649bfef914b3f7af5f43cfd19863edaf078be0000803f9f2c5135653f4033653f40b3fb05361d0000803f000080bf392649bfdf63693f7af5f43cfd19863edaf078be000000000000803f00000000c09ec63300000000000080bf000080bf3926493fb429d53d5ef6f4bcfd19863ef1f078be000000000000803f0000000099edca3300000000000080bf000080bf4d26493f902ad5bd67f6f4bcd1cf593eeaf078be00000000000080bf00000000ceeaddb4000000000000803f000080bf472649bf982ad5bd76f5f43cd1cf593ed8f078be00000000000080bf000000003c84eab4000000000000803f000080bf372649bfb029d53d79f6f4bcd1cf593ed34d50be00000000000080bf000000003c84eab4000000000000803f000080bf85c925bfa02ad5bd63f5f43cd1cf593ec14d50be00000000000080bf00000000a91df7b4000000000000803f000080bf75c925bfa829d53d79f6f4bcfd19863eda4d50be000080bf98348ab5aa3dadb5aa3dad356088f01f000080bf000080bf89c9253fe263693f67f6f4bc59ef693ecd4d50be000080bf5d7886b50764b0b50764b03500000000000080bf000080bf7dc9253ff2914b3f71f5f43c59ef693eb94d50be0000803fec2c51356ee490356ee490b5000000000000803f000080bf70c925bfef914b3f63f5f43cfd19863ec34d50be0000803fef2c513570e4903570e490b5000000000000803f000080bf78c925bfdf63693f63f5f43cfd19863ec34d50be000000000000803f000000005590e03400000000000080bf000080bf77c9253fa829d53d79f6f4bcfd19863eda4d50be000000000000803f00000000e30bd93400000000000080bf000080bf8bc9253fa02ad5bd4bf6f4bc59ef693ee3f078be507d9636ce49de36000080bf0000803f00000000507d9636000080bf632cd5bd9a914b3f88f5f43c59ef693ed1f078be4e7d9636d449de36000080bf0000803f696f41224e7d9636000080bfdd27d53d9a914b3f67f6f4bcd1cf593eeaf078be4e7d9636d449de36000080bf0000803f696f41224e7d9636000080bf7b2cd5bdd4893d3f76f5f43cd1cf593ed8f078be4d7d9636da49de36000080bf0000803f6e6f41224d7d9636000080bfcd27d53dd4893d3f79f6f4bcd1cf593ed34d50be000080bf4598363672e490b572e49035d7e49ea0000080bf000080bf83c9253f268a3d3f67f6f4bcd1cf593eeaf078be000080bf074a5e36bac962b5bac96235926fc120000080bf000080bf4526493f268a3d3f76f5f43cd1cf593ed8f078be0000803f960bfeb5004b8435004b84b5000000000000803f000080bf382649bf2e8a3d3f63f5f43cd1cf593ec14d50be0000803f294adeb528636f3527636fb5000000000000803f000080bf76c925bf2e8a3d3f63f5f43cd1cf593ec14d50be9ad99eb6db49deb60000803f000080bf000000009ad99eb6000080bf1a28d5bde3893d3f79f6f4bcd1cf593ed34d50be4e7d96b66e88beb60000803f000080bf38cd25a24e7d96b6000080bf2e2cd53de3893d3fc59784bd0000000035deaabc000080bff47b2db5f57116354b7c2eb50000803ff4944634000080bfaddad5bb00008031c59784bdf1fcdcb0297dbfbb000080bf32e8deb5cdfc1eb5d7c7deb50000803f655fc0b2000080bfaddad5bb04fa3d3c2b1380bd2d45893c34deaabcec4677bfdc83843e18dacfb5dc83843eec46773ff54b8b34000080bfa3dad53b00008031301380bd2545893c297dbfbbec4677bfdc83843e2210d1b5dd83843eec46773f5d315c34000080bf87dad53b04fa3d3c2b1380bd2d45893c34deaabcec4677bfdc83843e18dacfb5dd83843eec46773fd05e9e32000080bfacdad5bbb910e433301380bd2545893c297dbfbbec4677bfdc83843e2210d1b5dc83843eec46773f0fc10533000080bfd6dad5bb72fa3d3c56a865bdc497043d32deaabcd2b35dbf0a00003f6ebbe0330a00003fd1b35d3f86d66e34000080bfa2dad53bb910e43358a865bdbb97043d207dbfbbccb35dbf1400003f23ee72351300003fcbb35d3f4b9f0c34000080bf6fdad53b72fa3d3c56a865bdc497043d32deaabcd2b35dbf0a00003f6ebbe0330900003fd2b35d3f39817d34000080bf92dad5bbaa6648b358a865bdbb97043d207dbfbbccb35dbf1400003f23ee72351400003fccb35d3fd2f0a034000080bfc0dad5bbcef93d3cbe833bbdbd833b3d30deaabcf30435bff304353f9d31ce35f304353ff304353f0eb6b9b2000080bfbddad53baa6648b3b7833bbdba833b3d1b7dbfbbfb0435bfec04353fce6e6335eb04353ffb04353ff76aeb32000080bfc7dad53bcef93d3cbe833bbdbd833b3d30deaabcf30435bff304353f9d31ce35f304353ff304353fbd2a5934000080bfabdad5bb9753c6b3b7833bbdba833b3d1b7dbfbbfb0435bfec04353fce6e6335eb04353ffb04353fd188ef33000080bf93dad5bb9df93d3cc79704bd56a8653d30deaabc0f0000bfcfb35d3f813b65b5cfb35d3f0f00003f126ff133000080bfa9dad53b9753c6b3d09704bd59a8653d1b7dbfbb0c0000bfd0b35d3f86d240b5d1b35d3f0d00003fad16cb33000080bf8bdad53b9df93d3cc79704bd56a8653d30deaabc0f0000bfcfb35d3f813b65b5cfb35d3f0f00003f176ff1b3000080bfaddad5bbfe69c233d09704bd59a8653d1b7dbfbb0c0000bfd0b35d3f86d240b5d0b35d3f0c00003fa516cbb3000080bfd7dad5bb61fa3d3c354589bc2a13803d30deaabcd08384beee46773f6b52ba35ee46773fd083843e9d3c44b4000080bf9adad53bfe69c233254589bc2613803d1b7dbfbbc88384bef046773f545bdc35f046773fc883843e721468b4000080bfb7dad53b61fa3d3c354589bc2a13803d30deaabcd08384beee46773f6b52ba35ee46773fd083843e993c4434000080bfaddad5bbc854bcb3254589bc2613803d1b7dbfbbc88384bef046773f545bdc35f046773fc883843e67146834000080bf83dad5bba2f93d3cb5bd25b2c597843d30deaabc5f802fb50000803fe0c25bb40000803f4c7c2e354475e732000080bfafdad53bc854bcb300000000c797843d1b7dbfbba38d35b50000803fb14775b40000803f99b734353f2b0133000080bfc2dad53ba2f93d3cb5bd25b2c597843d30deaabc5f802fb50000803fe0c25bb40000803f4d7c2e354475e7b2000080bfa7dad5bbd74f6d3300000000c797843d1b7dbfbba38d35b50000803fb14775b40000803f9ab73435402b01b3000080bf9adad5bb3bfa3d3c2545893c2a13803d30deaabc0784843ee746773fe8979a35e846773f088484bef4d122b4000080bfa5dad53bd74f6d332545893c2613803d1b7dbfbb0e84843ee646773f7285b735e646773f0e8484be264941b4000080bfabdad53b3bfa3d3c2545893c2a13803d30deaabc0784843ee746773fe8979a35e846773f078484bef3d12234000080bfa8dad5bbd5fd95b32545893c2613803d1b7dbfbb0e84843ee646773f7285b735e646773f0e8484be22494134000080bf99dad5bbb5f93d3cc097043d55a8653d30deaabcf7ffff3edab35d3f6f71e934dab35d3ff8ffffbe2ade75b3000080bfa5dad53bd5fd95b3ba97043d59a8653d1b7dbfbbecffff3eddb35d3f2abf8131ddb35d3fecffffbe28a708b0000080bf7cdad53bb5f93d3cc097043d55a8653d30deaabcf7ffff3edab35d3f6f71e934dab35d3ff7ffffbe29de7533000080bf98dad5bb95038532ba97043d59a8653d1b7dbfbbecffff3eddb35d3f2abf8131ddb35d3fecffffbe26a70830000080bfc4dad5bb11fa3d3cb7833b3dbd833b3d30deaabcf604353ff104353ff6b9da34f104353ff60435bfea5d66b3000080bfb4dad53b95038532b7833b3dba833b3d1b7dbfbb0105353fe604353fe1b5b335e604353f010535bf81463db4000080bfc2dad53b11fa3d3cb7833b3dbd833b3d30deaabcf604353ff104353ff6b9da34f104353ff50435bfb41e35b4000080bfc1dad5bb37d9d9b2b7833b3dba833b3d1b7dbfbb0105353fe604353fe1b5b335e604353f000535bff3b195b1000080bfaedad5bbe5f93d3c4ea8653dc597043d32deaabcdcb35d3ff1ffff3ef6573b36f0ffff3edcb35dbfff2413b5000080bf81dad53b37d9d9b243a8653dbb97043d207dbfbbddb35d3febffff3e1cbc4736ecffff3edeb35dbfab7a0eb5000080bf8adad53be5f93d3c4ea8653dc597043d32deaabcdcb35d3ff1ffff3ef6573b36f0ffff3edcb35dbfd7e91b34000080bf8ddad5bb94792bb443a8653dbb97043d207dbfbbddb35d3febffff3e1cbc4736ecffff3edeb35dbf46172734000080bf6edad5bb55f93d3c2713803d3045893c34deaabce746773f0684843e2606c4350584843ee84677bf620be6b4000080bfc3dad53b94792bb42613803d2545893c297dbfbbe246773f2784843e090c98342984843ee34677bffa4a9ab4000080bfd8dad53b55f93d3c2713803d3045893c34deaabce746773f0684843e2606c4350584843ee64677bf4134ae33000080bfb6dad5bb4b1e19b32613803d2545893c297dbfbbe246773f2784843e090c98342984843ee34677bf8a249db2000080bf9bdad5bbdaf93d3cc297843db379c2b135deaabc0000803ffce5dd343cc87bb5a856e034000080bfbbd39133000080bfaddad53b4b1e19b3c597843df1fcdcb0297dbfbb0000803f5709ee34195f82b543cdec34000080bfb04f0934000080bfaadad53bdaf93d3cc297843db379c2b135deaabc0000803ffce5dd343cc87bb5aa56e034000080bf689704b4000080bfa5dad5bb7f37ce33c597843df1fcdcb0297dbfbb0000803f5709ee34195f82b544cdec34000080bfa2e853b4000080bfb5dad5bb67fa3d3c2713803d2d4589bc35deaabce746773f048484be95074a34058484bee84677bfe463cab3000080bfa2dad53b7f37ce332613803d264589bc2e7dbfbbe346773f238484be7992af35238484bee34677bf2d0ea7b4000080bf8edad53b67fa3d3c2713803d2d4589bc35deaabce746773f048484be95074a34048484bee64677bffac7d432000080bfd0dad5bb366136b32613803d264589bc2e7dbfbbe346773f238484be7992af35248484bee34677bf78ea3834000080bfdfdad5bbd2f93d3c4ea8653dc49704bd35deaabcd3b35d3f090000bf7a5d3036090000bfd2b35dbf01c0b9b4000080bf7ddad53b366136b343a8653dbd9704bd2e7dbfbbd3b35d3f080000bffc082a36080000bfd3b35dbfe614b3b4000080bf69dad53bd2f93d3c4ea8653dc49704bd35deaabcd3b35d3f090000bf7a5d3036090000bfd2b35dbfdbc90434000080bf82dad5bb9cff26b443a8653dbd9704bd2e7dbfbbd3b35d3f080000bffc082a36080000bfd4b35dbf6610d133000080bf81dad5bb59f93d3cb7833b3dbd833bbd37deaabcfd04353fe90435bfe25fa435ea0435bffe0435bf9c60d5b4000080bfc4dad53b9cff26b4b7833b3dba833bbd377dbfbb0505353fe10435bf817acc34e10435bf050535bf1f32a1b4000080bfb7dad53b59f93d3cb7833b3dbd833bbd37deaabcfd04353fe90435bfe25fa435ea0435bffe0435bfa51f2d34000080bfb0dad5bb9a12b9b2b7833b3dba833bbd377dbfbb0505353fe10435bf817acc34e10435bf050535bfe85c5733000080bfb9dad5bbe9f93d3cbe97043d56a865bd37deaabc0200003fd6b35dbfd30c49b1d5b35dbf020000bf14c0d32f000080bfb2dad53b9a12b9b2ba97043d59a865bd377dbfbbfbffff3ed8b35dbf5023b234d8b35dbffbffffbe999e3bb3000080bfcddad53be9f93d3cbe97043d56a865bd37deaabc0200003fd6b35dbfd30c49b1d6b35dbf020000bf10c0d3af000080bf93dad5bb6e3c1933ba97043d59a865bd377dbfbbfbffff3ed8b35dbf5023b234d8b35dbffdffffbe9b9e3b33000080bf7cdad5bb26fa3d3c2045893c2a1380bd37deaabce183843eec4677bfa656ab35ed4677bfe18384bed87434b4000080bfbadad53b6e3c19332545893c261380bd377dbfbbe983843eeb4677bf6b3d8635eb4677bfe98384bee8610db4000080bf99dad53b26fa3d3c2045893c2a1380bd37deaabce183843eec4677bfa656ab35ed4677bfe18384bede743434000080bfaddad5bbcc86bab32545893c261380bd377dbfbbe983843eeb4677bf6b3d8635eb4677bfe98384beec610d34000080bfc3dad5bba3f93d3c8f9c78b2c59784bd37deaabc76963935000080bfbf497fb4000080bfe3f23ab51c700633000080bf95dad53bcc86bab300000000c79784bd377dbfbba38d3535000080bf621f71b4000080bf99b734b586f5fd32000080bf80dad53ba3f93d3c8f9c78b2c59784bd37deaabc76963935000080bfbf497fb4000080bfe3f23ab51d7006b3000080bfafdad5bb6aab403300000000c79784bd377dbfbba38d3535000080bf621f71b4000080bf99b734b586f5fdb2000080bfcadad5bb30fa3d3c334589bc2a1380bd37deaabc068484bee74677bf015ad635e64677bf0684843e23c261b4000080bf9edad53b6aab4033254589bc261380bd377dbfbbfd8384bee84677bf11b4b135e84677bffe83843e58283bb4000080bf7bdad53b30fa3d3c334589bc2a1380bd37deaabc068484bee74677bf015ad635e84677bf0784843ef3c16134000080bf9edad5bb0d6fd7b3254589bc261380bd377dbfbbfd8384bee84677bf11b4b135e84677bffd83843e44283b34000080bfb4dad5bb94f93d3cc69704bd56a865bd37deaabceaffffbedeb35dbf771f62b5ddb35dbfe9ffff3e8a28ee33000080bfacdad53b0c6fd7b3d09704bd59a865bd377dbfbbe5ffffbedfb35dbf7b3579b5e0b35dbfe6ffff3e153d0334000080bfdadad53b94f93d3cc69704bd56a865bd37deaabceaffffbedeb35dbf771f62b5deb35dbfe9ffff3ea828eeb3000080bfafdad5bbbd8ef533d09704bd59a865bd377dbfbbe5ffffbedfb35dbf7b3579b5e0b35dbfe4ffff3e1a3d03b4000080bf8edad5bb7bfa3d3cbd833bbdbe833bbd37deaabcfb0435bfeb0435bff41b5635eb0435bffb04353f8c80e1b3000080bf99dad53bbd8ef533b7833bbdba833bbd377dbfbbfc0435bfea0435bf495b6435ea0435bffd04353f3581f0b3000080bf93dad53b7bfa3d3cbd833bbdbe833bbd37deaabcfb0435bfeb0435bff41b5635eb0435bffb04353f3fbbaf34000080bf9bdad5bbb6d1b7b3b7833bbdba833bbd377dbfbbfc0435bfea0435bf495b6435ea0435bffc04353f1bf1ba34000080bf95dad5bba4f93d3c55a865bdc99704bd35deaabcceb35dbf100000bf99da44b5100000bfceb35d3f11a6b234000080bfafdad53bb6d1b7b358a865bdd19704bd2e7dbfbbcfb35dbf0e0000bf2d2929b50d0000bfcfb35d3f3dd1b234000080bf8cdad53ba4f93d3c55a865bdc99704bd35deaabcceb35dbf100000bf99da44b5100000bfceb35d3f0155cfb3000080bfafdad5bbd6d0a23358a865bdd19704bd2e7dbfbbcfb35dbf0e0000bf2d2929b50f0000bfcfb35d3fd12ab2b3000080bfdddad5bb51fa3d3c2a1380bd354589bc35deaabcee4677bfd08384be27d5ba35d08384beee46773f54c644b4000080bf9bdad53bd6d0a233261380bd264589bc2e7dbfbbf04677bfc48384bedf9bf635c38384bef046773f55dd81b4000080bfb0dad53b51fa3d3c2a1380bd354589bc35deaabcee4677bfd08384be27d5ba35cf8384beee46773f51c64434000080bfabdad5bb9008ffb3261380bd264589bc2e7dbfbbf04677bfc48384bedf9bf635c58384bef046773fcc29a734000080bf85dad5bb80f93d3cc59784bd0000000035deaabc000080bff47b2db5f57116354b7c2eb50000803f721d94b1000080bfbfdad53b9008ffb3c59784bdf1fcdcb0297dbfbb000080bf32e8deb5cdfc1eb5d8c7deb50000803f5eeb6834000080bfbfdad53b80f93d3cc59784bdf1fcdcb0297dbfbb8edad3bd4e44b5b46ba07e3f6aa07ebf57fc51a88edad3bd000080bfcfc9463d6a876eb9d39c52bdf1fcdcb0481592bb5262c2bdd004a3b422d87e3f23d87ebfb7f505b35262c2bd000080bf2d6a1c3d6a876eb9301380bd2545893c297dbfbb81a2ccbd7b53db3c6ba07e3fc6b77ebf1fcac43899b6ccbd000080bff4d83f3d2b51503cab6f4bbdcc0a5a3c481592bbb2c2bbbd813dc93c23d87e3fc9eb7ebf95d09739e9d4bbbd000080bff9e6163d22ae243c301380bd2545893c297dbfbb81a2ccbd7b53db3c6ba07e3fd0b77ebfe4fac4b8f9b3ccbd000080bf5c51403d3342493cab6f4bbdcc0a5a3c481592bbb2c2bbbd813dc93c23d87e3fd0eb7ebf3feef538b5d2bbbd000080bfe85f173d4a971d3c58a865bdbb97043d207dbfbb8478b7bd82da533d6ba07e3facf77ebf71c7b739f1c0b7bd000080bf19f42b3de77ec73c546536bdd39cd23c3f1592bb5b57a8bd5e62423d23d87e3f8a217fbf5bd1303ab398a8bd000080bf7e33073dec509d3c58a865bdbb97043d207dbfbb8478b7bd82da533d6ba07e3fe2f77ebf214ab8b9f4adb7bd000080bfe0cf2c3d8681c43c546536bdd39cd23c3f1592bb5b57a8bd5e62423d23d87e3fb8217fbfd1370138bb88a8bd000080bf1013083d52469a3cb7833bbdba833b3d1b7dbfbb7dcd95bd6fcd953d6ca07e3f3c4f7fbf640e383a674f96bd000080bfa4600c3d1ac10c3de3ec14bde3ec143d3f1592bb377389bd2f73893d23d87e3f376b7fbf39088a3ac3e789bd000080bf19a1dc3cb6c8dd3cb7833bbdba833b3d1b7dbfbb7dcd95bd6fcd953d6ca07e3fbc4f7fbf3a2a38ba8b1996bd000080bf877e0d3db7a10b3de3ec14bde3ec143d3f1592bb377389bd2f73893d23d87e3fa36b7fbf41f178b960ba89bd000080bf6df2de3c4574db3cd09704bd59a8653d1b7dbfbb77da53bd5278b73d6ca07e3f36a77fbfca358a3ab21855bd000080bf9454c63c564a2c3dd39cd2bc5665363d3a1592bb706242bd4d57a83d23d87e3f42b57fbfbc33ad3a827d43bd000080bffcb59b3c3baa073dd09704bd59a8653d1b7dbfbb77da53bd5278b73d6ca07e3fdba77fbf4b5e8abaf35154bd000080bf4ad3c83cf9902b3dd39cd2bc5665363d3a1592bb706242bd4d57a83d23d87e3fceb57fbf3a6c21ba34d642bd000080bf745c9e3c54e5063d254589bc2613803d1b7dbfbb9853dbbc81a2cc3d6ba07e3ffbe77fbf4f22ac3a6c82ddbc000080bfc83b4c3c1a1f403dcc0a5abc996f4b3d3a1592bbc03dc9bcb1c2bb3d23d87e3fc8eb7fbfced2b83ac227cbbc000080bfbcee1f3c8938173d254589bc2613803d1b7dbfbb9853dbbc81a2cc3d6ba07e3f73e87fbf0953acba2a59dbbc000080bf4467513cf9c53f3dcc0a5abc996f4b3d3a1592bbc03dc9bcb1c2bb3d23d87e3f2cec7fbfff6c83ba1356c9bc000080bfdc88253cf6d7163d00000000c797843d1b7dbfbb8f0316b382dad33d6ba07e3fefff7fbf2fa0b83a04a619b9000080bf927926b91bca463d00000000d49c523d3a1592bbda05c6b24462c23d23d87e3ff2ff7fbf7a90a93a225c01b9000080bf87d635b97c6a1c3d00000000c797843d1b7dbfbb8f0316b382dad33d6ba07e3fefff7fbffda5b8baba971939000080bfa87326391bca463d00000000d49c523d3a1592bbda05c6b24462c23d23d87e3ff2ff7fbfdf95a9ba06540139000080bf9fd035397c6a1c3d2545893c2613803d1b7dbfbbe053db3c81a2cc3d6ba07e3f73e87fbfb643ac3a8a59db3c000080bf5b6751bcf8c53f3dcb0a5a3c996f4b3d3a1592bbda3dc93caec2bb3d23d87e3f2cec7fbfb65d833a4156c93c000080bff38825bcf5d7163d2545893c2613803d1b7dbfbbe053db3c81a2cc3d6ba07e3ffbe77fbf5022acbab482dd3c000080bfdd3b4cbc1a1f403dcb0a5a3c996f4b3d3a1592bbda3dc93caec2bb3d23d87e3fc8eb7fbfc8deb8baef27cb3c000080bfd1ee1fbc8a38173dba97043d59a8653d1b7dbfbb7bda533d8978b73d6ba07e3fdba77fbf0e678a3af151543d000080bf34d3c8bcfa902b3dd29cd23c5665363d3a1592bb5a62423d5757a83d23d87e3fceb57fbf7665213a20d6423d000080bf7f5c9ebc54e5063dba97043d59a8653d1b7dbfbb7bda533d8978b73d6ba07e3f36a77fbf6f398ababb18553d000080bf7f54c6bc544a2c3dd29cd23c5665363d3a1592bb5a62423d5757a83d23d87e3f42b57fbf5546adba7a7d433d000080bf07b69bbc38aa073db7833b3dba833b3d1b7dbfbba0cd953d4fcd953d6ca07e3fbb4f7fbf9f47383aa819963d000080bf8d7e0dbdb4a10b3de3ec143de3ec143d3f1592bb5d73893d0e73893d23d87e3fa36b7fbf61f0783986ba893d000080bf78f2debc3f74db3cb7833b3dba833b3d1b7dbfbba0cd953d4fcd953d6ca07e3f3c4f7fbfdf1038ba8b4f963d000080bfab600cbd1dc10c3de3ec143de3ec143d3f1592bb5d73893d0e73893d23d87e3f386b7fbf1ff089bae5e7893d000080bf27a1dcbcbcc8dd3c43a8653dbb97043d207dbfbb7978b73d6dda533d6ba07e3fe2f77ebf3efeb739edadb73d000080bfd7cf2cbd8c81c43c3f65363dd39cd23c3f1592bb7057a83d5862423d22d87e3fb8217fbf145600b8cf88a83d000080bf071308bd58469a3c43a8653dbb97043d207dbfbb7978b73d6dda533d6ba07e3facf77ebf78b0b7b9e5c0b73d000080bf0ff42bbde77ec73c3f65363dd39cd23c3f1592bb7057a83d5862423d22d87e3f8a217fbf6acb30bac998a83d000080bf743307bdeb509d3c2613803d2545893c297dbfbb77a2cc3dd053db3c6ba07e3fceb77ebf8e3fc538f0b3cc3d000080bf525140bd3342493c966f4b3dcc0a5a3c481592bbb4c2bb3df93dc93c22d87e3fd0eb7ebf04def5b8b8d2bb3d000080bfde5f17bd4a971d3c2613803d2545893c297dbfbb77a2cc3dd053db3c6ba07e3fc6b77ebf34bfc4b890b6cc3d000080bfebd83fbd2351503c966f4b3dcc0a5a3c481592bbb4c2bb3df93dc93c22d87e3fc9eb7ebfacd597b9edd4bb3d000080bff0e616bd1aae243cc597843df1fcdcb0297dbfbb89dad33dcc0320b16ba07e3f6aa07ebfb104c33288dad33d000080bfd5c946bd66896eb9d39c523df1fcdcb0481592bb5162c23d0606cc3222d87e3f23d87ebf11e05faf5162c23d000080bf346a1cbd68896eb9c597843df1fcdcb0297dbfbb89dad33dcc0320b16ba07e3f6aa07ebfdf5d392588dad33d000080bfd5c946bd8f896e39d39c523df1fcdcb0481592bb5162c23d0606cc3222d87e3f23d87ebfca42b7325162c23d000080bf336a1cbd8f896e392613803d264589bc2e7dbfbb85a2cc3d6e54dbbc6ba07e3fc6b77ebf34e5c4389db6cc3d000080bfead83fbd225150bc966f4b3dcd0a5abc481592bbadc2bb3d843ec9bc22d87e3fc9eb7ebfdfde9739e7d4bb3d000080bff0e616bd19ae24bc2613803d264589bc2e7dbfbb85a2cc3d6e54dbbc6ba07e3fceb77ebfb529c5b8fcb3cc3d000080bf525140bd344249bc966f4b3dcd0a5abc481592bbadc2bb3d843ec9bc22d87e3fd0eb7ebfd7e5f538b1d2bb3d000080bfde5f17bd4a971dbc43a8653dbd9704bd2e7dbfbb8178b73db6da53bd6ba07e3facf77ebf04c5b739eec0b73d000080bf0ff42bbde87ec7bc3f65363dd59cd2bc4c1592bb6f57a83d886242bd22d87e3f8a217fbfe2d3303ac998a83d000080bf743307bdec509dbc43a8653dbd9704bd2e7dbfbb8178b73db6da53bd6ba07e3fe2f77ebf22fbb7b9f5adb73d000080bfd5cf2cbd8881c4bc3f65363dd59cd2bc4c1592bb6f57a83d886242bd22d87e3fb8217fbf41930038cf88a83d000080bf061308bd55469abcb7833b3dba833bbd377dbfbba0cd953d9ccd95bd6ba07e3f3c4f7fbf3704383a8a4f963d000080bfaa600cbd1bc10cbde3ec143de6ec14bd4c1592bb5273893d4d7389bd22d87e3f376b7fbfe0ea893ad8e7893d000080bf24a1dcbcb9c8ddbcb7833b3dba833bbd377dbfbba0cd953d9ccd95bd6ba07e3fbb4f7fbff25438baa619963d000080bf8e7e0dbdb6a10bbde3ec143de6ec14bd4c1592bb5273893d4d7389bd22d87e3fa36b7fbf941b79b97bba893d000080bf7af2debc4274dbbcba97043d59a865bd377dbfbb8fda533d8478b7bd6ba07e3f36a77fbfd2308a3ac818553d000080bf8154c6bc554a2cbdd29cd23c566536bd561592bb5462423d7b57a8bd22d87e3f42b57fbf1c3fad3a707d433d000080bf0ab69bbc39aa07bdba97043d59a865bd377dbfbb8fda533d8478b7bd6ba07e3fdba77fbf40668aba0652543d000080bf34d3c8bcf9902bbdd29cd23c566536bd561592bb5462423d7b57a8bd22d87e3fceb57fbfc86e21ba18d6423d000080bf7e5c9ebc54e506bd2545893c261380bd377dbfbbba53db3c85a2ccbd6ba07e3ffbe77fbfba20ac3a8b82dd3c000080bfdd3b4cbc191f40bdcb0a5a3c996f4bbd561592bbd13dc93cc0c2bbbd22d87e3fc8eb7fbf6ed7b83adc27cb3c000080bfd0ee1fbc893817bd2545893c261380bd377dbfbbba53db3c85a2ccbd6ba07e3f73e87fbf4353acba4c59db3c000080bf5c6751bcf9c53fbdcb0a5a3c996f4bbd561592bbd13dc93cc0c2bbbd22d87e3f2cec7fbf236d83ba2456c93c000080bff48825bcf6d716bd00000000c79784bd377dbfbb8f03163382dad3bd6ba07e3fefff7fbf2fa0b83a04a61939000080bf937326391bca46bd00000000d49c52bd561592bbe805c8325462c2bd22d87e3ff2ff7fbf8a90a93a225c0139000080bf88d035397c6a1cbd00000000c79784bd377dbfbb8f03163382dad3bd6ba07e3fefff7fbffda5b8baba9719b9000080bfa87926b91bca46bd00000000d49c52bd561592bbe805c8325462c2bd22d87e3ff2ff7fbfee95a9ba065401b9000080bf9fd635b97c6a1cbd254589bc261380bd377dbfbbae53dbbc85a2ccbd6ba07e3f73e87fbf6a43ac3a5959dbbc000080bf4367513cf8c53fbdcc0a5abc996f4bbd561592bbd83dc9bcbbc2bbbd22d87e3f2bec7fbfc15d833a4056c9bc000080bfdb88253cf5d716bd254589bc261380bd377dbfbbae53dbbc85a2ccbd6ba07e3ffbe77fbfa426acba8882ddbc000080bfc83b4c3c1a1f40bdcc0a5abc996f4bbd561592bbd83dc9bcbbc2bbbd22d87e3fc8eb7fbfccddb8baed27cbbc000080bfbcee1f3c893817bdd09704bd59a865bd377dbfbb6eda53bd6678b7bd6ba07e3fdba77fbfd8678a3ae25154bd000080bf4ad3c83cf9902bbdd39cd2bc566536bd561592bb436242bd6f57a8bd22d87e3fceb57fbf4871213a06d642bd000080bf745c9e3c54e506bdd09704bd59a865bd377dbfbb6eda53bd6678b7bd6ba07e3f36a77fbf97398abaad1855bd000080bf9354c63c554a2cbdd39cd2bc566536bd561592bb436242bd6f57a8bd22d87e3f42b57fbfad47adba647d43bd000080bffbb59b3c39aa07bdb7833bbdba833bbd377dbfbb89cd95bda7cd95bd6ba07e3fbb4f7fbf3045383a921996bd000080bf877e0d3db5a10bbde3ec14bde6ec14bd4c1592bb3c7389bd5d7389bd22d87e3fa36b7fbff8dc783967ba89bd000080bf6cf2de3c4274dbbcb7833bbdba833bbd377dbfbb89cd95bda7cd95bd6ba07e3f3d4f7fbf73f837ba734f96bd000080bfa7600c3d1bc10cbde3ec14bde6ec14bd4c1592bb3c7389bd5d7389bd22d87e3f376b7fbffde889bac1e789bd000080bf1ea1dc3cb8c8ddbc58a865bdd19704bd2e7dbfbb6078b7bd8eda53bd6ba07e3fe2f77ebf361cb839d3adb7bd000080bfe3cf2c3da781c4bc546536bdd59cd2bc4c1592bb5f57a8bd6b6242bd23d87e3fb8217fbf220000b8be88a8bd000080bf1313083d54469abc58a865bdd19704bd2e7dbfbb6078b7bd8eda53bd6ba07e3facf77ebf75b0b7b9ccc0b7bd000080bf19f42b3d0d7fc7bc546536bdd59cd2bc4c1592bb5f57a8bd6b6242bd23d87e3f8a217fbf2cca30bab798a8bd000080bf7d33073df1509dbc261380bd264589bc2e7dbfbb87a2ccbdbb53dbbc6ba07e3fceb77ebf1f50c53800b4ccbd000080bf4c51403d3f4249bc966f4bbdcd0a5abc481592bbbdc2bbbdfa3dc9bc22d87e3fd0eb7ebfe4c4f5b8c1d2bbbd000080bfd75f173d55971dbc261380bd264589bc2e7dbfbb87a2ccbdbb53dbbc6ba07e3fc6b77ebf27f4c4b8a0b6ccbd000080bfe5d83f3d235150bc966f4bbdcd0a5abc481592bbbdc2bbbdfa3dc9bc22d87e3fc9eb7ebf43dc97b9f7d4bbbd000080bfeae6163d1aae24bcc59784bdf1fcdcb0297dbfbb8edad3bd4e44b5b46ba07e3f6aa07ebf757ee2b28ddad3bd000080bfcfc9463d64896e39d39c52bdf1fcdcb0481592bb5262c2bdd004a3b422d87e3f23d87ebf68e132b15262c2bd000080bf2e6a1c3d66896e392b1380bd2d45893c34deaabcb5fc8332bded3434000080bf0000803f67e4d3b2b3fc8332000080bf55d245bd4a06543c56a865bdc497043d32deaabcb5fc033362807234000080bf0000803f66e453b3b2fc0333000080bfac5c31bdcdcccc3cbe833bbdbd833b3d30deaabc2c91c6b28e9d4134000080bf0000803f27cfc4332291c6b2000080bfc3d010bdc3d0103db5bd25b2c597843d30deaabc0000e02732751a34000080bf0000803fee21f7280a00e027000080bf00008031cdcc4c3db7833b3dbd833b3d30deaabc1791c632909d4134000080bf0000803f902c14b40a91c632000080bfc3d0103dc3d0103d4ea8653dc597043d32deaabc63ca34b326d18334000080bf0000803fa6d40fb46dca34b3000080bfab5c313dcfcccc3c2713803d3045893c34deaabcb8fc83b2baed3434000080bf0000803f6f27e432b6fc83b2000080bf55d2453d4f06543cc297843db379c2b135deaabc770f2f2825b6ee33000080bf0000803f5f3477a8760f2f28000080bfcdcc4c3df13096b12713803d2d4589bc35deaabc0000000000000000000080bf0000803f0bf5833200000000000080bf55d2453d4b0654bc4ea8653dc49704bd35deaabc0000000000000000000080bf0000803fd74fcd3200000000000080bfab5c313dccccccbcb7833b3dbd833bbd37deaabc17d72233a6150034000080bf0000803fe2e04cb216d72233000080bfc3d0103dc2d010bd8f9c78b2c59784bd37deaabc000080a6ea217733000080bf0000803f578c1a34e1310528000080bf00000000cdcc4cbd334589bc2a1380bd37deaabc76240232eb217733000080bf0000803f43a2d5337c240232000080bf480654bc55d245bdc69704bd56a865bd37deaabcee21f732e4055633000080bf0000803f465612b4eb21f732000080bfcbccccbcad5c31bdbd833bbdbe833bbd37deaabc32be173355c14533000080bf0000803ff3b323b430be1733000080bfc1d010bdc4d010bd55a865bdc99704bd35deaabc40b66eb3febace33000080bf0000803fbae49d333fb66eb3000080bfab5c31bdd2ccccbc + m_CompressedMesh: + m_Vertices: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_UV: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_Normals: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_Tangents: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_Weights: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_NormalSigns: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_TangentSigns: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_FloatColors: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_BoneIndices: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_Triangles: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_UVInfo: 0 + m_LocalAABB: + m_Center: {x: -0.000000029802322, y: 0.0591359, z: -0.33409745} + m_Extent: {x: 0.14364533, y: 0.20278113, z: 0.39892757} + m_MeshUsageFlags: 0 + m_BakedConvexCollisionMesh: + m_BakedTriangleCollisionMesh: + m_MeshMetrics[0]: 1 + m_MeshMetrics[1]: 1 + m_MeshOptimizationFlags: 1 + m_StreamData: + offset: 0 + size: 0 + path: diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Meshes/CameraModel.asset.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Meshes/CameraModel.asset.meta new file mode 100644 index 0000000..3171c79 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Meshes/CameraModel.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d0d662a32b4408c4f82ac9e1d3b604f8 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 4300000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Models.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Models.meta new file mode 100644 index 0000000..977a048 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Models.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f7d7cd81282c66b418432a6a4526abc9 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Models/Teleport Hightlight.fbx b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Models/Teleport Hightlight.fbx new file mode 100644 index 0000000..9517c7b --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Models/Teleport Hightlight.fbx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3c7a64ad0422d85779d1bcd6a83c802e0ed51e28e0f0c2533e2b843a0df3bfc2 +size 22544 diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Models/Teleport Hightlight.fbx.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Models/Teleport Hightlight.fbx.meta new file mode 100644 index 0000000..30a3e48 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Models/Teleport Hightlight.fbx.meta @@ -0,0 +1,109 @@ +fileFormatVersion: 2 +guid: 8f1dbb3126c0e854593accdf425a3e75 +ModelImporter: + serializedVersion: 22200 + internalIDToNameTable: [] + externalObjects: {} + materials: + materialImportMode: 2 + materialName: 0 + materialSearch: 1 + materialLocation: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleCurves: 1 + optimizeGameObjects: 0 + removeConstantScaleCurves: 0 + motionNodeName: + rigImportErrors: + rigImportWarnings: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + importAnimatedCustomProperties: 0 + importConstraints: 0 + animationCompression: 1 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + extraUserProperties: [] + clipAnimations: [] + isReadable: 0 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + useSRGBMaterialColor: 1 + sortHierarchyByName: 1 + importPhysicalCameras: 1 + importVisibility: 1 + importBlendShapes: 1 + importCameras: 1 + importLights: 1 + nodeNameCollisionStrategy: 1 + fileIdsGeneration: 2 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + keepQuads: 0 + weldVertices: 1 + bakeAxisConversion: 0 + preserveHierarchy: 0 + skinWeightsMode: 0 + maxBonesPerVertex: 4 + minBoneWeight: 0.001 + optimizeBones: 1 + meshOptimizationFlags: -1 + indexFormat: 0 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVMarginMethod: 1 + secondaryUVMinLightmapResolution: 40 + secondaryUVMinObjectScale: 1 + secondaryUVPackMargin: 4 + useFileScale: 1 + strictVertexDataChecks: 0 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + normalCalculationMode: 4 + legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0 + blendShapeNormalImportMode: 1 + normalSmoothingSource: 0 + referencedClips: [] + importAnimation: 1 + humanDescription: + serializedVersion: 3 + human: [] + skeleton: [] + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 0.05 + legStretch: 0.05 + feetSpacing: 0 + globalScale: 1 + rootMotionBoneName: + hasTranslationDoF: 0 + hasExtraRoot: 0 + skeletonHasParents: 1 + lastHumanDescriptionAvatarSource: {instanceID: 0} + autoGenerateAvatarMappingIfUnspecified: 1 + animationType: 2 + humanoidOversampling: 1 + avatarSetup: 0 + addHumanoidExtraRootOnlyWhenUsingAvatar: 1 + importBlendShapeDeformPercent: 1 + remapMaterialsIfMaterialImportModeIsNone: 0 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Prefabs.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Prefabs.meta new file mode 100644 index 0000000..efc86c3 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Prefabs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 44890359a931bef448ae08bb84d0d6b7 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Prefabs/Spectator Camera Manager.prefab b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Prefabs/Spectator Camera Manager.prefab new file mode 100644 index 0000000..f1342ac --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Prefabs/Spectator Camera Manager.prefab @@ -0,0 +1,69 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &5455537709113072448 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8855335694811565467} + - component: {fileID: 9002775830349752558} + m_Layer: 0 + m_Name: Spectator Camera Manager + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8855335694811565467 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5455537709113072448} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 5} + 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!114 &9002775830349752558 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5455537709113072448} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fda46617f9e447e47863938d3006d5bd, type: 3} + m_Name: + m_EditorClassIdentifier: + cameraSourceRef: 1 + layerMask: + serializedVersion: 2 + m_Bits: 4294967295 + k__BackingField: 1 + k__BackingField: 10 + isFrustumShowed: 0 + verticalFov: 60 + k__BackingField: 2048 + k__BackingField: 0 + k__BackingField: 1 + frustumLineCount: 4 + frustumCenterLineCount: 1 + frustumLineWidth: 0.02 + frustumCenterLineWidth: 0.01 + frustumLineColor: {r: 1, g: 1, b: 1, a: 1} + frustumCenterLineColor: {r: 1, g: 1, b: 1, a: 1} + k__BackingField: {fileID: 4478278949747253389, guid: 1d98759068c84da47a597d689afeece3, type: 3} + followSpectatorCameraTracker: {fileID: 0} + spectatorCameraViewMaterial: {fileID: 2100000, guid: 08727ef98368b6d46b9189c4fb8c5289, type: 2} + k__BackingField: 0 + k__BackingField: 0 + k__BackingField: 0 diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Prefabs/Spectator Camera Manager.prefab.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Prefabs/Spectator Camera Manager.prefab.meta new file mode 100644 index 0000000..d34e836 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Prefabs/Spectator Camera Manager.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: edd76ab89f604d840b51822a32d1c40a +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Prefabs/Spectator Camera Prefab.prefab b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Prefabs/Spectator Camera Prefab.prefab new file mode 100644 index 0000000..c754dce --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Prefabs/Spectator Camera Prefab.prefab @@ -0,0 +1,375 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &3207255331354799615 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8802968576851214991} + - component: {fileID: 9075008143350142828} + - component: {fileID: 1550499364688184923} + - component: {fileID: 8666342607456077399} + - component: {fileID: 3836444818127427370} + m_Layer: 5 + m_Name: Preview Panel (Front) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8802968576851214991 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3207255331354799615} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 1, z: 0, w: 0} + m_LocalPosition: {x: 0.658, y: 0.119, z: 0} + m_LocalScale: {x: 0.8, y: 0.45, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 3675900598077867961} + m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0} +--- !u!33 &9075008143350142828 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3207255331354799615} + m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &1550499364688184923 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3207255331354799615} + 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: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!64 &8666342607456077399 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3207255331354799615} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 1 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 5 + m_Convex: 1 + m_CookingOptions: 30 + m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} +--- !u!114 &3836444818127427370 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3207255331354799615} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 69583d931f8502647afcc5c3266f4d2c, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &4478278949747253389 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3675900598077867961} + - component: {fileID: 6820870503576478126} + - component: {fileID: 1878765693597741550} + - component: {fileID: 6820870503576478127} + - component: {fileID: 6411115713126809823} + m_Layer: 5 + m_Name: Spectator Camera Prefab + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3675900598077867961 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4478278949747253389} + 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: 8802968576851214991} + - {fileID: 7337341319625064994} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &6820870503576478126 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4478278949747253389} + m_Mesh: {fileID: 4300000, guid: d0d662a32b4408c4f82ac9e1d3b604f8, type: 2} +--- !u!23 &1878765693597741550 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4478278949747253389} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 054c9f8dbab5635489881b3867319137, 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!65 &6820870503576478127 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4478278949747253389} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 0.28729066, y: 0.40556225, z: 0.79785514} + m_Center: {x: -0.000000029802322, y: 0.0591359, z: -0.33409745} +--- !u!54 &6411115713126809823 +Rigidbody: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4478278949747253389} + serializedVersion: 4 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_CenterOfMass: {x: 0, y: 0, z: 0} + m_InertiaTensor: {x: 1, y: 1, z: 1} + m_InertiaRotation: {x: 0, y: 0, z: 0, w: 1} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ImplicitCom: 1 + m_ImplicitTensor: 1 + m_UseGravity: 0 + m_IsKinematic: 1 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!1 &7337341319625064995 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7337341319625064994} + - component: {fileID: 7337341319625064999} + - component: {fileID: 7337341319625064996} + - component: {fileID: 7337341319625064997} + - component: {fileID: 4751683313544525364} + m_Layer: 5 + m_Name: Preview Panel (Back) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7337341319625064994 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7337341319625064995} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0.658, y: 0.119, z: 0} + m_LocalScale: {x: 0.8, y: 0.45, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 3675900598077867961} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &7337341319625064999 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7337341319625064995} + m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &7337341319625064996 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7337341319625064995} + 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: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!64 &7337341319625064997 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7337341319625064995} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 1 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 5 + m_Convex: 1 + m_CookingOptions: 30 + m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} +--- !u!114 &4751683313544525364 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7337341319625064995} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 69583d931f8502647afcc5c3266f4d2c, type: 3} + m_Name: + m_EditorClassIdentifier: diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Prefabs/Spectator Camera Prefab.prefab.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Prefabs/Spectator Camera Prefab.prefab.meta new file mode 100644 index 0000000..a908da6 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Prefabs/Spectator Camera Prefab.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 1d98759068c84da47a597d689afeece3 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Prefabs/Teleport Reticle.prefab b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Prefabs/Teleport Reticle.prefab new file mode 100644 index 0000000..508c301 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Prefabs/Teleport Reticle.prefab @@ -0,0 +1,112 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &3819676577015031517 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3819676577015031516} + m_Layer: 0 + m_Name: Teleport Reticle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3819676577015031516 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3819676577015031517} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.01, y: 0.01, z: 0.01} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 6263370950498324355} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &5864055930194847848 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 3819676577015031516} + m_Modifications: + - target: {fileID: -8679921383154817045, guid: 8f1dbb3126c0e854593accdf425a3e75, type: 3} + propertyPath: m_LocalScale.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 8f1dbb3126c0e854593accdf425a3e75, type: 3} + propertyPath: m_LocalScale.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 8f1dbb3126c0e854593accdf425a3e75, type: 3} + propertyPath: m_LocalScale.z + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 8f1dbb3126c0e854593accdf425a3e75, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 8f1dbb3126c0e854593accdf425a3e75, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 8f1dbb3126c0e854593accdf425a3e75, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 8f1dbb3126c0e854593accdf425a3e75, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 8f1dbb3126c0e854593accdf425a3e75, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 8f1dbb3126c0e854593accdf425a3e75, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 8f1dbb3126c0e854593accdf425a3e75, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 8f1dbb3126c0e854593accdf425a3e75, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 8f1dbb3126c0e854593accdf425a3e75, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 8f1dbb3126c0e854593accdf425a3e75, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -7511558181221131132, guid: 8f1dbb3126c0e854593accdf425a3e75, type: 3} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: 8e2ddb874e202ef41b23bb8e740eae35, type: 2} + - target: {fileID: 919132149155446097, guid: 8f1dbb3126c0e854593accdf425a3e75, type: 3} + propertyPath: m_Name + value: Teleport Hightlight + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 8f1dbb3126c0e854593accdf425a3e75, type: 3} +--- !u!4 &6263370950498324355 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: 8f1dbb3126c0e854593accdf425a3e75, type: 3} + m_PrefabInstance: {fileID: 5864055930194847848} + m_PrefabAsset: {fileID: 0} diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Prefabs/Teleport Reticle.prefab.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Prefabs/Teleport Reticle.prefab.meta new file mode 100644 index 0000000..68a17e3 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Prefabs/Teleport Reticle.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 356e3a3902da80f40aa5747cd5eb78f4 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scenes.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scenes.meta new file mode 100644 index 0000000..a5a9961 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scenes.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3ee044934b1c2ec4b832bcee36198747 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scenes/Adv_Demo_1.unity b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scenes/Adv_Demo_1.unity new file mode 100644 index 0000000..e45ed54 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scenes/Adv_Demo_1.unity @@ -0,0 +1,18792 @@ +%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.18028378, g: 0.22571412, b: 0.30692285, 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 &9664469 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 9664473} + - component: {fileID: 9664475} + - component: {fileID: 9664474} + m_Layer: 5 + m_Name: Item Label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &9664470 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 451197910} + m_LocalRotation: {x: -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: 1076905440} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 10, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &9664471 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 451197910} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &9664472 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 451197910} + m_CullTransparentMesh: 1 +--- !u!224 &9664473 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9664469} + m_LocalRotation: {x: 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: 891740296} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 5, y: -0.5} + m_SizeDelta: {x: -30, y: -3} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &9664474 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9664469} + 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: Option A + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 14 + m_fontSizeBase: 14 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + 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 &9664475 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9664469} + m_CullTransparentMesh: 1 +--- !u!1 &10173837 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 10173838} + m_Layer: 0 + m_Name: Camera Offset + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &10173838 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 10173837} + 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: 307541470} + - {fileID: 158929378} + - {fileID: 1180245860} + m_Father: {fileID: 1277848185} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &26059401 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 26059402} + - component: {fileID: 26059405} + - component: {fileID: 26059404} + - component: {fileID: 26059403} + m_Layer: 5 + m_Name: 360 Photo Capture Part + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &26059402 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 26059401} + m_LocalRotation: {x: 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: 1205547431} + - {fileID: 242315891} + m_Father: {fileID: 636001357} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 116.5, y: -35} + m_SizeDelta: {x: 180, y: 70} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &26059403 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 26059401} + 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: 0.74509805} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 0 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &26059404 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 26059401} + m_CullTransparentMesh: 1 +--- !u!114 &26059405 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 26059401} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 10 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 1 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!1 &46869378 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 46869379} + - component: {fileID: 46869382} + - component: {fileID: 46869381} + - component: {fileID: 46869380} + m_Layer: 5 + m_Name: Scrollbar Horizontal + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &46869379 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 46869378} + m_LocalRotation: {x: -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: 1438360276} + m_Father: {fileID: 466732544} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -17, y: 20} + m_Pivot: {x: 0, y: 0} +--- !u!114 &46869380 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 46869378} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2a4db7a114972834c8e4117be1d82ba3, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 2138647165} + m_HandleRect: {fileID: 2138647164} + m_Direction: 0 + m_Value: 1 + m_Size: 0.9999999 + m_NumberOfSteps: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &46869381 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 46869378} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &46869382 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 46869378} + m_CullTransparentMesh: 1 +--- !u!1 &56127277 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 56127278} + m_Layer: 5 + m_Name: Sliding Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &56127278 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 56127277} + m_LocalRotation: {x: -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: 1799102237} + m_Father: {fileID: 895344791} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -20, y: -20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &81137884 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 81137885} + - component: {fileID: 81137887} + - component: {fileID: 81137886} + m_Layer: 5 + m_Name: Right Part + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &81137885 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 81137884} + m_LocalRotation: {x: 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: 432085384} + - {fileID: 568300251} + m_Father: {fileID: 98281118} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 464, y: -180} + m_SizeDelta: {x: 352, y: 360} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &81137886 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 81137884} + m_Enabled: 0 + 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.14068666, b: 0, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &81137887 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 81137884} + m_CullTransparentMesh: 1 +--- !u!1 &98281117 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 98281118} + - component: {fileID: 98281119} + m_Layer: 5 + m_Name: Root + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &98281118 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 98281117} + m_LocalRotation: {x: 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: 271611738} + - {fileID: 81137885} + m_Father: {fileID: 775741569} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &98281119 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 98281117} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!1 &104893116 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 104893117} + - component: {fileID: 104893118} + - component: {fileID: 104893119} + 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 &104893117 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 104893116} + m_LocalRotation: {x: 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: 807898124} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 90, y: -10} + m_SizeDelta: {x: 160, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &104893118 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 104893116} + m_CullTransparentMesh: 1 +--- !u!114 &104893119 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 104893116} + 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: 'Zoom Speed: 0.7' + 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: 12 + m_fontSizeBase: 12 + 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!1 &107584990 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 107584991} + - component: {fileID: 107584993} + - component: {fileID: 107584992} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &107584991 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 107584990} + m_LocalRotation: {x: 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: 847345095} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &107584992 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 107584990} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &107584993 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 107584990} + m_CullTransparentMesh: 1 +--- !u!1 &109067247 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 109067248} + - component: {fileID: 109067249} + m_Layer: 0 + m_Name: Spectator Camera Manager + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &109067248 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 109067247} + 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: 1716681476} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &109067249 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 109067247} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fda46617f9e447e47863938d3006d5bd, type: 3} + m_Name: + m_EditorClassIdentifier: + cameraSourceRef: 1 + layerMask: + serializedVersion: 2 + m_Bits: 4294967295 + k__BackingField: 1 + k__BackingField: 10 + isFrustumShowed: 0 + verticalFov: 60 + k__BackingField: 2048 + k__BackingField: 0 + k__BackingField: 1 + frustumLineCount: 4 + frustumCenterLineCount: 1 + frustumLineWidth: 0.02 + frustumCenterLineWidth: 0.01 + frustumLineColor: {r: 1, g: 1, b: 1, a: 1} + frustumCenterLineColor: {r: 1, g: 1, b: 1, a: 1} + k__BackingField: {fileID: 4478278949747253389, guid: 1d98759068c84da47a597d689afeece3, type: 3} + followSpectatorCameraTracker: {fileID: 1180245861} + spectatorCameraViewMaterial: {fileID: 2100000, guid: 08727ef98368b6d46b9189c4fb8c5289, type: 2} + k__BackingField: 0 + k__BackingField: 0 + k__BackingField: 0 +--- !u!1 &111386684 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 111386685} + - component: {fileID: 111386687} + - component: {fileID: 111386686} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &111386685 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 111386684} + m_LocalRotation: {x: -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: 1726401429} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &111386686 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 111386684} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &111386687 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 111386684} + m_CullTransparentMesh: 1 +--- !u!1 &118861736 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 118861737} + - component: {fileID: 118861739} + - component: {fileID: 118861738} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &118861737 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 118861736} + m_LocalRotation: {x: -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: 1518445779} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5192308} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &118861738 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 118861736} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &118861739 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 118861736} + m_CullTransparentMesh: 1 +--- !u!1 &129716669 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 129716670} + - component: {fileID: 129716673} + - component: {fileID: 129716672} + - component: {fileID: 129716671} + - component: {fileID: 129716674} + m_Layer: 5 + m_Name: FOV Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &129716670 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 129716669} + m_LocalRotation: {x: 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: 2140472874} + m_Father: {fileID: 1338946461} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 80, y: -10} + m_SizeDelta: {x: 160, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &129716671 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 129716669} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 129716672} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &129716672 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 129716669} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &129716673 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 129716669} + m_CullTransparentMesh: 1 +--- !u!114 &129716674 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 129716669} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e661ec2da35165a4a9d9dd3c43f5799c, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &158929377 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 158929378} + - component: {fileID: 158929383} + - component: {fileID: 158929382} + - component: {fileID: 158929381} + - component: {fileID: 158929380} + - component: {fileID: 158929379} + m_Layer: 0 + m_Name: Left Controller + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &158929378 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 158929377} + 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: 188905746} + - {fileID: 1708912595} + m_Father: {fileID: 10173838} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!210 &158929379 +SortingGroup: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 158929377} + m_Enabled: 1 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 5 + m_SortAtRoot: 0 +--- !u!114 &158929380 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 158929377} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e988983f96fe1dd48800bcdfc82f23e9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_LineWidth: 0.005 + m_OverrideInteractorLineLength: 0 + m_LineLength: 10 + m_WidthCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_ValidColorGradient: + serializedVersion: 2 + key0: {r: 0, g: 1, b: 0.045194626, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_ColorSpace: -1 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + m_InvalidColorGradient: + serializedVersion: 2 + key0: {r: 1, g: 0, b: 0, a: 1} + key1: {r: 1, g: 0, b: 0, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_ColorSpace: -1 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + m_SmoothMovement: 0 + m_FollowTightness: 10 + m_SnapThresholdDistance: 10 + m_Reticle: {fileID: 0} + m_StopLineAtFirstRaycastHit: 1 +--- !u!120 &158929381 +LineRenderer: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 158929377} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 0 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10306, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Positions: + - {x: 0, y: 0, z: 0} + - {x: 0, y: 0, z: 1} + m_Parameters: + serializedVersion: 3 + widthMultiplier: 0.005 + widthCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_ColorSpace: -1 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + numCornerVertices: 0 + numCapVertices: 0 + alignment: 0 + textureMode: 0 + textureScale: {x: 1, y: 1} + shadowBias: 0.5 + generateLightingData: 0 + m_MaskInteraction: 0 + m_UseWorldSpace: 1 + m_Loop: 0 + m_ApplyActiveColorSpace: 0 +--- !u!114 &158929382 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 158929377} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6803edce0201f574f923fd9d10e5b30a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_InteractionManager: {fileID: 1604233172} + m_InteractionLayerMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_AttachTransform: {fileID: 0} + m_StartingSelectedInteractable: {fileID: 0} + m_OnHoverEnter: + m_PersistentCalls: + m_Calls: [] + m_OnHoverExit: + m_PersistentCalls: + m_Calls: [] + m_OnSelectEnter: + m_PersistentCalls: + m_Calls: [] + m_OnSelectExit: + m_PersistentCalls: + m_Calls: [] + m_SelectActionTrigger: 0 + m_HideControllerOnSelect: 0 + m_PlayAudioClipOnSelectEnter: 0 + m_AudioClipForOnSelectEnter: {fileID: 0} + m_PlayAudioClipOnSelectExit: 0 + m_AudioClipForOnSelectExit: {fileID: 0} + m_PlayAudioClipOnHoverEnter: 0 + m_AudioClipForOnHoverEnter: {fileID: 0} + m_PlayAudioClipOnHoverExit: 0 + m_AudioClipForOnHoverExit: {fileID: 0} + m_PlayHapticsOnSelectEnter: 0 + m_HapticSelectEnterIntensity: 0.3 + m_HapticSelectEnterDuration: 0.3 + m_PlayHapticsOnSelectExit: 0 + m_HapticSelectExitIntensity: 0 + m_HapticSelectExitDuration: 0 + m_PlayHapticsOnHoverEnter: 0 + m_HapticHoverEnterIntensity: 0.1 + m_HapticHoverEnterDuration: 0.1 + m_PlayHapticsOnHoverExit: 0 + m_HapticHoverExitIntensity: 0 + m_HapticHoverExitDuration: 0 + m_LineType: 1 + m_MaxRaycastDistance: 30 + m_ReferenceFrame: {fileID: 0} + m_Velocity: 10 + m_Acceleration: 9.8 + m_AdditionalFlightTime: 0.5 + m_EndPointDistance: 30 + m_EndPointHeight: -10 + m_ControlPointDistance: 10 + m_ControlPointHeight: 5 + m_SampleFrequency: 50 + m_HitDetectionType: 0 + m_SphereCastRadius: 0.1 + m_RaycastMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RaycastTriggerInteraction: 1 + m_HoverToSelect: 0 + m_HoverTimeToSelect: 0.5 + m_EnableUIInteraction: 0 +--- !u!114 &158929383 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 158929377} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1ae26e19cd956134bbdf3c6f65bf393a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UpdateTrackingType: 0 + m_EnableInputActions: 1 + m_PoseProvider: {fileID: 0} + m_ControllerNode: 4 + m_SelectUsage: 3 + m_ActivateUsage: 2 + m_UIPressUsage: 2 + m_AxisToPressThreshold: 0.1 + m_ModelPrefab: {fileID: 0} + m_ModelTransform: {fileID: 0} + m_AnimateModel: 0 + m_ModelSelectTransition: + m_ModelDeSelectTransition: +--- !u!1 &159872782 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 159872783} + - component: {fileID: 159872786} + - component: {fileID: 159872785} + m_Layer: 5 + m_Name: View - Interaction Setting Page + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &159872783 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 159872782} + m_LocalRotation: {x: 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: 1208039967} + m_Father: {fileID: 188905746} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &159872785 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 159872782} + 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: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 0 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &159872786 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 159872782} + m_CullTransparentMesh: 1 +--- !u!1 &159969245 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 159969246} + m_Layer: 5 + m_Name: Handle Slide Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &159969246 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 159969245} + m_LocalRotation: {x: -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: 195560696} + m_Father: {fileID: 1867808084} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &164953330 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 164953331} + - component: {fileID: 164953332} + m_Layer: 5 + m_Name: Rotation Interaction Speed Slider + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &164953331 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 164953330} + m_LocalRotation: {x: -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: 1267222242} + - {fileID: 1955424686} + m_Father: {fileID: 835238643} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 90, y: -120} + m_SizeDelta: {x: 180, y: 50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &164953332 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 164953330} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 10 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!1 &168481257 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 168481258} + - component: {fileID: 168481261} + - component: {fileID: 168481260} + - component: {fileID: 168481259} + m_Layer: 5 + m_Name: Template + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &168481258 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 168481257} + m_LocalRotation: {x: 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: 775715684} + - {fileID: 1618246323} + m_Father: {fileID: 1969856133} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: 0, y: 2} + m_SizeDelta: {x: 0, y: 150} + m_Pivot: {x: 0.5, y: 1} +--- !u!114 &168481259 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 168481257} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1aa08ab6e0800fa44ae55d278d1423e3, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Content: {fileID: 1447080154} + m_Horizontal: 0 + m_Vertical: 1 + m_MovementType: 2 + m_Elasticity: 0.1 + m_Inertia: 1 + m_DecelerationRate: 0.135 + m_ScrollSensitivity: 1 + m_Viewport: {fileID: 775715684} + m_HorizontalScrollbar: {fileID: 0} + m_VerticalScrollbar: {fileID: 1618246324} + m_HorizontalScrollbarVisibility: 0 + m_VerticalScrollbarVisibility: 2 + m_HorizontalScrollbarSpacing: 0 + m_VerticalScrollbarSpacing: -3 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &168481260 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 168481257} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &168481261 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 168481257} + m_CullTransparentMesh: 0 +--- !u!1 &188905745 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 188905746} + - component: {fileID: 188905750} + - component: {fileID: 188905749} + - component: {fileID: 188905748} + - component: {fileID: 188905747} + - component: {fileID: 188905752} + - component: {fileID: 188905751} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &188905746 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 188905745} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0.8} + m_LocalScale: {x: 0.002, y: 0.002, z: 0.002} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1773907186} + - {fileID: 775741569} + - {fileID: 159872783} + - {fileID: 780136422} + m_Father: {fileID: 158929378} + 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: 640, y: 360} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &188905747 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 188905745} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7951c64acb0fa62458bf30a60089fe2d, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 0 + m_CheckFor2DOcclusion: 0 + m_CheckFor3DOcclusion: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &188905748 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 188905745} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &188905749 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 188905745} + 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: 2 + m_PresetInfoIsWorld: 0 +--- !u!223 &188905750 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 188905745} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 307541473} + 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!114 &188905751 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 188905745} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0.78431374} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &188905752 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 188905745} + m_CullTransparentMesh: 1 +--- !u!1 &195560695 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 195560699} + - component: {fileID: 195560702} + - component: {fileID: 195560701} + - component: {fileID: 195560700} + m_Layer: 5 + m_Name: Template + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &195560696 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 687526421} + m_LocalRotation: {x: -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: 159969246} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &195560697 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 687526421} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &195560698 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 687526421} + m_CullTransparentMesh: 1 +--- !u!224 &195560699 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 195560695} + m_LocalRotation: {x: 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: 1064194947} + - {fileID: 1256100926} + m_Father: {fileID: 277785010} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: 0, y: 2} + m_SizeDelta: {x: 0, y: 150} + m_Pivot: {x: 0.5, y: 1} +--- !u!114 &195560700 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 195560695} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1aa08ab6e0800fa44ae55d278d1423e3, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Content: {fileID: 772805674} + m_Horizontal: 0 + m_Vertical: 1 + m_MovementType: 2 + m_Elasticity: 0.1 + m_Inertia: 1 + m_DecelerationRate: 0.135 + m_ScrollSensitivity: 1 + m_Viewport: {fileID: 1064194947} + m_HorizontalScrollbar: {fileID: 0} + m_VerticalScrollbar: {fileID: 1256100927} + m_HorizontalScrollbarVisibility: 0 + m_VerticalScrollbarVisibility: 2 + m_HorizontalScrollbarSpacing: 0 + m_VerticalScrollbarSpacing: -3 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &195560701 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 195560695} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &195560702 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 195560695} + m_CullTransparentMesh: 1 +--- !u!1 &198567880 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 198567881} + - component: {fileID: 198567884} + - component: {fileID: 198567883} + - component: {fileID: 198567882} + - component: {fileID: 198567885} + m_Layer: 5 + m_Name: Position Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &198567881 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 198567880} + m_LocalRotation: {x: 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: 834531377} + m_Father: {fileID: 471517545} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 40, y: -10} + m_SizeDelta: {x: 80, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &198567882 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 198567880} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 198567883} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &198567883 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 198567880} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &198567884 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 198567880} + m_CullTransparentMesh: 1 +--- !u!114 &198567885 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 198567880} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e661ec2da35165a4a9d9dd3c43f5799c, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &199750330 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 199750334} + - component: {fileID: 199750336} + - component: {fileID: 199750335} + m_Layer: 5 + m_Name: Item Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &199750331 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1196218477} + m_LocalRotation: {x: -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: 1955424686} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.25} + m_AnchorMax: {x: 1, y: 0.75} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &199750332 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1196218477} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &199750333 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1196218477} + m_CullTransparentMesh: 1 +--- !u!224 &199750334 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 199750330} + m_LocalRotation: {x: 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: 891740296} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &199750335 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 199750330} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &199750336 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 199750330} + m_CullTransparentMesh: 1 +--- !u!1 &229497748 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 229497749} + - component: {fileID: 229497752} + - component: {fileID: 229497751} + - component: {fileID: 229497750} + m_Layer: 5 + m_Name: Viewport + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &229497749 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 229497748} + m_LocalRotation: {x: -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: 378809147} + m_Father: {fileID: 1564937183} + 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: 1} +--- !u!114 &229497750 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 229497748} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ShowMaskGraphic: 0 +--- !u!114 &229497751 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 229497748} + 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: 10917, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &229497752 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 229497748} + m_CullTransparentMesh: 1 +--- !u!1 &242315890 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 242315891} + - component: {fileID: 242315892} + m_Layer: 5 + m_Name: Row (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &242315891 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 242315890} + m_LocalRotation: {x: 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: 898524112} + m_Father: {fileID: 26059402} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 90, y: -55} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &242315892 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 242315890} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 1 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 1 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!1 &250922030 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 250922031} + - component: {fileID: 250922033} + - component: {fileID: 250922032} + m_Layer: 5 + m_Name: Title + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &250922031 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 250922030} + m_LocalRotation: {x: 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: 922138250} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 80, y: -10} + m_SizeDelta: {x: 160, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &250922032 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 250922030} + 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: 'Tracker Source: Tracker 1' + 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: 12 + m_fontSizeBase: 12 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 1024 + 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 &250922033 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 250922030} + m_CullTransparentMesh: 1 +--- !u!1 &263608691 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 263608692} + - component: {fileID: 263608694} + - component: {fileID: 263608693} + m_Layer: 0 + m_Name: Panel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &263608692 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 263608691} + m_LocalRotation: {x: 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: 1444596029} + - {fileID: 1848673646} + m_Father: {fileID: 804531779} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &263608693 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 263608691} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.078431375} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &263608694 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 263608691} + m_CullTransparentMesh: 1 +--- !u!1 &263893893 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 263893894} + - component: {fileID: 263893895} + - component: {fileID: 263893897} + - component: {fileID: 263893896} + m_Layer: 5 + m_Name: Camera FOV Part + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &263893894 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 263893893} + m_LocalRotation: {x: -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: 1375084741} + - {fileID: 1572483346} + m_Father: {fileID: 636001357} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 116.5, y: -466} + m_SizeDelta: {x: 180, y: 80} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &263893895 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 263893893} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 10 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!114 &263893896 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 263893893} + 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: 0.74509805} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 0 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &263893897 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 263893893} + m_CullTransparentMesh: 1 +--- !u!1 &271611737 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 271611738} + - component: {fileID: 271611740} + - component: {fileID: 271611739} + m_Layer: 5 + m_Name: Left Part + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &271611738 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 271611737} + m_LocalRotation: {x: 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: 561419408} + - {fileID: 466732544} + m_Father: {fileID: 98281118} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 144, y: -180} + m_SizeDelta: {x: 288, y: 360} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &271611739 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 271611737} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0.7999997, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &271611740 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 271611737} + m_CullTransparentMesh: 1 +--- !u!1 &277250170 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 277250171} + - component: {fileID: 277250173} + - component: {fileID: 277250172} + m_Layer: 5 + m_Name: Caption Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &277250171 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 277250170} + m_LocalRotation: {x: -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: 1847245776} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -4.999998, y: 0} + m_SizeDelta: {x: 10, y: 10} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &277250172 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 277250170} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &277250173 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 277250170} + m_CullTransparentMesh: 1 +--- !u!1 &277260209 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 277260210} + - component: {fileID: 277260212} + - component: {fileID: 277260211} + 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 &277260210 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 277260209} + m_LocalRotation: {x: 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: 334807914} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 90, y: -15} + m_SizeDelta: {x: 160, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &277260211 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 277260209} + 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: Camera Layer Mask + 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: 12 + m_fontSizeBase: 12 + 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 &277260212 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 277260209} + m_CullTransparentMesh: 1 +--- !u!1 &277785009 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 277785010} + - component: {fileID: 277785012} + - component: {fileID: 277785011} + - component: {fileID: 277785013} + - component: {fileID: 277785014} + m_Layer: 5 + m_Name: Layer Mask Dropdown + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &277785010 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 277785009} + m_LocalRotation: {x: 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: 1049883134} + - {fileID: 933566119} + - {fileID: 195560699} + - {fileID: 1847245776} + m_Father: {fileID: 334807914} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 90, y: -60} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &277785011 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 277785009} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &277785012 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 277785009} + m_CullTransparentMesh: 1 +--- !u!114 &277785013 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 277785009} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7b743370ac3e4ec2a1668f5455a8ef8a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 277785011} + m_Template: {fileID: 195560699} + m_CaptionText: {fileID: 1049883135} + m_CaptionImage: {fileID: 277250172} + m_Placeholder: {fileID: 0} + m_ItemText: {fileID: 9664474} + m_ItemImage: {fileID: 575163583} + m_Value: 0 + m_Options: + m_Options: [] + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_AlphaFadeSpeed: 0.15 +--- !u!114 &277785014 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 277785009} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e661ec2da35165a4a9d9dd3c43f5799c, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &307541469 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 307541470} + - component: {fileID: 307541473} + - component: {fileID: 307541472} + - component: {fileID: 307541471} + m_Layer: 0 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &307541470 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 307541469} + 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: 10173838} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &307541471 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 307541469} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5a2a9c34df4095f47b9ca8f975175f5b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Device: 0 + m_PoseSource: 2 + m_PoseProviderComponent: {fileID: 0} + m_TrackingType: 0 + m_UpdateType: 0 + m_UseRelativeTransform: 0 +--- !u!81 &307541472 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 307541469} + m_Enabled: 1 +--- !u!20 &307541473 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 307541469} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_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.1 + far clip plane: 1000 + field of view: 60 + orthographic: 0 + orthographic size: 5 + m_Depth: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!1 &310183084 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 310183085} + m_Layer: 0 + m_Name: '[ Environment ]' + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &310183085 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 310183084} + 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: 1039093892} + - {fileID: 1931023771} + - {fileID: 804531779} + - {fileID: 1769381940} + - {fileID: 1747373580} + - {fileID: 1482308686} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &316802988 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 316802989} + - component: {fileID: 316802991} + - component: {fileID: 316802990} + m_Layer: 5 + m_Name: Arrow + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &316802989 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 316802988} + m_LocalRotation: {x: 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: 1969856133} + 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: -15, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &316802990 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 316802988} + 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: 10915, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &316802991 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 316802988} + m_CullTransparentMesh: 0 +--- !u!1 &326385784 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 326385785} + - component: {fileID: 326385788} + - component: {fileID: 326385787} + - component: {fileID: 326385786} + m_Layer: 5 + m_Name: Viewport + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &326385785 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 326385784} + m_LocalRotation: {x: -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: 636001357} + m_Father: {fileID: 466732544} + 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: -17, y: 0} + m_Pivot: {x: 0, y: 1} +--- !u!114 &326385786 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 326385784} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ShowMaskGraphic: 0 +--- !u!114 &326385787 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 326385784} + 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: 10917, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &326385788 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 326385784} + m_CullTransparentMesh: 1 +--- !u!1 &334807913 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 334807914} + - component: {fileID: 334807917} + - component: {fileID: 334807916} + - component: {fileID: 334807915} + m_Layer: 5 + m_Name: Camera Layer Mask Part + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &334807914 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 334807913} + m_LocalRotation: {x: -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: 277260210} + - {fileID: 277785010} + m_Father: {fileID: 636001357} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 116.5, y: -362} + m_SizeDelta: {x: 180, y: 80} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &334807915 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 334807913} + 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: 0.74509805} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 0 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &334807916 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 334807913} + m_CullTransparentMesh: 1 +--- !u!114 &334807917 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 334807913} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 10 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!1 &376580882 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 376580883} + - component: {fileID: 376580885} + - component: {fileID: 376580884} + m_Layer: 5 + m_Name: Description Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &376580883 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 376580882} + m_LocalRotation: {x: -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: 1470721043} + 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: 200} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &376580884 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 376580882} + 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: "Wave SDK\r\n\xA9 2020 HTC Corporation. All Rights Reserved.\r\n\r\nUnless + otherwise required by copyright law and practice, upon the execution of HTC SDK + license agreement, HTC grants you access to and use of the Wave SDK(s). You shall + fully comply with all of HTC\u2019s SDK license agreement terms and conditions + signed by you and all SDK and API requirements, specifications, and documentation + provided by HTC to You.\r" + 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: 12 + m_fontSizeBase: 12 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 4096 + 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 &376580885 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 376580882} + m_CullTransparentMesh: 1 +--- !u!1 &378809146 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 378809147} + - component: {fileID: 378809148} + m_Layer: 5 + m_Name: Content + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &378809147 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 378809146} + m_LocalRotation: {x: -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: 2909584162107681066} + - {fileID: 2909584161367851314} + - {fileID: 1605755468} + - {fileID: 2909584161835503697} + - {fileID: 2909584161536744598} + m_Father: {fileID: 229497749} + 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: -99.99992} + m_SizeDelta: {x: 0, y: 200} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &378809148 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 378809146} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 1 + m_Spacing: 10 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!1 &386520512 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 386520513} + m_Layer: 5 + m_Name: Sliding Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &386520513 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 386520512} + m_LocalRotation: {x: 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: 1930077882} + m_Father: {fileID: 1618246323} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -20, y: -20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &407344747 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 407344748} + - component: {fileID: 407344751} + - component: {fileID: 407344750} + - component: {fileID: 407344749} + m_Layer: 5 + m_Name: Scrollbar Vertical + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &407344748 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 407344747} + m_LocalRotation: {x: -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: 1795681834} + m_Father: {fileID: 1564937183} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: -17} + m_Pivot: {x: 1, y: 1} +--- !u!114 &407344749 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 407344747} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2a4db7a114972834c8e4117be1d82ba3, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 0, g: 0, b: 0, a: 0.47058824} + m_HighlightedColor: {r: 0, g: 0, b: 0, a: 0.627451} + m_PressedColor: {r: 0, g: 0, b: 0, a: 0.627451} + m_SelectedColor: {r: 0, g: 0, b: 0, a: 0.627451} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1724960420} + m_HandleRect: {fileID: 1724960419} + m_Direction: 2 + m_Value: 0 + m_Size: 1 + m_NumberOfSteps: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &407344750 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 407344747} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &407344751 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 407344747} + m_CullTransparentMesh: 1 +--- !u!1 &432085383 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 432085384} + - component: {fileID: 432085386} + - component: {fileID: 432085385} + m_Layer: 5 + m_Name: Title + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &432085384 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 432085383} + m_LocalRotation: {x: -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: 81137885} + 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: -22.5} + m_SizeDelta: {x: 0, y: 45} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &432085385 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 432085383} + 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: Specataor Camera Setting + 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: 18 + m_fontSizeBase: 18 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 17 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 1024 + m_textAlignment: 65535 + m_characterSpacing: 25 + 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 &432085386 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 432085383} + m_CullTransparentMesh: 1 +--- !u!1 &446586717 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 446586718} + - component: {fileID: 446586720} + - component: {fileID: 446586719} + m_Layer: 5 + m_Name: Label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &446586718 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 446586717} + m_LocalRotation: {x: -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: 1858884752} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 9, y: -0.5} + m_SizeDelta: {x: -28, y: -3} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &446586719 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 446586717} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 12 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Is affect Y-Axis +--- !u!222 &446586720 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 446586717} + m_CullTransparentMesh: 1 +--- !u!1 &451197910 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 9664470} + - component: {fileID: 9664472} + - component: {fileID: 9664471} + m_Layer: 5 + m_Name: Fill + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &466732543 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 466732544} + - component: {fileID: 466732547} + - component: {fileID: 466732546} + - component: {fileID: 466732545} + m_Layer: 5 + m_Name: Scroll View + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &466732544 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 466732543} + m_LocalRotation: {x: 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: 326385785} + - {fileID: 46869379} + - {fileID: 1268618021} + m_Father: {fileID: 271611738} + 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: -15} + m_SizeDelta: {x: 250, y: 250} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &466732545 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 466732543} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1aa08ab6e0800fa44ae55d278d1423e3, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Content: {fileID: 636001357} + m_Horizontal: 0 + m_Vertical: 1 + m_MovementType: 1 + m_Elasticity: 0.1 + m_Inertia: 1 + m_DecelerationRate: 0.135 + m_ScrollSensitivity: 1 + m_Viewport: {fileID: 326385785} + m_HorizontalScrollbar: {fileID: 46869380} + m_VerticalScrollbar: {fileID: 1268618022} + m_HorizontalScrollbarVisibility: 1 + m_VerticalScrollbarVisibility: 2 + m_HorizontalScrollbarSpacing: -3 + m_VerticalScrollbarSpacing: -3 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &466732546 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 466732543} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0.392} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &466732547 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 466732543} + m_CullTransparentMesh: 1 +--- !u!1 &471517544 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 471517545} + - component: {fileID: 471517546} + m_Layer: 5 + m_Name: Row (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &471517545 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 471517544} + m_LocalRotation: {x: 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: 198567881} + - {fileID: 1817604799} + m_Father: {fileID: 967540789} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 90, y: -60} + m_SizeDelta: {x: 160, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &471517546 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 471517544} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 1 + m_ChildControlHeight: 1 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!1 &478627812 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 478627813} + - component: {fileID: 478627814} + m_Layer: 5 + m_Name: Content + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &478627813 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 478627812} + m_LocalRotation: {x: -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: 967540789} + - {fileID: 1858884752} + - {fileID: 835238643} + m_Father: {fileID: 672238546} + 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: -210} + m_SizeDelta: {x: 0, y: 420} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &478627814 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 478627812} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 1 + m_Spacing: 10 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!1 &493150199 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 493150200} + - component: {fileID: 493150201} + m_Layer: 5 + m_Name: Row + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &493150200 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 493150199} + m_LocalRotation: {x: 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: 1124502488} + m_Father: {fileID: 967540789} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 90, y: -16.666666} + m_SizeDelta: {x: 160, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &493150201 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 493150199} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 1 + m_ChildControlHeight: 1 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!1 &560765092 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 560765093} + - component: {fileID: 560765095} + - component: {fileID: 560765094} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &560765093 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 560765092} + m_LocalRotation: {x: -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: 1867808084} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.25} + m_AnchorMax: {x: 1, y: 0.75} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &560765094 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 560765092} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &560765095 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 560765092} + m_CullTransparentMesh: 1 +--- !u!1 &561419407 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 561419408} + - component: {fileID: 561419411} + - component: {fileID: 561419410} + - component: {fileID: 561419409} + - component: {fileID: 561419413} + m_Layer: 5 + m_Name: Back Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &561419408 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 561419407} + m_LocalRotation: {x: 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: 1075673661} + m_Father: {fileID: 271611738} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 20, y: -20} + m_SizeDelta: {x: 50, y: 25} + m_Pivot: {x: 0, y: 1} +--- !u!114 &561419409 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 561419407} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 561419410} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &561419410 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 561419407} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &561419411 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 561419407} + m_CullTransparentMesh: 1 +--- !u!114 &561419413 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 561419407} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e661ec2da35165a4a9d9dd3c43f5799c, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &568300250 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 568300251} + - component: {fileID: 568300253} + - component: {fileID: 568300252} + m_Layer: 5 + m_Name: Description Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &568300251 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 568300250} + m_LocalRotation: {x: -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: 81137885} + 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: 200} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &568300252 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 568300250} + 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: 'Show the description here when user hover the ray on UI element. + + + TODO: + Add the corrsponding description.' + 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: 12 + m_fontSizeBase: 12 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 4096 + 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 &568300253 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 568300250} + m_CullTransparentMesh: 1 +--- !u!1 &575163581 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 575163582} + - component: {fileID: 575163584} + - component: {fileID: 575163583} + m_Layer: 5 + m_Name: Item Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &575163582 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 575163581} + m_LocalRotation: {x: -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: 1905627277} + 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: -5, y: 0} + m_SizeDelta: {x: 10, y: 10} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &575163583 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 575163581} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &575163584 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 575163581} + m_CullTransparentMesh: 1 +--- !u!1 &601793254 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 601793255} + - component: {fileID: 601793257} + - component: {fileID: 601793256} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &601793255 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 601793254} + m_LocalRotation: {x: -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: 1458309049} + m_Father: {fileID: 1858884752} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 10, y: -10} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &601793256 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 601793254} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &601793257 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 601793254} + m_CullTransparentMesh: 1 +--- !u!1 &605362872 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 605362873} + - component: {fileID: 605362875} + - component: {fileID: 605362874} + m_Layer: 5 + m_Name: Fill + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &605362873 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 605362872} + m_LocalRotation: {x: -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: 869120997} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 10, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &605362874 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 605362872} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &605362875 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 605362872} + m_CullTransparentMesh: 1 +--- !u!1 &635410803 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 635410804} + - component: {fileID: 635410806} + - component: {fileID: 635410805} + m_Layer: 5 + m_Name: Title + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &635410804 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 635410803} + m_LocalRotation: {x: 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: 1668172528} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 80, y: -10} + m_SizeDelta: {x: 160, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &635410805 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 635410803} + 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: 'Camera Source Ref: HMD' + 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: 12 + m_fontSizeBase: 12 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 1024 + 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 &635410806 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 635410803} + m_CullTransparentMesh: 1 +--- !u!1 &636001356 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 636001357} + - component: {fileID: 636001358} + m_Layer: 5 + m_Name: Content + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &636001357 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 636001356} + m_LocalRotation: {x: -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: 26059402} + - {fileID: 747236719} + - {fileID: 778342242} + - {fileID: 334807914} + - {fileID: 263893894} + m_Father: {fileID: 326385785} + 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: -260} + m_SizeDelta: {x: 0, y: 520} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &636001358 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 636001356} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 1 + m_Spacing: 10 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!1 &664212377 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 664212378} + - component: {fileID: 664212380} + - component: {fileID: 664212379} + m_Layer: 5 + m_Name: Fill + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &664212378 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 664212377} + m_LocalRotation: {x: -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: 1781049003} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 10, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &664212379 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 664212377} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &664212380 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 664212377} + m_CullTransparentMesh: 1 +--- !u!1 &671539072 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 671539073} + - component: {fileID: 671539075} + - component: {fileID: 671539074} + m_Layer: 5 + m_Name: Right Part + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &671539073 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 671539072} + m_LocalRotation: {x: 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: 1006357285} + m_Father: {fileID: 2027252411} + 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: 352, y: 360} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &671539074 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 671539072} + m_Enabled: 0 + 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.14068666, b: 0, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &671539075 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 671539072} + m_CullTransparentMesh: 1 +--- !u!1 &672238545 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 672238546} + - component: {fileID: 672238549} + - component: {fileID: 672238548} + - component: {fileID: 672238547} + m_Layer: 5 + m_Name: Viewport + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &672238546 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 672238545} + m_LocalRotation: {x: -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: 478627813} + m_Father: {fileID: 1847209149} + 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: -17, y: 0} + m_Pivot: {x: 0, y: 1} +--- !u!114 &672238547 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 672238545} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ShowMaskGraphic: 0 +--- !u!114 &672238548 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 672238545} + 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: 10917, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &672238549 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 672238545} + m_CullTransparentMesh: 1 +--- !u!1 &687526421 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 195560696} + - component: {fileID: 195560698} + - component: {fileID: 195560697} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &714283126 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 714283127} + - component: {fileID: 714283129} + - component: {fileID: 714283128} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &714283127 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 714283126} + m_LocalRotation: {x: -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: 2108279667} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &714283128 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 714283126} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &714283129 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 714283126} + m_CullTransparentMesh: 1 +--- !u!1 &715919773 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 715919774} + - component: {fileID: 715919776} + - component: {fileID: 715919775} + m_Layer: 5 + m_Name: Left Part + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &715919774 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 715919773} + m_LocalRotation: {x: 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: 818994285} + - {fileID: 1847209149} + m_Father: {fileID: 1208039967} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 144, y: -180} + m_SizeDelta: {x: 288, y: 360} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &715919775 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 715919773} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0.7999997, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &715919776 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 715919773} + m_CullTransparentMesh: 1 +--- !u!1 &719348727 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 719348728} + - component: {fileID: 719348729} + m_Layer: 5 + m_Name: Item + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &719348728 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 719348727} + m_LocalRotation: {x: 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: 2065367840} + - {fileID: 1371255585} + - {fileID: 1032253017} + m_Father: {fileID: 1447080154} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &719348729 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 719348727} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9085046f02f69544eb97fd06b6048fe2, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 2065367841} + toggleTransition: 1 + graphic: {fileID: 1371255586} + m_Group: {fileID: 0} + onValueChanged: + m_PersistentCalls: + m_Calls: [] + m_IsOn: 1 +--- !u!1 &721941890 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 721941891} + - component: {fileID: 721941895} + - component: {fileID: 721941894} + - component: {fileID: 721941893} + - component: {fileID: 721941896} + m_Layer: 5 + m_Name: Back Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &721941891 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 721941890} + m_LocalRotation: {x: 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: 1101703219} + m_Father: {fileID: 1481092537} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 20, y: -20} + m_SizeDelta: {x: 50, y: 25} + m_Pivot: {x: 0, y: 1} +--- !u!114 &721941893 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 721941890} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 721941894} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &721941894 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 721941890} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &721941895 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 721941890} + m_CullTransparentMesh: 1 +--- !u!114 &721941896 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 721941890} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e661ec2da35165a4a9d9dd3c43f5799c, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &747236718 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 747236719} + - component: {fileID: 747236720} + - component: {fileID: 747236722} + - component: {fileID: 747236721} + m_Layer: 5 + m_Name: Camera Source Part + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &747236719 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 747236718} + m_LocalRotation: {x: 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: 1668172528} + - {fileID: 1739558343} + - {fileID: 1545605957} + m_Father: {fileID: 636001357} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 116.5, y: -149} + m_SizeDelta: {x: 180, y: 110} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &747236720 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 747236718} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 10 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 1 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!114 &747236721 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 747236718} + 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: 0.74509805} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 0 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &747236722 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 747236718} + m_CullTransparentMesh: 1 +--- !u!1 &772805673 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 772805674} + m_Layer: 5 + m_Name: Content + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &772805674 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 772805673} + m_LocalRotation: {x: 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: 891740296} + m_Father: {fileID: 1064194947} + 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: 0} + m_SizeDelta: {x: 0, y: 28} + m_Pivot: {x: 0.5, y: 1} +--- !u!1 &775715683 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 775715684} + - component: {fileID: 775715687} + - component: {fileID: 775715686} + - component: {fileID: 775715685} + m_Layer: 5 + m_Name: Viewport + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &775715684 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 775715683} + m_LocalRotation: {x: 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: 1447080154} + m_Father: {fileID: 168481258} + 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: -18, y: 0} + m_Pivot: {x: 0, y: 1} +--- !u!114 &775715685 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 775715683} + 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: 10917, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &775715686 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 775715683} + m_CullTransparentMesh: 0 +--- !u!114 &775715687 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 775715683} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ShowMaskGraphic: 0 +--- !u!1 &775741568 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 775741569} + - component: {fileID: 775741572} + - component: {fileID: 775741571} + m_Layer: 5 + m_Name: View - Spectator Camera Setting Page + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &775741569 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 775741568} + m_LocalRotation: {x: 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: 98281118} + m_Father: {fileID: 188905746} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &775741571 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 775741568} + 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: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 0 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &775741572 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 775741568} + m_CullTransparentMesh: 1 +--- !u!1 &778342241 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 778342242} + - component: {fileID: 778342245} + - component: {fileID: 778342244} + - component: {fileID: 778342243} + m_Layer: 5 + m_Name: Tracker Source Part + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &778342242 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 778342241} + m_LocalRotation: {x: 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: 922138250} + - {fileID: 1635249162} + m_Father: {fileID: 636001357} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 116.5, y: -263} + m_SizeDelta: {x: 180, y: 70} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &778342243 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 778342241} + 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: 0.74509805} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 0 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &778342244 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 778342241} + m_CullTransparentMesh: 1 +--- !u!114 &778342245 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 778342241} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 10 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 1 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!1 &780136421 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 780136422} + - component: {fileID: 780136424} + - component: {fileID: 780136423} + m_Layer: 5 + m_Name: View - License Page + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &780136422 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 780136421} + m_LocalRotation: {x: 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: 1100663477} + m_Father: {fileID: 188905746} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &780136423 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 780136421} + 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: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 0 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &780136424 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 780136421} + m_CullTransparentMesh: 1 +--- !u!1 &804531775 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 804531779} + - component: {fileID: 804531778} + - component: {fileID: 804531777} + - component: {fileID: 804531776} + m_Layer: 0 + m_Name: Spectator Description Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &804531776 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 804531775} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &804531777 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 804531775} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 1 +--- !u!223 &804531778 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 804531775} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 307541473} + 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 &804531779 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 804531775} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 4.21} + m_LocalScale: {x: 0.01, y: 0.01, z: 0.01} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 263608692} + m_Father: {fileID: 310183085} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: -2, y: 2.17} + m_SizeDelta: {x: 480, y: 360} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &807898123 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 807898124} + - component: {fileID: 807898125} + m_Layer: 5 + m_Name: Zoom Interaction Speed Slider + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &807898124 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 807898123} + m_LocalRotation: {x: -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: 104893117} + - {fileID: 1242148428} + m_Father: {fileID: 835238643} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 90, y: -203.33334} + m_SizeDelta: {x: 180, y: 50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &807898125 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 807898123} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 10 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!1 &818994284 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 818994285} + - component: {fileID: 818994289} + - component: {fileID: 818994288} + - component: {fileID: 818994287} + - component: {fileID: 818994290} + m_Layer: 5 + m_Name: Back Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &818994285 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 818994284} + m_LocalRotation: {x: 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: 1648449976} + m_Father: {fileID: 715919774} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 20, y: -20} + m_SizeDelta: {x: 50, y: 25} + m_Pivot: {x: 0, y: 1} +--- !u!114 &818994287 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 818994284} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 818994288} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &818994288 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 818994284} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &818994289 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 818994284} + m_CullTransparentMesh: 1 +--- !u!114 &818994290 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 818994284} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e661ec2da35165a4a9d9dd3c43f5799c, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &834531376 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 834531377} + - component: {fileID: 834531379} + - component: {fileID: 834531378} + 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 &834531377 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 834531376} + m_LocalRotation: {x: 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: 198567881} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &834531378 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 834531376} + 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: Position + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 12 + m_fontSizeBase: 12 + 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 &834531379 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 834531376} + m_CullTransparentMesh: 1 +--- !u!1 &835238642 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 835238643} + - component: {fileID: 835238646} + - component: {fileID: 835238645} + - component: {fileID: 835238644} + m_Layer: 5 + m_Name: Interaction Speed Part + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &835238643 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 835238642} + m_LocalRotation: {x: 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: 1609717184} + - {fileID: 164953331} + - {fileID: 807898124} + m_Father: {fileID: 478627813} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 116.5, y: -293.3333} + m_SizeDelta: {x: 180, y: 240} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &835238644 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 835238642} + 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: 0.74509805} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 0 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &835238645 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 835238642} + m_CullTransparentMesh: 1 +--- !u!114 &835238646 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 835238642} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 10 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!1 &847345094 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 847345095} + m_Layer: 5 + m_Name: Sliding Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &847345095 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 847345094} + m_LocalRotation: {x: 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: 107584991} + m_Father: {fileID: 1256100926} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -20, y: -20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &851711943 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 851711944} + - component: {fileID: 851711947} + - component: {fileID: 851711946} + - component: {fileID: 851711945} + m_Layer: 5 + m_Name: Scrollbar Horizontal + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &851711944 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 851711943} + m_LocalRotation: {x: -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: 1726401429} + m_Father: {fileID: 1564937183} + 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: 20} + m_Pivot: {x: 0, y: 0} +--- !u!114 &851711945 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 851711943} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2a4db7a114972834c8e4117be1d82ba3, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 111386686} + m_HandleRect: {fileID: 111386685} + m_Direction: 0 + m_Value: 1 + m_Size: 0.9999998 + m_NumberOfSteps: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &851711946 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 851711943} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &851711947 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 851711943} + m_CullTransparentMesh: 1 +--- !u!1 &854501465 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 854501466} + - component: {fileID: 854501469} + - component: {fileID: 854501468} + - component: {fileID: 854501467} + - component: {fileID: 854501470} + m_Layer: 5 + m_Name: HMD Source Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &854501466 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 854501465} + m_LocalRotation: {x: -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: 1854418176} + m_Father: {fileID: 1739558343} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 80, y: -10} + m_SizeDelta: {x: 160, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &854501467 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 854501465} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 854501468} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &854501468 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 854501465} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &854501469 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 854501465} + m_CullTransparentMesh: 1 +--- !u!114 &854501470 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 854501465} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e661ec2da35165a4a9d9dd3c43f5799c, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &869120996 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 869120997} + m_Layer: 5 + m_Name: Fill Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &869120997 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 869120996} + m_LocalRotation: {x: -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: 605362873} + m_Father: {fileID: 1572483346} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.25} + m_AnchorMax: {x: 1, y: 0.75} + m_AnchoredPosition: {x: -5, y: 0} + m_SizeDelta: {x: -20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &882451433 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 882451434} + - component: {fileID: 882451437} + - component: {fileID: 882451436} + - component: {fileID: 882451435} + m_Layer: 5 + m_Name: Scrollbar Horizontal + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &882451434 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 882451433} + m_LocalRotation: {x: -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: 1954028365} + m_Father: {fileID: 1847209149} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -17, y: 20} + m_Pivot: {x: 0, y: 0} +--- !u!114 &882451435 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 882451433} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2a4db7a114972834c8e4117be1d82ba3, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 2142715739} + m_HandleRect: {fileID: 2142715738} + m_Direction: 0 + m_Value: 1 + m_Size: 0.9999999 + m_NumberOfSteps: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &882451436 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 882451433} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &882451437 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 882451433} + m_CullTransparentMesh: 1 +--- !u!1 &891740295 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 891740296} + - component: {fileID: 891740297} + m_Layer: 5 + m_Name: Item + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &891740296 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 891740295} + m_LocalRotation: {x: 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: 199750334} + - {fileID: 956632389} + - {fileID: 9664473} + - {fileID: 1905627277} + m_Father: {fileID: 772805674} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &891740297 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 891740295} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9085046f02f69544eb97fd06b6048fe2, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 199750335} + toggleTransition: 1 + graphic: {fileID: 956632390} + m_Group: {fileID: 0} + onValueChanged: + m_PersistentCalls: + m_Calls: [] + m_IsOn: 1 +--- !u!1 &895344790 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 895344791} + - component: {fileID: 895344794} + - component: {fileID: 895344793} + - component: {fileID: 895344792} + m_Layer: 5 + m_Name: Scrollbar Vertical + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &895344791 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 895344790} + m_LocalRotation: {x: -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: 56127278} + m_Father: {fileID: 1847209149} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: -17} + m_Pivot: {x: 1, y: 1} +--- !u!114 &895344792 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 895344790} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2a4db7a114972834c8e4117be1d82ba3, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 0, g: 0, b: 0, a: 0.47058824} + m_HighlightedColor: {r: 0, g: 0, b: 0, a: 0.627451} + m_PressedColor: {r: 0, g: 0, b: 0, a: 0.627451} + m_SelectedColor: {r: 0, g: 0, b: 0, a: 0.627451} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1799102238} + m_HandleRect: {fileID: 1799102237} + m_Direction: 2 + m_Value: 1 + m_Size: 0.5952381 + m_NumberOfSteps: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &895344793 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 895344790} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &895344794 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 895344790} + m_CullTransparentMesh: 1 +--- !u!1 &898524111 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 898524112} + - component: {fileID: 898524114} + - component: {fileID: 898524113} + - component: {fileID: 898524115} + - component: {fileID: 898524116} + m_Layer: 5 + m_Name: 360 Capture Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &898524112 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 898524111} + m_LocalRotation: {x: -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: 1344838491} + m_Father: {fileID: 242315891} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 80, y: -10} + m_SizeDelta: {x: 160, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &898524113 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 898524111} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &898524114 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 898524111} + m_CullTransparentMesh: 1 +--- !u!114 &898524115 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 898524111} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 898524113} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &898524116 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 898524111} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e661ec2da35165a4a9d9dd3c43f5799c, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &922138249 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 922138250} + - component: {fileID: 922138251} + m_Layer: 5 + m_Name: Title Row + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &922138250 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 922138249} + m_LocalRotation: {x: 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: 250922031} + m_Father: {fileID: 778342242} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 90, y: -12.5} + m_SizeDelta: {x: 160, y: 25} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &922138251 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 922138249} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 1 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 1 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!1 &933566118 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 933566119} + - component: {fileID: 933566121} + - component: {fileID: 933566120} + m_Layer: 5 + m_Name: Arrow + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &933566119 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 933566118} + m_LocalRotation: {x: 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: 277785010} + 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: -15, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &933566120 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 933566118} + 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: 10915, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &933566121 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 933566118} + m_CullTransparentMesh: 1 +--- !u!1 &956632388 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 956632389} + - component: {fileID: 956632391} + - component: {fileID: 956632390} + m_Layer: 5 + m_Name: Item Checkmark + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &956632389 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 956632388} + m_LocalRotation: {x: 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: 891740296} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 10, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &956632390 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 956632388} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10901, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &956632391 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 956632388} + m_CullTransparentMesh: 1 +--- !u!1 &967540788 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 967540789} + - component: {fileID: 967540792} + - component: {fileID: 967540791} + - component: {fileID: 967540790} + m_Layer: 5 + m_Name: Thumbstick Effect Option Part + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &967540789 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 967540788} + m_LocalRotation: {x: 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: 493150200} + - {fileID: 471517545} + - {fileID: 1338946461} + m_Father: {fileID: 478627813} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 116.5, y: -60} + m_SizeDelta: {x: 180, y: 120} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &967540790 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 967540788} + 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: 0.74509805} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 0 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &967540791 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 967540788} + m_CullTransparentMesh: 1 +--- !u!114 &967540792 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 967540788} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 10 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!1 &992317373 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 992317374} + - component: {fileID: 992317376} + - component: {fileID: 992317375} + 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 &992317374 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 992317373} + m_LocalRotation: {x: 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: 1817604799} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &992317375 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 992317373} + 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: Rotation + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 12 + m_fontSizeBase: 12 + 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 &992317376 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 992317373} + m_CullTransparentMesh: 1 +--- !u!1 &998149095 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 998149099} + - component: {fileID: 998149098} + - component: {fileID: 998149101} + - component: {fileID: 998149096} + - component: {fileID: 998149100} + - component: {fileID: 998149097} + - component: {fileID: 998149102} + m_Layer: 0 + m_Name: Locomotion Manager + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &998149096 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 998149095} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc4f2c0214c9b494fa7eb5b8b2c02885, type: 3} + m_Name: + m_EditorClassIdentifier: + m_System: {fileID: 998149098} + m_TurnUsage: 0 + m_Controllers: + - {fileID: 158929383} + m_TurnAmount: 45 + m_DebounceTime: 0.5 + m_DeadZone: 0.75 +--- !u!114 &998149097 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 998149095} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 01f69dc1cb084aa42b2f2f8cd87bc770, type: 3} + m_Name: + m_EditorClassIdentifier: + m_System: {fileID: 998149098} +--- !u!114 &998149098 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 998149095} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 03a5df2202a8b96488c744be3bd0c33e, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Timeout: 10 + m_XRRig: {fileID: 1277848183} +--- !u!4 &998149099 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 998149095} + 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: 1716681476} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &998149100 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 998149095} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 713b2b0257249694ca75424a395a0bab, type: 3} + m_Name: + m_EditorClassIdentifier: + k__BackingField: {fileID: 998149097} + k__BackingField: {fileID: 158929382} + k__BackingField: {fileID: 3819676577015031517, guid: 356e3a3902da80f40aa5747cd5eb78f4, type: 3} + k__BackingField: {fileID: 188905745} +--- !u!114 &998149101 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 998149095} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4115ea44b4ffa394997f43a74b83ccc9, type: 3} + m_Name: + m_EditorClassIdentifier: + k__BackingField: 0.03 + k__BackingField: {fileID: 1277848182} +--- !u!114 &998149102 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 998149095} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 791d8a548cffbc74c8c5b0ac5027b30f, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &1006357284 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1006357285} + - component: {fileID: 1006357287} + - component: {fileID: 1006357286} + m_Layer: 5 + m_Name: Description Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1006357285 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1006357284} + m_LocalRotation: {x: 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: 671539073} + 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: 200} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1006357286 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1006357284} + 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: 'Show the description here when user hover the ray on UI element. + + + TODO: + Add the corrsponding description.' + 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: 12 + m_fontSizeBase: 12 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 4096 + 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 &1006357287 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1006357284} + m_CullTransparentMesh: 1 +--- !u!1 &1014256448 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1014256449} + - component: {fileID: 1014256451} + - component: {fileID: 1014256450} + m_Layer: 0 + m_Name: UI Manager + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1014256449 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1014256448} + 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: 1716681476} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1014256450 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1014256448} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6856b5c8fefe73a41b2ac14380074270, type: 3} + m_Name: + m_EditorClassIdentifier: + k__BackingField: Adv_Demo_2 + k__BackingField: {fileID: 307541473} + k__BackingField: {fileID: 8300000, guid: 1fbec703c78e3bd4696a20be852c3005, type: 3} + k__BackingField: {fileID: 6046252431113818211} + k__BackingField: {fileID: 6046252430361458811} + k__BackingField: {fileID: 1605755470} + k__BackingField: {fileID: 6046252430833264920} + k__BackingField: {fileID: 6046252430543709663} + k__BackingField: {fileID: 1773907185} + k__BackingField: {fileID: 775741568} + k__BackingField: {fileID: 159872782} + k__BackingField: {fileID: 780136421} + k__BackingField: {fileID: 818994287} + k__BackingField: {fileID: 1124502489} + k__BackingField: {fileID: 198567882} + k__BackingField: {fileID: 1817604800} + k__BackingField: {fileID: 129716671} + k__BackingField: {fileID: 1858884753} + k__BackingField: {fileID: 1891672318} + k__BackingField: {fileID: 1867808085} + k__BackingField: {fileID: 1267222244} + k__BackingField: {fileID: 1955424687} + k__BackingField: {fileID: 104893119} + k__BackingField: {fileID: 1242148427} + k__BackingField: {fileID: 561419409} + k__BackingField: {fileID: 898524115} + k__BackingField: {fileID: 635410805} + k__BackingField: {fileID: 854501467} + k__BackingField: {fileID: 1802984890} + k__BackingField: {fileID: 250922032} + k__BackingField: {fileID: 1969856134} + k__BackingField: {fileID: 277785013} + k__BackingField: {fileID: 1375084743} + k__BackingField: {fileID: 1572483347} + k__BackingField: {fileID: 721941893} +--- !u!82 &1014256451 +AudioSource: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1014256448} + m_Enabled: 1 + serializedVersion: 4 + OutputAudioMixerGroup: {fileID: 0} + m_audioClip: {fileID: 0} + m_PlayOnAwake: 0 + m_Volume: 1 + m_Pitch: 1 + Loop: 0 + Mute: 0 + Spatialize: 0 + SpatializePostEffects: 0 + Priority: 128 + DopplerLevel: 1 + MinDistance: 1 + MaxDistance: 500 + Pan2D: 0 + rolloffMode: 0 + BypassEffects: 0 + BypassListenerEffects: 0 + BypassReverbZones: 0 + rolloffCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + panLevelCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + spreadCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + reverbZoneMixCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 +--- !u!1 &1032253016 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1032253017} + - component: {fileID: 1032253019} + - component: {fileID: 1032253018} + m_Layer: 5 + m_Name: Item Label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1032253017 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1032253016} + m_LocalRotation: {x: 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: 719348728} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 5, y: -0.5} + m_SizeDelta: {x: -30, y: -3} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1032253018 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1032253016} + 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: Option A + 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: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 14 + m_fontSizeBase: 14 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + 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 &1032253019 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1032253016} + m_CullTransparentMesh: 0 +--- !u!1 &1039093890 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1039093892} + - component: {fileID: 1039093891} + 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 &1039093891 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1039093890} + m_Enabled: 1 + serializedVersion: 10 + m_Type: 1 + m_Shape: 0 + m_Color: {r: 1, g: 0.9076162, b: 0.6556604, 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 &1039093892 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1039093890} + 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: 310183085} + m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} +--- !u!1 &1049883133 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1049883134} + - component: {fileID: 1049883136} + - component: {fileID: 1049883135} + m_Layer: 5 + m_Name: Label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1049883134 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1049883133} + m_LocalRotation: {x: 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: 277785010} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -7.5, y: -0.5} + m_SizeDelta: {x: -35, y: -13} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1049883135 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1049883133} + 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: + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 14 + m_fontSizeBase: 14 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + 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 &1049883136 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1049883133} + m_CullTransparentMesh: 1 +--- !u!1 &1064194946 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1064194947} + - component: {fileID: 1064194950} + - component: {fileID: 1064194949} + - component: {fileID: 1064194948} + m_Layer: 5 + m_Name: Viewport + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1064194947 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1064194946} + m_LocalRotation: {x: 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: 772805674} + m_Father: {fileID: 195560699} + 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: -17, y: 0} + m_Pivot: {x: 0, y: 1} +--- !u!114 &1064194948 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1064194946} + 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: 10917, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1064194949 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1064194946} + m_CullTransparentMesh: 1 +--- !u!114 &1064194950 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1064194946} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ShowMaskGraphic: 0 +--- !u!1 &1075673660 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1075673661} + - component: {fileID: 1075673663} + - component: {fileID: 1075673662} + 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 &1075673661 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1075673660} + m_LocalRotation: {x: 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: 561419408} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1075673662 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1075673660} + 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: Back + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 12 + m_fontSizeBase: 12 + 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 &1075673663 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1075673660} + m_CullTransparentMesh: 1 +--- !u!1 &1076905439 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1076905440} + m_Layer: 5 + m_Name: Fill Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1076905440 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1076905439} + m_LocalRotation: {x: -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: 9664470} + m_Father: {fileID: 1955424686} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.25} + m_AnchorMax: {x: 1, y: 0.75} + m_AnchoredPosition: {x: -5, y: 0} + m_SizeDelta: {x: -20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1079812360 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1079812361} + - component: {fileID: 1079812362} + m_Layer: 0 + m_Name: Object Interaction Manager + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1079812361 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1079812360} + 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: 1716681476} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1079812362 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1079812360} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8d2a77cea864dcf46ae6b43b9c382206, type: 3} + m_Name: + m_EditorClassIdentifier: + k__BackingField: {fileID: 1180245855} + k__BackingField: 1 + k__BackingField: 0 + k__BackingField: 1 + k__BackingField: 0.05 + k__BackingField: 1 + isInteractingObject: 0 +--- !u!1 &1100663476 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1100663477} + - component: {fileID: 1100663478} + m_Layer: 5 + m_Name: Root + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1100663477 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1100663476} + m_LocalRotation: {x: 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: 1481092537} + - {fileID: 1470721043} + m_Father: {fileID: 780136422} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1100663478 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1100663476} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!1 &1101703218 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1101703219} + - component: {fileID: 1101703221} + - component: {fileID: 1101703220} + 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 &1101703219 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1101703218} + m_LocalRotation: {x: 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: 721941891} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1101703220 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1101703218} + 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: Back + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 12 + m_fontSizeBase: 12 + 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 &1101703221 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1101703218} + m_CullTransparentMesh: 1 +--- !u!1 &1104823638 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1104823639} + m_Layer: 5 + m_Name: Handle Slide Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1104823639 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1104823638} + m_LocalRotation: {x: -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: 1441071502} + m_Father: {fileID: 1572483346} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1124502487 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1124502488} + - component: {fileID: 1124502490} + - component: {fileID: 1124502489} + m_Layer: 5 + m_Name: Now Thumbstick Effect Option + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1124502488 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1124502487} + m_LocalRotation: {x: 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: 493150200} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 80, y: -10} + m_SizeDelta: {x: 160, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1124502489 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1124502487} + 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: 'Current option: Rotation' + 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: 12 + m_fontSizeBase: 12 + 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 &1124502490 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1124502487} + m_CullTransparentMesh: 1 +--- !u!1 &1142145958 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1142145959} + - component: {fileID: 1142145961} + - component: {fileID: 1142145960} + m_Layer: 5 + m_Name: Fill + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1142145959 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1142145958} + m_LocalRotation: {x: -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: 1714999676} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 10, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1142145960 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1142145958} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1142145961 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1142145958} + m_CullTransparentMesh: 1 +--- !u!1 &1180245854 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1180245860} + - component: {fileID: 1180245859} + - component: {fileID: 1180245855} + - component: {fileID: 1180245858} + - component: {fileID: 1180245857} + - component: {fileID: 1180245856} + - component: {fileID: 1180245861} + m_Layer: 0 + m_Name: Right Controller + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1180245855 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1180245854} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6803edce0201f574f923fd9d10e5b30a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_InteractionManager: {fileID: 1604233172} + m_InteractionLayerMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_AttachTransform: {fileID: 0} + m_StartingSelectedInteractable: {fileID: 0} + m_OnHoverEnter: + m_PersistentCalls: + m_Calls: [] + m_OnHoverExit: + m_PersistentCalls: + m_Calls: [] + m_OnSelectEnter: + m_PersistentCalls: + m_Calls: [] + m_OnSelectExit: + m_PersistentCalls: + m_Calls: [] + m_SelectActionTrigger: 0 + m_HideControllerOnSelect: 0 + m_PlayAudioClipOnSelectEnter: 0 + m_AudioClipForOnSelectEnter: {fileID: 0} + m_PlayAudioClipOnSelectExit: 0 + m_AudioClipForOnSelectExit: {fileID: 0} + m_PlayAudioClipOnHoverEnter: 0 + m_AudioClipForOnHoverEnter: {fileID: 0} + m_PlayAudioClipOnHoverExit: 0 + m_AudioClipForOnHoverExit: {fileID: 0} + m_PlayHapticsOnSelectEnter: 0 + m_HapticSelectEnterIntensity: 0 + m_HapticSelectEnterDuration: 0 + m_PlayHapticsOnSelectExit: 0 + m_HapticSelectExitIntensity: 0 + m_HapticSelectExitDuration: 0 + m_PlayHapticsOnHoverEnter: 0 + m_HapticHoverEnterIntensity: 0 + m_HapticHoverEnterDuration: 0 + m_PlayHapticsOnHoverExit: 0 + m_HapticHoverExitIntensity: 0 + m_HapticHoverExitDuration: 0 + m_LineType: 0 + m_MaxRaycastDistance: 30 + m_ReferenceFrame: {fileID: 0} + m_Velocity: 5 + m_Acceleration: 9.8 + m_AdditionalFlightTime: 0.5 + m_EndPointDistance: 30 + m_EndPointHeight: -10 + m_ControlPointDistance: 10 + m_ControlPointHeight: 5 + m_SampleFrequency: 20 + m_HitDetectionType: 0 + m_SphereCastRadius: 0.1 + m_RaycastMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RaycastTriggerInteraction: 1 + m_HoverToSelect: 0 + m_HoverTimeToSelect: 0.5 + m_EnableUIInteraction: 1 +--- !u!210 &1180245856 +SortingGroup: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1180245854} + m_Enabled: 1 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 5 + m_SortAtRoot: 0 +--- !u!114 &1180245857 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1180245854} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e988983f96fe1dd48800bcdfc82f23e9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_LineWidth: 0.005 + m_OverrideInteractorLineLength: 1 + m_LineLength: 10 + m_WidthCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_ValidColorGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 0, g: 1, b: 0.069353014, a: 1} + key2: {r: 0, g: 1, b: 0.06944442, a: 0} + key3: {r: 0, g: 1, b: 0.065164566, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 14071 + ctime2: 20432 + ctime3: 65535 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_ColorSpace: -1 + m_NumColorKeys: 4 + m_NumAlphaKeys: 2 + m_InvalidColorGradient: + serializedVersion: 2 + key0: {r: 1, g: 0, b: 0, a: 1} + key1: {r: 1, g: 0, b: 0, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_ColorSpace: -1 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + m_SmoothMovement: 0 + m_FollowTightness: 10 + m_SnapThresholdDistance: 10 + m_Reticle: {fileID: 0} + m_StopLineAtFirstRaycastHit: 1 +--- !u!120 &1180245858 +LineRenderer: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1180245854} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 0 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10306, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Positions: + - {x: 0, y: 0, z: 0} + - {x: 0, y: 0, z: 1} + m_Parameters: + serializedVersion: 3 + widthMultiplier: 0.005 + widthCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_ColorSpace: -1 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + numCornerVertices: 4 + numCapVertices: 4 + alignment: 0 + textureMode: 0 + textureScale: {x: 1, y: 1} + shadowBias: 0.5 + generateLightingData: 0 + m_MaskInteraction: 0 + m_UseWorldSpace: 1 + m_Loop: 0 + m_ApplyActiveColorSpace: 0 +--- !u!114 &1180245859 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1180245854} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1ae26e19cd956134bbdf3c6f65bf393a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UpdateTrackingType: 0 + m_EnableInputActions: 1 + m_PoseProvider: {fileID: 0} + m_ControllerNode: 5 + m_SelectUsage: 3 + m_ActivateUsage: 2 + m_UIPressUsage: 2 + m_AxisToPressThreshold: 0.1 + m_ModelPrefab: {fileID: 0} + m_ModelTransform: {fileID: 0} + m_AnimateModel: 0 + m_ModelSelectTransition: + m_ModelDeSelectTransition: +--- !u!4 &1180245860 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1180245854} + 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: 1875936584} + m_Father: {fileID: 10173838} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1180245861 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1180245854} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f0b61457a6a405c49b000f7a3ed895bf, type: 3} + m_Name: + m_EditorClassIdentifier: + layerMask: + serializedVersion: 2 + m_Bits: 4294967295 + k__BackingField: 1 + k__BackingField: 10 + isFrustumShowed: 1 + verticalFov: 60 + k__BackingField: 1024 + k__BackingField: 0 + k__BackingField: 0 + frustumLineCount: 8 + frustumCenterLineCount: 1 + frustumLineWidth: 0.02 + frustumCenterLineWidth: 0.01 + frustumLineColor: {r: 1, g: 0.6534534, b: 0, a: 1} + frustumCenterLineColor: {r: 0.99574804, g: 0, b: 1, a: 1} + k__BackingField: 0 +--- !u!1 &1196218477 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 199750331} + - component: {fileID: 199750333} + - component: {fileID: 199750332} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1205547430 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1205547431} + - component: {fileID: 1205547432} + m_Layer: 5 + m_Name: Row + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1205547431 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1205547430} + m_LocalRotation: {x: 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: 1404928705} + m_Father: {fileID: 26059402} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 90, y: -15} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1205547432 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1205547430} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 1 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 1 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!1 &1208039966 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1208039967} + - component: {fileID: 1208039968} + m_Layer: 5 + m_Name: Root + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1208039967 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1208039966} + m_LocalRotation: {x: 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: 715919774} + - {fileID: 2047610199} + m_Father: {fileID: 159872783} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1208039968 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1208039966} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!1 &1242148426 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1242148428} + - component: {fileID: 1242148427} + - component: {fileID: 1242148429} + m_Layer: 5 + m_Name: Zoom Speed Slider + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1242148427 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1242148426} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 67db9e8f0e2ae9c40bc1e2b64352a6b4, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1686140231} + m_FillRect: {fileID: 1142145959} + m_HandleRect: {fileID: 1686140229} + m_Direction: 0 + m_MinValue: 0 + m_MaxValue: 1 + m_WholeNumbers: 0 + m_Value: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!224 &1242148428 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1242148426} + m_LocalRotation: {x: 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: 1784449312} + - {fileID: 1714999676} + - {fileID: 1758194563} + m_Father: {fileID: 807898124} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 90, y: -40} + m_SizeDelta: {x: 160, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1242148429 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1242148426} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e661ec2da35165a4a9d9dd3c43f5799c, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &1256100925 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1256100926} + - component: {fileID: 1256100929} + - component: {fileID: 1256100928} + - component: {fileID: 1256100927} + m_Layer: 5 + m_Name: Scrollbar + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1256100926 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1256100925} + m_LocalRotation: {x: 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: 847345095} + m_Father: {fileID: 195560699} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 0} + m_Pivot: {x: 1, y: 1} +--- !u!114 &1256100927 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1256100925} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2a4db7a114972834c8e4117be1d82ba3, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 107584992} + m_HandleRect: {fileID: 107584991} + m_Direction: 2 + m_Value: 0 + m_Size: 1 + m_NumberOfSteps: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &1256100928 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1256100925} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1256100929 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1256100925} + m_CullTransparentMesh: 1 +--- !u!1 &1267222241 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1267222242} + - component: {fileID: 1267222243} + - component: {fileID: 1267222244} + 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 &1267222242 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1267222241} + m_LocalRotation: {x: 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: 164953331} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 90, y: -10} + m_SizeDelta: {x: 160, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1267222243 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1267222241} + m_CullTransparentMesh: 1 +--- !u!114 &1267222244 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1267222241} + 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: 'Rotation Speed: 0.7' + 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: 12 + m_fontSizeBase: 12 + 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!1 &1268618020 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1268618021} + - component: {fileID: 1268618024} + - component: {fileID: 1268618023} + - component: {fileID: 1268618022} + m_Layer: 5 + m_Name: Scrollbar Vertical + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1268618021 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1268618020} + m_LocalRotation: {x: -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: 1518445779} + m_Father: {fileID: 466732544} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: -17} + m_Pivot: {x: 1, y: 1} +--- !u!114 &1268618022 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1268618020} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2a4db7a114972834c8e4117be1d82ba3, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 0, g: 0, b: 0, a: 0.47058824} + m_HighlightedColor: {r: 0, g: 0, b: 0, a: 0.627451} + m_PressedColor: {r: 0, g: 0, b: 0, a: 0.627451} + m_SelectedColor: {r: 0, g: 0, b: 0, a: 0.627451} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 118861738} + m_HandleRect: {fileID: 118861737} + m_Direction: 2 + m_Value: 1 + m_Size: 0.48076922 + m_NumberOfSteps: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &1268618023 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1268618020} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1268618024 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1268618020} + m_CullTransparentMesh: 1 +--- !u!1 &1277848182 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1277848185} + - component: {fileID: 1277848183} + m_Layer: 0 + m_Name: XR Rig + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1277848183 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1277848182} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7448815bd5148434682b3d931066cd10, type: 3} + m_Name: + m_EditorClassIdentifier: + m_RigBaseGameObject: {fileID: 1277848182} + m_CameraFloorOffsetObject: {fileID: 10173837} + m_CameraGameObject: {fileID: 307541469} + m_TrackingOriginMode: 2 + m_TrackingSpace: 3 + m_CameraYOffset: 0 +--- !u!4 &1277848185 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1277848182} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -3} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 10173838} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1311411282 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1311411283} + - component: {fileID: 1311411285} + - component: {fileID: 1311411284} + 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 &1311411283 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1311411282} + m_LocalRotation: {x: 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: 1802984889} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1311411284 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1311411282} + 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: Tracker + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 12 + m_fontSizeBase: 12 + 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 &1311411285 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1311411282} + m_CullTransparentMesh: 1 +--- !u!1 &1314471289 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1314471290} + - component: {fileID: 1314471292} + - component: {fileID: 1314471291} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1314471290 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1314471289} + m_LocalRotation: {x: -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: 1572483346} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.25} + m_AnchorMax: {x: 1, y: 0.75} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1314471291 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1314471289} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1314471292 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1314471289} + m_CullTransparentMesh: 1 +--- !u!1 &1328502174 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1328502175} + - component: {fileID: 1328502177} + - component: {fileID: 1328502176} + m_Layer: 5 + m_Name: Left Part + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1328502175 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1328502174} + m_LocalRotation: {x: 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: 1700372292} + - {fileID: 1564937183} + m_Father: {fileID: 2027252411} + 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: 288, y: 360} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1328502176 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1328502174} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0.7999997, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1328502177 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1328502174} + m_CullTransparentMesh: 1 +--- !u!1 &1338946460 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1338946461} + - component: {fileID: 1338946462} + m_Layer: 5 + m_Name: Row (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1338946461 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1338946460} + m_LocalRotation: {x: 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: 129716670} + m_Father: {fileID: 967540789} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 90, y: -103.33333} + m_SizeDelta: {x: 160, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1338946462 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1338946460} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 1 + m_ChildControlHeight: 1 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!1 &1344838490 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1344838491} + - component: {fileID: 1344838493} + - component: {fileID: 1344838492} + 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 &1344838491 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1344838490} + m_LocalRotation: {x: 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: 898524112} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1344838492 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1344838490} + 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: Capture + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 12 + m_fontSizeBase: 12 + 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 &1344838493 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1344838490} + m_CullTransparentMesh: 1 +--- !u!1 &1371255584 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1371255585} + - component: {fileID: 1371255587} + - component: {fileID: 1371255586} + m_Layer: 5 + m_Name: Item Checkmark + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1371255585 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1371255584} + m_LocalRotation: {x: 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: 719348728} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 10, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1371255586 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1371255584} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10901, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1371255587 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1371255584} + m_CullTransparentMesh: 0 +--- !u!1 &1375084740 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1375084741} + - component: {fileID: 1375084742} + - component: {fileID: 1375084743} + 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 &1375084741 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1375084740} + m_LocalRotation: {x: 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: 263893894} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 90, y: -17.5} + m_SizeDelta: {x: 160, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1375084742 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1375084740} + m_CullTransparentMesh: 1 +--- !u!114 &1375084743 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1375084740} + 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: 'Camera FOV: 60' + 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: 12 + m_fontSizeBase: 12 + 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!1 &1404928704 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1404928705} + - component: {fileID: 1404928707} + - component: {fileID: 1404928706} + m_Layer: 5 + m_Name: Title + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1404928705 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1404928704} + m_LocalRotation: {x: 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: 1205547431} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 80, y: -10} + m_SizeDelta: {x: 160, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1404928706 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1404928704} + 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: 360 Photo Capture + 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: 12 + m_fontSizeBase: 12 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 1024 + 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 &1404928707 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1404928704} + m_CullTransparentMesh: 1 +--- !u!1 &1438360275 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1438360276} + m_Layer: 5 + m_Name: Sliding Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1438360276 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1438360275} + m_LocalRotation: {x: -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: 2138647164} + m_Father: {fileID: 46869379} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -20, y: -20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1441071501 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1441071502} + - component: {fileID: 1441071504} + - component: {fileID: 1441071503} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1441071502 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1441071501} + m_LocalRotation: {x: -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: 1104823639} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1441071503 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1441071501} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1441071504 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1441071501} + m_CullTransparentMesh: 1 +--- !u!1 &1444596028 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1444596029} + - component: {fileID: 1444596031} + - component: {fileID: 1444596030} + m_Layer: 0 + m_Name: Title Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1444596029 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1444596028} + m_LocalRotation: {x: 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: 1699197788} + m_Father: {fileID: 263608692} + 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: -30} + m_SizeDelta: {x: 0, y: 60} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1444596030 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1444596028} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.9843137, g: 0.77254903, b: 0.19215687, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1444596031 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1444596028} + m_CullTransparentMesh: 1 +--- !u!1 &1447080153 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1447080154} + m_Layer: 5 + m_Name: Content + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1447080154 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1447080153} + m_LocalRotation: {x: 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: 719348728} + m_Father: {fileID: 775715684} + 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: 0} + m_SizeDelta: {x: 0, y: 28} + m_Pivot: {x: 0.5, y: 1} +--- !u!1 &1458309048 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1458309049} + - component: {fileID: 1458309051} + - component: {fileID: 1458309050} + m_Layer: 5 + m_Name: Checkmark + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1458309049 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1458309048} + m_LocalRotation: {x: -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: 601793255} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1458309050 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1458309048} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10901, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1458309051 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1458309048} + m_CullTransparentMesh: 1 +--- !u!1 &1470721042 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1470721043} + - component: {fileID: 1470721045} + - component: {fileID: 1470721044} + m_Layer: 5 + m_Name: Right Part + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1470721043 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1470721042} + m_LocalRotation: {x: 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: 2037342437} + - {fileID: 376580883} + m_Father: {fileID: 1100663477} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 464, y: -180} + m_SizeDelta: {x: 352, y: 360} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1470721044 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1470721042} + m_Enabled: 0 + 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.14068666, b: 0, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1470721045 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1470721042} + m_CullTransparentMesh: 1 +--- !u!1 &1481092536 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1481092537} + - component: {fileID: 1481092539} + - component: {fileID: 1481092538} + m_Layer: 5 + m_Name: Left Part + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1481092537 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1481092536} + m_LocalRotation: {x: 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: 721941891} + m_Father: {fileID: 1100663477} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 144, y: -180} + m_SizeDelta: {x: 288, y: 360} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1481092538 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1481092536} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0.7999997, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1481092539 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1481092536} + m_CullTransparentMesh: 1 +--- !u!1 &1482308685 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1482308686} + - component: {fileID: 1482308690} + - component: {fileID: 1482308689} + - component: {fileID: 1482308688} + - component: {fileID: 1482308687} + m_Layer: 5 + m_Name: Tracker 2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1482308686 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1482308685} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -2, y: 2, z: 1.2} + m_LocalScale: {x: 0.2, y: 0.2, z: 0.2} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 310183085} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1482308687 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1482308685} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f0b61457a6a405c49b000f7a3ed895bf, type: 3} + m_Name: + m_EditorClassIdentifier: + layerMask: + serializedVersion: 2 + m_Bits: 23 + k__BackingField: 1 + k__BackingField: 10 + isFrustumShowed: 0 + verticalFov: 40 + k__BackingField: 2048 + k__BackingField: 0 + k__BackingField: 1 + frustumLineCount: 4 + frustumCenterLineCount: 1 + frustumLineWidth: 0.02 + frustumCenterLineWidth: 0.01 + frustumLineColor: {r: 1, g: 1, b: 1, a: 1} + frustumCenterLineColor: {r: 1, g: 1, b: 1, a: 1} + k__BackingField: 0 +--- !u!65 &1482308688 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1482308685} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1482308689 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1482308685} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: cb2baad133da5124ca67d206c30b2206, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1482308690 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1482308685} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1493660548 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1493660551} + - component: {fileID: 1493660550} + - component: {fileID: 1493660549} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1493660549 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1493660548} + 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 &1493660550 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1493660548} + 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 &1493660551 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1493660548} + 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 &1518445778 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1518445779} + m_Layer: 5 + m_Name: Sliding Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1518445779 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1518445778} + m_LocalRotation: {x: -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: 118861737} + m_Father: {fileID: 1268618021} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -20, y: -20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1545605956 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1545605957} + - component: {fileID: 1545605958} + m_Layer: 5 + m_Name: Row (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1545605957 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1545605956} + m_LocalRotation: {x: 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: 1802984889} + m_Father: {fileID: 747236719} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 90, y: -95} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1545605958 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1545605956} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 1 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 1 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!1 &1564937182 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1564937183} + - component: {fileID: 1564937186} + - component: {fileID: 1564937185} + - component: {fileID: 1564937184} + m_Layer: 5 + m_Name: Scroll View + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1564937183 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1564937182} + m_LocalRotation: {x: 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: 229497749} + - {fileID: 851711944} + - {fileID: 407344748} + m_Father: {fileID: 1328502175} + 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: 200} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1564937184 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1564937182} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1aa08ab6e0800fa44ae55d278d1423e3, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Content: {fileID: 378809147} + m_Horizontal: 0 + m_Vertical: 1 + m_MovementType: 1 + m_Elasticity: 0.1 + m_Inertia: 1 + m_DecelerationRate: 0.135 + m_ScrollSensitivity: 1 + m_Viewport: {fileID: 229497749} + m_HorizontalScrollbar: {fileID: 851711945} + m_VerticalScrollbar: {fileID: 407344749} + m_HorizontalScrollbarVisibility: 1 + m_VerticalScrollbarVisibility: 2 + m_HorizontalScrollbarSpacing: -3 + m_VerticalScrollbarSpacing: -3 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &1564937185 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1564937182} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0.392} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1564937186 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1564937182} + m_CullTransparentMesh: 1 +--- !u!1 &1572483345 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1572483346} + - component: {fileID: 1572483347} + - component: {fileID: 1572483348} + m_Layer: 5 + m_Name: FOV Slider + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1572483346 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1572483345} + m_LocalRotation: {x: 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: 1314471290} + - {fileID: 869120997} + - {fileID: 1104823639} + m_Father: {fileID: 263893894} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 90, y: -62.5} + m_SizeDelta: {x: 160, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1572483347 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1572483345} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 67db9e8f0e2ae9c40bc1e2b64352a6b4, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1441071503} + m_FillRect: {fileID: 605362873} + m_HandleRect: {fileID: 1441071502} + m_Direction: 0 + m_MinValue: 0 + m_MaxValue: 1 + m_WholeNumbers: 0 + m_Value: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &1572483348 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1572483345} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e661ec2da35165a4a9d9dd3c43f5799c, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &1604233171 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1604233173} + - component: {fileID: 1604233172} + m_Layer: 0 + m_Name: XR Interaction Manager + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1604233172 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1604233171} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 83e4e6cca11330d4088d729ab4fc9d9f, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!4 &1604233173 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1604233171} + 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: 1716681476} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1605755467 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1605755468} + - component: {fileID: 1605755472} + - component: {fileID: 1605755471} + - component: {fileID: 1605755470} + - component: {fileID: 1605755469} + m_Layer: 5 + m_Name: Load Second Scene Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1605755468 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1605755467} + m_LocalRotation: {x: 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: 1698570710} + m_Father: {fileID: 378809147} + 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: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1605755469 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1605755467} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e661ec2da35165a4a9d9dd3c43f5799c, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &1605755470 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1605755467} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1605755471} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &1605755471 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1605755467} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1605755472 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1605755467} + m_CullTransparentMesh: 1 +--- !u!1 &1609717183 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1609717184} + - component: {fileID: 1609717185} + m_Layer: 5 + m_Name: Movement Interaction Speed Slider + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1609717184 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1609717183} + m_LocalRotation: {x: -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: 1891672316} + - {fileID: 1867808084} + m_Father: {fileID: 835238643} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 90, y: -36.666668} + m_SizeDelta: {x: 180, y: 50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1609717185 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1609717183} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 10 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!1 &1618246322 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1618246323} + - component: {fileID: 1618246326} + - component: {fileID: 1618246325} + - component: {fileID: 1618246324} + m_Layer: 5 + m_Name: Scrollbar + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1618246323 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1618246322} + m_LocalRotation: {x: 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: 386520513} + m_Father: {fileID: 168481258} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 0} + m_Pivot: {x: 1, y: 1} +--- !u!114 &1618246324 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1618246322} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2a4db7a114972834c8e4117be1d82ba3, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1930077883} + m_HandleRect: {fileID: 1930077882} + m_Direction: 2 + m_Value: 0 + m_Size: 0.2 + m_NumberOfSteps: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &1618246325 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1618246322} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1618246326 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1618246322} + m_CullTransparentMesh: 0 +--- !u!1 &1635249161 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1635249162} + - component: {fileID: 1635249163} + m_Layer: 5 + m_Name: Tracker Dropdown Row + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1635249162 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1635249161} + m_LocalRotation: {x: 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: 1969856133} + m_Father: {fileID: 778342242} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 90, y: -52.5} + m_SizeDelta: {x: 160, y: 35} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1635249163 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1635249161} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 1 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 1 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!1 &1648449975 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1648449976} + - component: {fileID: 1648449978} + - component: {fileID: 1648449977} + 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 &1648449976 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1648449975} + m_LocalRotation: {x: 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: 818994285} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1648449977 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1648449975} + 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: Back + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 12 + m_fontSizeBase: 12 + 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 &1648449978 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1648449975} + m_CullTransparentMesh: 1 +--- !u!1 &1668172527 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1668172528} + - component: {fileID: 1668172529} + m_Layer: 5 + m_Name: Row + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1668172528 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1668172527} + m_LocalRotation: {x: 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: 635410804} + m_Father: {fileID: 747236719} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 90, y: -15} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1668172529 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1668172527} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 1 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 1 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!1 &1686140228 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1686140229} + - component: {fileID: 1686140230} + - component: {fileID: 1686140231} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1686140229 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1686140228} + m_LocalRotation: {x: -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: 1758194563} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1686140230 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1686140228} + m_CullTransparentMesh: 1 +--- !u!114 &1686140231 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1686140228} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &1698570709 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1698570710} + - component: {fileID: 1698570712} + - component: {fileID: 1698570711} + 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 &1698570710 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1698570709} + m_LocalRotation: {x: 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: 1605755468} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1698570711 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1698570709} + 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: Load Second Scene For Test + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 12 + m_fontSizeBase: 12 + 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 &1698570712 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1698570709} + m_CullTransparentMesh: 1 +--- !u!1 &1699197787 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1699197788} + - component: {fileID: 1699197791} + - component: {fileID: 1699197790} + - component: {fileID: 1699197789} + m_Layer: 0 + m_Name: Title + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1699197788 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1699197787} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.8, y: 0.8, z: 0.8} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1444596029} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1699197789 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1699197787} + 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: Spectator + 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: 4283836953 + m_fontColor: {r: 0.09803922, g: 0.16470589, b: 0.3372549, 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: 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 &1699197790 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1699197787} + m_CullTransparentMesh: 1 +--- !u!23 &1699197791 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1699197787} + 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: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, 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!1 &1700372291 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1700372292} + - component: {fileID: 1700372294} + - component: {fileID: 1700372293} + m_Layer: 5 + m_Name: Title + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1700372292 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1700372291} + m_LocalRotation: {x: -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: 1328502175} + 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: -22.5} + m_SizeDelta: {x: 0, y: 45} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1700372293 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1700372291} + 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: Spectator Demo + 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: 18 + m_fontSizeBase: 18 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 17 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 1024 + m_textAlignment: 65535 + m_characterSpacing: 25 + 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 &1700372294 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1700372291} + m_CullTransparentMesh: 1 +--- !u!1001 &1708912594 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 158929378} + m_Modifications: + - target: {fileID: 1170470780012416826, guid: 4db7b3025e9268b4582aa5c77f167c96, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1170470780012416826, guid: 4db7b3025e9268b4582aa5c77f167c96, type: 3} + propertyPath: m_LocalPosition.y + value: 0.0241 + objectReference: {fileID: 0} + - target: {fileID: 1170470780012416826, guid: 4db7b3025e9268b4582aa5c77f167c96, type: 3} + propertyPath: m_LocalPosition.z + value: 0.0487 + objectReference: {fileID: 0} + - target: {fileID: 1170470780012416826, guid: 4db7b3025e9268b4582aa5c77f167c96, type: 3} + propertyPath: m_LocalRotation.w + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1170470780012416826, guid: 4db7b3025e9268b4582aa5c77f167c96, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1170470780012416826, guid: 4db7b3025e9268b4582aa5c77f167c96, type: 3} + propertyPath: m_LocalRotation.y + value: 0.9659259 + objectReference: {fileID: 0} + - target: {fileID: 1170470780012416826, guid: 4db7b3025e9268b4582aa5c77f167c96, type: 3} + propertyPath: m_LocalRotation.z + value: 0.258819 + objectReference: {fileID: 0} + - target: {fileID: 1170470780012416826, guid: 4db7b3025e9268b4582aa5c77f167c96, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: -30 + objectReference: {fileID: 0} + - target: {fileID: 1170470780012416826, guid: 4db7b3025e9268b4582aa5c77f167c96, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 180 + objectReference: {fileID: 0} + - target: {fileID: 1170470780012416826, guid: 4db7b3025e9268b4582aa5c77f167c96, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1978637512304563584, guid: 4db7b3025e9268b4582aa5c77f167c96, type: 3} + propertyPath: m_Name + value: Focus3_Left + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 4db7b3025e9268b4582aa5c77f167c96, type: 3} +--- !u!4 &1708912595 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 1170470780012416826, guid: 4db7b3025e9268b4582aa5c77f167c96, type: 3} + m_PrefabInstance: {fileID: 1708912594} + m_PrefabAsset: {fileID: 0} +--- !u!1 &1714999675 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1714999676} + m_Layer: 5 + m_Name: Fill Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1714999676 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1714999675} + m_LocalRotation: {x: -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: 1142145959} + m_Father: {fileID: 1242148428} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.25} + m_AnchorMax: {x: 1, y: 0.75} + m_AnchoredPosition: {x: -5, y: 0} + m_SizeDelta: {x: -20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1716681475 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1716681476} + m_Layer: 0 + m_Name: '[ Manager ]' + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1716681476 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1716681475} + 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: 1604233173} + - {fileID: 998149099} + - {fileID: 109067248} + - {fileID: 1079812361} + - {fileID: 1014256449} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1724960418 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1724960419} + - component: {fileID: 1724960421} + - component: {fileID: 1724960420} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1724960419 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1724960418} + m_LocalRotation: {x: -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: 1795681834} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1724960420 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1724960418} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1724960421 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1724960418} + m_CullTransparentMesh: 1 +--- !u!1 &1726401428 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1726401429} + m_Layer: 5 + m_Name: Sliding Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1726401429 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1726401428} + m_LocalRotation: {x: -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: 111386685} + m_Father: {fileID: 851711944} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 91.5, y: 0} + m_SizeDelta: {x: -20, y: -20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1739558342 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1739558343} + - component: {fileID: 1739558344} + m_Layer: 5 + m_Name: Row (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1739558343 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1739558342} + m_LocalRotation: {x: 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: 854501466} + m_Father: {fileID: 747236719} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 90, y: -55} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1739558344 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1739558342} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 1 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 1 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!1 &1747373579 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1747373580} + - component: {fileID: 1747373584} + - component: {fileID: 1747373583} + - component: {fileID: 1747373582} + - component: {fileID: 1747373581} + m_Layer: 5 + m_Name: Tracker 1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1747373580 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1747373579} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 2, y: 2, z: 1.2} + m_LocalScale: {x: 0.2, y: 0.2, z: 0.2} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 310183085} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1747373581 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1747373579} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f0b61457a6a405c49b000f7a3ed895bf, type: 3} + m_Name: + m_EditorClassIdentifier: + layerMask: + serializedVersion: 2 + m_Bits: 4294967295 + k__BackingField: 1 + k__BackingField: 10 + isFrustumShowed: 0 + verticalFov: 60 + k__BackingField: 2048 + k__BackingField: 0 + k__BackingField: 1 + frustumLineCount: 4 + frustumCenterLineCount: 1 + frustumLineWidth: 0.02 + frustumCenterLineWidth: 0.01 + frustumLineColor: {r: 1, g: 1, b: 1, a: 1} + frustumCenterLineColor: {r: 1, g: 1, b: 1, a: 1} + k__BackingField: 0 +--- !u!65 &1747373582 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1747373579} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1747373583 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1747373579} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: d859ff0236f4e774dbe9a2b9c8a063e6, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1747373584 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1747373579} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1758194562 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1758194563} + m_Layer: 5 + m_Name: Handle Slide Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1758194563 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1758194562} + m_LocalRotation: {x: -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: 1686140229} + m_Father: {fileID: 1242148428} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1769381936 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1769381940} + - component: {fileID: 1769381939} + - component: {fileID: 1769381938} + - component: {fileID: 1769381937} + - component: {fileID: 1769381941} + m_Layer: 0 + m_Name: Floor + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!64 &1769381937 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1769381936} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 5 + m_Convex: 0 + m_CookingOptions: 30 + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &1769381938 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1769381936} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1769381939 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1769381936} + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &1769381940 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1769381936} + 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: 310183085} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1769381941 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1769381936} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 38f6bf3d943ac7945842268c9ef1dca6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_InteractionManager: {fileID: 1604233172} + m_Colliders: + - {fileID: 1769381937} + m_InteractionLayerMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_OnFirstHoverEnter: + m_PersistentCalls: + m_Calls: [] + m_OnHoverEnter: + m_PersistentCalls: + m_Calls: [] + m_OnHoverExit: + m_PersistentCalls: + m_Calls: [] + m_OnLastHoverExit: + m_PersistentCalls: + m_Calls: [] + m_OnSelectEnter: + m_PersistentCalls: + m_Calls: [] + m_OnSelectExit: + m_PersistentCalls: + m_Calls: [] + m_OnActivate: + m_PersistentCalls: + m_Calls: [] + m_OnDeactivate: + m_PersistentCalls: + m_Calls: [] + m_CustomReticle: {fileID: 0} + m_TeleportationProvider: {fileID: 0} + m_MatchOrientation: 0 + m_TeleportTrigger: 0 +--- !u!1 &1773907185 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1773907186} + - component: {fileID: 1773907188} + - component: {fileID: 1773907187} + m_Layer: 5 + m_Name: View - Main Page + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1773907186 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1773907185} + m_LocalRotation: {x: 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: 2027252411} + m_Father: {fileID: 188905746} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1773907187 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1773907185} + 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: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 0 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1773907188 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1773907185} + m_CullTransparentMesh: 1 +--- !u!1 &1781049002 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1781049003} + m_Layer: 5 + m_Name: Fill Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1781049003 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1781049002} + m_LocalRotation: {x: -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: 664212378} + m_Father: {fileID: 1867808084} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.25} + m_AnchorMax: {x: 1, y: 0.75} + m_AnchoredPosition: {x: -5, y: 0} + m_SizeDelta: {x: -20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1784449311 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1784449312} + - component: {fileID: 1784449314} + - component: {fileID: 1784449313} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1784449312 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1784449311} + m_LocalRotation: {x: -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: 1242148428} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.25} + m_AnchorMax: {x: 1, y: 0.75} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1784449313 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1784449311} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1784449314 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1784449311} + m_CullTransparentMesh: 1 +--- !u!1 &1795681833 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1795681834} + m_Layer: 5 + m_Name: Sliding Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1795681834 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1795681833} + m_LocalRotation: {x: -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: 1724960419} + m_Father: {fileID: 407344748} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -20, y: -20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1799102236 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1799102237} + - component: {fileID: 1799102239} + - component: {fileID: 1799102238} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1799102237 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1799102236} + m_LocalRotation: {x: -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: 56127278} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.4047619} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1799102238 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1799102236} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1799102239 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1799102236} + m_CullTransparentMesh: 1 +--- !u!1 &1800203739 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1800203740} + - component: {fileID: 1800203742} + - component: {fileID: 1800203741} + m_Layer: 0 + m_Name: Content + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1800203740 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1800203739} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.8, y: 0.8, z: 0.8} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1848673646} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1800203741 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1800203739} + 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: 'Spectator feature allow screenshot recording, broadcasting with + better visual configure. + + If build with allowSpectator set. + You can run the test. Open quick menu. Use screenshot, recording, broadcasting + feature. You need check if the recorded image or video is correct. You don''t + need this test scene to do the test. But if you want, you can see the captured + images here. If the spectator is started, the image and status should be updated.' + 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: 4281452027 + m_fontColor: {r: 0.9843137, g: 0.77254903, b: 0.19215687, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 24 + m_fontSizeBase: 24 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 8 + 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 &1800203742 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1800203739} + m_CullTransparentMesh: 1 +--- !u!1 &1802984888 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1802984889} + - component: {fileID: 1802984892} + - component: {fileID: 1802984891} + - component: {fileID: 1802984890} + - component: {fileID: 1802984893} + m_Layer: 5 + m_Name: Tracker Source Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1802984889 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1802984888} + m_LocalRotation: {x: -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: 1311411283} + m_Father: {fileID: 1545605957} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 80, y: -10} + m_SizeDelta: {x: 160, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1802984890 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1802984888} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1802984891} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &1802984891 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1802984888} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1802984892 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1802984888} + m_CullTransparentMesh: 1 +--- !u!114 &1802984893 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1802984888} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e661ec2da35165a4a9d9dd3c43f5799c, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &1817604798 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1817604799} + - component: {fileID: 1817604802} + - component: {fileID: 1817604801} + - component: {fileID: 1817604800} + - component: {fileID: 1817604803} + m_Layer: 5 + m_Name: Rotation Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1817604799 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1817604798} + m_LocalRotation: {x: 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: 992317374} + m_Father: {fileID: 471517545} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 120, y: -10} + m_SizeDelta: {x: 80, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1817604800 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1817604798} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1817604801} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &1817604801 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1817604798} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1817604802 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1817604798} + m_CullTransparentMesh: 1 +--- !u!114 &1817604803 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1817604798} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e661ec2da35165a4a9d9dd3c43f5799c, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &1822789448 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1822789449} + - component: {fileID: 1822789451} + - component: {fileID: 1822789450} + m_Layer: 5 + m_Name: Label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1822789449 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1822789448} + m_LocalRotation: {x: 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: 1969856133} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -7.5, y: -0.5} + m_SizeDelta: {x: -35, y: -13} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1822789450 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1822789448} + 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: Tracker 1 + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 14 + m_fontSizeBase: 14 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + 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 &1822789451 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1822789448} + m_CullTransparentMesh: 0 +--- !u!1 &1847209148 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1847209149} + - component: {fileID: 1847209152} + - component: {fileID: 1847209151} + - component: {fileID: 1847209150} + m_Layer: 5 + m_Name: Scroll View + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1847209149 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1847209148} + m_LocalRotation: {x: 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: 672238546} + - {fileID: 882451434} + - {fileID: 895344791} + m_Father: {fileID: 715919774} + 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: -15} + m_SizeDelta: {x: 250, y: 250} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1847209150 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1847209148} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1aa08ab6e0800fa44ae55d278d1423e3, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Content: {fileID: 478627813} + m_Horizontal: 0 + m_Vertical: 1 + m_MovementType: 1 + m_Elasticity: 0.1 + m_Inertia: 1 + m_DecelerationRate: 0.135 + m_ScrollSensitivity: 1 + m_Viewport: {fileID: 672238546} + m_HorizontalScrollbar: {fileID: 882451435} + m_VerticalScrollbar: {fileID: 895344792} + m_HorizontalScrollbarVisibility: 1 + m_VerticalScrollbarVisibility: 2 + m_HorizontalScrollbarSpacing: -3 + m_VerticalScrollbarSpacing: -3 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &1847209151 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1847209148} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0.392} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1847209152 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1847209148} + m_CullTransparentMesh: 1 +--- !u!1 &1847245775 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1847245776} + m_Layer: 5 + m_Name: Caption Image Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1847245776 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1847245775} + m_LocalRotation: {x: 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: 277250171} + m_Father: {fileID: 277785010} + 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: 10} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1848673645 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1848673646} + - component: {fileID: 1848673648} + - component: {fileID: 1848673647} + m_Layer: 0 + m_Name: Content Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1848673646 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1848673645} + m_LocalRotation: {x: 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: 1800203740} + m_Father: {fileID: 263608692} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: 0, y: 150} + m_SizeDelta: {x: 0, y: 300} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1848673647 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1848673645} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.09803922, g: 0.16470589, b: 0.3372549, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1848673648 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1848673645} + m_CullTransparentMesh: 1 +--- !u!1 &1854418175 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1854418176} + - component: {fileID: 1854418178} + - component: {fileID: 1854418177} + 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 &1854418176 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1854418175} + m_LocalRotation: {x: 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: 854501466} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1854418177 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1854418175} + 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: HMD + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 12 + m_fontSizeBase: 12 + 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 &1854418178 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1854418175} + m_CullTransparentMesh: 1 +--- !u!1 &1858884751 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1858884752} + - component: {fileID: 1858884753} + - component: {fileID: 1858884754} + m_Layer: 5 + m_Name: Affect Y Axis Toggle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1858884752 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1858884751} + m_LocalRotation: {x: 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: 601793255} + - {fileID: 446586718} + m_Father: {fileID: 478627813} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 116.5, y: -146.66666} + m_SizeDelta: {x: 180, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1858884753 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1858884751} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9085046f02f69544eb97fd06b6048fe2, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 601793256} + toggleTransition: 1 + graphic: {fileID: 1458309050} + m_Group: {fileID: 0} + onValueChanged: + m_PersistentCalls: + m_Calls: [] + m_IsOn: 1 +--- !u!114 &1858884754 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1858884751} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e661ec2da35165a4a9d9dd3c43f5799c, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &1867808083 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1867808084} + - component: {fileID: 1867808085} + - component: {fileID: 1867808086} + m_Layer: 5 + m_Name: Movement Speed Slider + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1867808084 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1867808083} + m_LocalRotation: {x: 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: 560765093} + - {fileID: 1781049003} + - {fileID: 159969246} + m_Father: {fileID: 1609717184} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 90, y: -40} + m_SizeDelta: {x: 160, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1867808085 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1867808083} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 67db9e8f0e2ae9c40bc1e2b64352a6b4, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 195560697} + m_FillRect: {fileID: 664212378} + m_HandleRect: {fileID: 195560696} + m_Direction: 0 + m_MinValue: 0 + m_MaxValue: 1 + m_WholeNumbers: 0 + m_Value: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &1867808086 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1867808083} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e661ec2da35165a4a9d9dd3c43f5799c, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1001 &1875936583 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1180245860} + m_Modifications: + - target: {fileID: 568889819745993646, guid: 0ada4cea3fe9ca044946db2c867682eb, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 568889819745993646, guid: 0ada4cea3fe9ca044946db2c867682eb, type: 3} + propertyPath: m_LocalPosition.y + value: 0.0241 + objectReference: {fileID: 0} + - target: {fileID: 568889819745993646, guid: 0ada4cea3fe9ca044946db2c867682eb, type: 3} + propertyPath: m_LocalPosition.z + value: 0.0487 + objectReference: {fileID: 0} + - target: {fileID: 568889819745993646, guid: 0ada4cea3fe9ca044946db2c867682eb, type: 3} + propertyPath: m_LocalRotation.w + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 568889819745993646, guid: 0ada4cea3fe9ca044946db2c867682eb, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 568889819745993646, guid: 0ada4cea3fe9ca044946db2c867682eb, type: 3} + propertyPath: m_LocalRotation.y + value: 0.9659259 + objectReference: {fileID: 0} + - target: {fileID: 568889819745993646, guid: 0ada4cea3fe9ca044946db2c867682eb, type: 3} + propertyPath: m_LocalRotation.z + value: 0.258819 + objectReference: {fileID: 0} + - target: {fileID: 568889819745993646, guid: 0ada4cea3fe9ca044946db2c867682eb, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: -30 + objectReference: {fileID: 0} + - target: {fileID: 568889819745993646, guid: 0ada4cea3fe9ca044946db2c867682eb, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 180 + objectReference: {fileID: 0} + - target: {fileID: 568889819745993646, guid: 0ada4cea3fe9ca044946db2c867682eb, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 913890882870810900, guid: 0ada4cea3fe9ca044946db2c867682eb, type: 3} + propertyPath: m_Name + value: Focus3_Right + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 0ada4cea3fe9ca044946db2c867682eb, type: 3} +--- !u!4 &1875936584 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 568889819745993646, guid: 0ada4cea3fe9ca044946db2c867682eb, type: 3} + m_PrefabInstance: {fileID: 1875936583} + m_PrefabAsset: {fileID: 0} +--- !u!1 &1891672315 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1891672316} + - component: {fileID: 1891672317} + - component: {fileID: 1891672318} + 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 &1891672316 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1891672315} + m_LocalRotation: {x: 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: 1609717184} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 90, y: -10} + m_SizeDelta: {x: 160, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1891672317 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1891672315} + m_CullTransparentMesh: 1 +--- !u!114 &1891672318 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1891672315} + 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: 'Movement Speed: 0.7' + 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: 12 + m_fontSizeBase: 12 + 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!1 &1905627276 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1905627277} + m_Layer: 5 + m_Name: Item Image Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1905627277 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1905627276} + m_LocalRotation: {x: 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: 575163582} + m_Father: {fileID: 891740296} + 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: 10} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1930077881 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1930077882} + - component: {fileID: 1930077884} + - component: {fileID: 1930077883} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1930077882 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1930077881} + m_LocalRotation: {x: 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: 386520513} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0.2} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1930077883 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1930077881} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1930077884 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1930077881} + m_CullTransparentMesh: 0 +--- !u!1 &1931023770 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1931023771} + - component: {fileID: 1931023774} + - component: {fileID: 1931023773} + - component: {fileID: 1931023772} + - component: {fileID: 1931023775} + m_Layer: 5 + m_Name: Spectator Camera Preview + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1931023771 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1931023770} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 2.33, y: 2.17, z: 4.21} + m_LocalScale: {x: 3, y: 3, z: 3} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 310183085} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!64 &1931023772 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1931023770} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 5 + m_Convex: 0 + m_CookingOptions: 30 + m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &1931023773 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1931023770} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1931023774 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1931023770} + m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} +--- !u!114 &1931023775 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1931023770} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 69583d931f8502647afcc5c3266f4d2c, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &1954028364 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1954028365} + m_Layer: 5 + m_Name: Sliding Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1954028365 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1954028364} + m_LocalRotation: {x: -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: 2142715738} + m_Father: {fileID: 882451434} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 116.5, y: 0} + m_SizeDelta: {x: -20, y: -20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1955424685 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1955424686} + - component: {fileID: 1955424687} + - component: {fileID: 1955424688} + m_Layer: 5 + m_Name: Rotation Speed Slider + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1955424686 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1955424685} + m_LocalRotation: {x: 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: 199750331} + - {fileID: 1076905440} + - {fileID: 2108279667} + m_Father: {fileID: 164953331} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 90, y: -40} + m_SizeDelta: {x: 160, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1955424687 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1955424685} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 67db9e8f0e2ae9c40bc1e2b64352a6b4, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 714283128} + m_FillRect: {fileID: 9664470} + m_HandleRect: {fileID: 714283127} + m_Direction: 0 + m_MinValue: 0 + m_MaxValue: 1 + m_WholeNumbers: 0 + m_Value: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &1955424688 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1955424685} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e661ec2da35165a4a9d9dd3c43f5799c, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &1957414953 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1957414954} + - component: {fileID: 1957414956} + - component: {fileID: 1957414955} + m_Layer: 5 + m_Name: Description Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1957414954 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1957414953} + m_LocalRotation: {x: -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: 2047610199} + 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: 200} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1957414955 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1957414953} + 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: 'Show the description here when user hover the ray on UI element. + + + TODO: + Add the corrsponding description.' + 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: 12 + m_fontSizeBase: 12 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 4096 + 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 &1957414956 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1957414953} + m_CullTransparentMesh: 1 +--- !u!1 &1969856132 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1969856133} + - component: {fileID: 1969856136} + - component: {fileID: 1969856135} + - component: {fileID: 1969856134} + m_Layer: 5 + m_Name: Tracker Dropdown + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1969856133 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1969856132} + m_LocalRotation: {x: 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: 1822789449} + - {fileID: 316802989} + - {fileID: 168481258} + m_Father: {fileID: 1635249162} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 80, y: -15} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1969856134 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1969856132} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7b743370ac3e4ec2a1668f5455a8ef8a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1969856135} + m_Template: {fileID: 168481258} + m_CaptionText: {fileID: 1822789450} + m_CaptionImage: {fileID: 0} + m_Placeholder: {fileID: 0} + m_ItemText: {fileID: 1032253018} + m_ItemImage: {fileID: 0} + m_Value: 0 + m_Options: + m_Options: + - m_Text: Tracker 1 + m_Image: {fileID: 0} + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_AlphaFadeSpeed: 0.15 +--- !u!114 &1969856135 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1969856132} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1969856136 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1969856132} + m_CullTransparentMesh: 0 +--- !u!1 &2027252410 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2027252411} + - component: {fileID: 2027252412} + m_Layer: 5 + m_Name: Root + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2027252411 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2027252410} + m_LocalRotation: {x: 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: 1328502175} + - {fileID: 671539073} + m_Father: {fileID: 1773907186} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2027252412 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2027252410} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!1 &2037342436 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2037342437} + - component: {fileID: 2037342439} + - component: {fileID: 2037342438} + m_Layer: 5 + m_Name: Title + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2037342437 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2037342436} + m_LocalRotation: {x: -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: 1470721043} + 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: -22.5} + m_SizeDelta: {x: 0, y: 45} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2037342438 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2037342436} + 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: License + 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: 18 + m_fontSizeBase: 18 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 17 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 1024 + m_textAlignment: 65535 + m_characterSpacing: 25 + 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 &2037342439 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2037342436} + m_CullTransparentMesh: 1 +--- !u!1 &2047610198 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2047610199} + - component: {fileID: 2047610201} + - component: {fileID: 2047610200} + m_Layer: 5 + m_Name: Right Part + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2047610199 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2047610198} + m_LocalRotation: {x: 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: 2052395722} + - {fileID: 1957414954} + m_Father: {fileID: 1208039967} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 464, y: -180} + m_SizeDelta: {x: 352, y: 360} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2047610200 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2047610198} + m_Enabled: 0 + 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.14068666, b: 0, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &2047610201 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2047610198} + m_CullTransparentMesh: 1 +--- !u!1 &2052395721 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2052395722} + - component: {fileID: 2052395724} + - component: {fileID: 2052395723} + m_Layer: 5 + m_Name: Title + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2052395722 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2052395721} + m_LocalRotation: {x: -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: 2047610199} + 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: -22.5} + m_SizeDelta: {x: 0, y: 45} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2052395723 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2052395721} + 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: Interaction Setting + 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: 18 + m_fontSizeBase: 18 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 17 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 1024 + m_textAlignment: 65535 + m_characterSpacing: 25 + 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 &2052395724 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2052395721} + m_CullTransparentMesh: 1 +--- !u!1 &2065367839 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2065367840} + - component: {fileID: 2065367842} + - component: {fileID: 2065367841} + m_Layer: 5 + m_Name: Item Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2065367840 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2065367839} + m_LocalRotation: {x: 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: 719348728} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2065367841 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2065367839} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &2065367842 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2065367839} + m_CullTransparentMesh: 0 +--- !u!1 &2108279666 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2108279667} + m_Layer: 5 + m_Name: Handle Slide Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2108279667 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2108279666} + m_LocalRotation: {x: -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: 714283127} + m_Father: {fileID: 1955424686} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &2138647163 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2138647164} + - component: {fileID: 2138647166} + - component: {fileID: 2138647165} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2138647164 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2138647163} + m_LocalRotation: {x: -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: 1438360276} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.00000011920929, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2138647165 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2138647163} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &2138647166 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2138647163} + m_CullTransparentMesh: 1 +--- !u!1 &2140472873 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2140472874} + - component: {fileID: 2140472876} + - component: {fileID: 2140472875} + 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 &2140472874 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2140472873} + m_LocalRotation: {x: 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: 129716670} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2140472875 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2140472873} + 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: FOV + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 12 + m_fontSizeBase: 12 + 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 &2140472876 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2140472873} + m_CullTransparentMesh: 1 +--- !u!1 &2142715737 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2142715738} + - component: {fileID: 2142715740} + - component: {fileID: 2142715739} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2142715738 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2142715737} + m_LocalRotation: {x: -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: 1954028365} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.00000011920929, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2142715739 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2142715737} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &2142715740 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2142715737} + m_CullTransparentMesh: 1 +--- !u!222 &998958302268435249 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5440328098664233006} + m_CullTransparentMesh: 1 +--- !u!222 &998958302549905994 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5440328098937307477} + m_CullTransparentMesh: 1 +--- !u!222 &998958302870305362 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5440328098058135885} + m_CullTransparentMesh: 1 +--- !u!222 &998958303120582646 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5440328098366878953} + m_CullTransparentMesh: 1 +--- !u!1 &1339944523073611973 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2909584161536744598} + - component: {fileID: 6470685738670407305} + - component: {fileID: 6174691507160444649} + - component: {fileID: 6046252430543709663} + - component: {fileID: 6542424991379666972} + m_Layer: 5 + m_Name: Exit Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1339944523306333537 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2909584161367851314} + - component: {fileID: 6470685738966819629} + - component: {fileID: 6174691506977534797} + - component: {fileID: 6046252430361458811} + - component: {fileID: 6542424991604778432} + m_Layer: 5 + m_Name: Interaction Setting Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1339944523644509561 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2909584162107681066} + - component: {fileID: 6470685738100149045} + - component: {fileID: 6174691506657205077} + - component: {fileID: 6046252431113818211} + - component: {fileID: 6542424991950261672} + m_Layer: 5 + m_Name: Spectator Camera Setting Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1339944523908162562 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2909584161835503697} + - component: {fileID: 6470685738364858958} + - component: {fileID: 6174691506375729710} + - component: {fileID: 6046252430833264920} + - component: {fileID: 6542424992206583005} + m_Layer: 5 + m_Name: License Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2909584161367851314 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1339944523306333537} + m_LocalRotation: {x: 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: 4904689914640324464} + m_Father: {fileID: 378809147} + 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: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &2909584161536744598 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1339944523073611973} + m_LocalRotation: {x: 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: 4904689914269715156} + m_Father: {fileID: 378809147} + 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: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &2909584161835503697 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1339944523908162562} + m_LocalRotation: {x: 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: 4904689914038322707} + m_Father: {fileID: 378809147} + 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: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &2909584162107681066 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1339944523644509561} + m_LocalRotation: {x: 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: 4904689913766297448} + m_Father: {fileID: 378809147} + 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: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &4904689913766297448 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5440328098937307477} + m_LocalRotation: {x: 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: 2909584162107681066} + 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!224 &4904689914038322707 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5440328098664233006} + m_LocalRotation: {x: 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: 2909584161835503697} + 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!224 &4904689914269715156 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5440328098366878953} + m_LocalRotation: {x: 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: 2909584161536744598} + 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!224 &4904689914640324464 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5440328098058135885} + m_LocalRotation: {x: 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: 2909584161367851314} + 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!1 &5440328098058135885 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4904689914640324464} + - component: {fileID: 998958302870305362} + - component: {fileID: 7031198333074850265} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &5440328098366878953 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4904689914269715156} + - component: {fileID: 998958303120582646} + - component: {fileID: 7031198333319371901} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &5440328098664233006 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4904689914038322707} + - component: {fileID: 998958302268435249} + - component: {fileID: 7031198333542535354} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &5440328098937307477 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4904689913766297448} + - component: {fileID: 998958302549905994} + - component: {fileID: 7031198333822970305} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &6046252430361458811 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1339944523306333537} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 6174691506977534797} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &6046252430543709663 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1339944523073611973} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 6174691507160444649} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &6046252430833264920 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1339944523908162562} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 6174691506375729710} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &6046252431113818211 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1339944523644509561} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 6174691506657205077} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &6174691506375729710 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1339944523908162562} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &6174691506657205077 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1339944523644509561} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &6174691506977534797 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1339944523306333537} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &6174691507160444649 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1339944523073611973} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &6470685738100149045 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1339944523644509561} + m_CullTransparentMesh: 1 +--- !u!222 &6470685738364858958 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1339944523908162562} + m_CullTransparentMesh: 1 +--- !u!222 &6470685738670407305 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1339944523073611973} + m_CullTransparentMesh: 1 +--- !u!222 &6470685738966819629 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1339944523306333537} + m_CullTransparentMesh: 1 +--- !u!114 &6542424991379666972 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1339944523073611973} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e661ec2da35165a4a9d9dd3c43f5799c, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &6542424991604778432 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1339944523306333537} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e661ec2da35165a4a9d9dd3c43f5799c, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &6542424991950261672 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1339944523644509561} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e661ec2da35165a4a9d9dd3c43f5799c, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &6542424992206583005 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1339944523908162562} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e661ec2da35165a4a9d9dd3c43f5799c, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &7031198333074850265 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5440328098058135885} + 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: Interaction Setting + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 12 + m_fontSizeBase: 12 + 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!114 &7031198333319371901 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5440328098366878953} + 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: Exit + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 12 + m_fontSizeBase: 12 + 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!114 &7031198333542535354 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5440328098664233006} + 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: License + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 12 + m_fontSizeBase: 12 + 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!114 &7031198333822970305 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5440328098937307477} + 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: Spectator Camera Setting + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 12 + m_fontSizeBase: 12 + 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!1660057539 &9223372036854775807 +SceneRoots: + m_ObjectHideFlags: 0 + m_Roots: + - {fileID: 1277848185} + - {fileID: 310183085} + - {fileID: 1716681476} + - {fileID: 1493660551} diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scenes/Adv_Demo_1.unity.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scenes/Adv_Demo_1.unity.meta new file mode 100644 index 0000000..0137413 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scenes/Adv_Demo_1.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c523a4d7049b0444c927d2ffc12f4f12 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scenes/Adv_Demo_2.unity b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scenes/Adv_Demo_2.unity new file mode 100644 index 0000000..55fb933 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scenes/Adv_Demo_2.unity @@ -0,0 +1,2481 @@ +%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.18028378, g: 0.22571412, b: 0.30692285, 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 &32859741 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 32859742} + - component: {fileID: 32859746} + - component: {fileID: 32859745} + - component: {fileID: 32859744} + - component: {fileID: 32859743} + m_Layer: 0 + m_Name: LeftHand Controller + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &32859742 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 32859741} + 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: 667859009} + m_Father: {fileID: 1623268845} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &32859743 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 32859741} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e988983f96fe1dd48800bcdfc82f23e9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_LineWidth: 0.02 + m_OverrideInteractorLineLength: 1 + m_LineLength: 10 + m_WidthCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_ValidColorGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_ColorSpace: -1 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + m_InvalidColorGradient: + serializedVersion: 2 + key0: {r: 1, g: 0, b: 0, a: 1} + key1: {r: 1, g: 0, b: 0, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_ColorSpace: -1 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + m_SmoothMovement: 0 + m_FollowTightness: 10 + m_SnapThresholdDistance: 10 + m_Reticle: {fileID: 0} + m_StopLineAtFirstRaycastHit: 1 +--- !u!120 &32859744 +LineRenderer: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 32859741} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 0 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10306, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 5 + m_Positions: [] + m_Parameters: + serializedVersion: 3 + widthMultiplier: 0.02 + widthCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorGradient: + serializedVersion: 2 + key0: {r: 0, g: 0, b: 1, a: 1} + key1: {r: 0, g: 0, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_ColorSpace: -1 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + numCornerVertices: 4 + numCapVertices: 4 + alignment: 0 + textureMode: 0 + textureScale: {x: 1, y: 1} + shadowBias: 0.5 + generateLightingData: 0 + m_MaskInteraction: 0 + m_UseWorldSpace: 1 + m_Loop: 0 + m_ApplyActiveColorSpace: 0 +--- !u!114 &32859745 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 32859741} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6803edce0201f574f923fd9d10e5b30a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_InteractionManager: {fileID: 985459227} + m_InteractionLayerMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_AttachTransform: {fileID: 0} + m_StartingSelectedInteractable: {fileID: 0} + m_OnHoverEnter: + m_PersistentCalls: + m_Calls: [] + m_OnHoverExit: + m_PersistentCalls: + m_Calls: [] + m_OnSelectEnter: + m_PersistentCalls: + m_Calls: [] + m_OnSelectExit: + m_PersistentCalls: + m_Calls: [] + m_SelectActionTrigger: 1 + m_HideControllerOnSelect: 0 + m_PlayAudioClipOnSelectEnter: 0 + m_AudioClipForOnSelectEnter: {fileID: 0} + m_PlayAudioClipOnSelectExit: 0 + m_AudioClipForOnSelectExit: {fileID: 0} + m_PlayAudioClipOnHoverEnter: 0 + m_AudioClipForOnHoverEnter: {fileID: 0} + m_PlayAudioClipOnHoverExit: 0 + m_AudioClipForOnHoverExit: {fileID: 0} + m_PlayHapticsOnSelectEnter: 0 + m_HapticSelectEnterIntensity: 0 + m_HapticSelectEnterDuration: 0 + m_PlayHapticsOnSelectExit: 0 + m_HapticSelectExitIntensity: 0 + m_HapticSelectExitDuration: 0 + m_PlayHapticsOnHoverEnter: 0 + m_HapticHoverEnterIntensity: 0 + m_HapticHoverEnterDuration: 0 + m_PlayHapticsOnHoverExit: 0 + m_HapticHoverExitIntensity: 0 + m_HapticHoverExitDuration: 0 + m_LineType: 0 + m_MaxRaycastDistance: 30 + m_ReferenceFrame: {fileID: 0} + m_Velocity: 16 + m_Acceleration: 9.8 + m_AdditionalFlightTime: 0.5 + m_EndPointDistance: 30 + m_EndPointHeight: -10 + m_ControlPointDistance: 10 + m_ControlPointHeight: 5 + m_SampleFrequency: 20 + m_HitDetectionType: 0 + m_SphereCastRadius: 0 + m_RaycastMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RaycastTriggerInteraction: 1 + m_HoverToSelect: 0 + m_HoverTimeToSelect: 0.5 + m_EnableUIInteraction: 1 +--- !u!114 &32859746 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 32859741} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1ae26e19cd956134bbdf3c6f65bf393a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UpdateTrackingType: 0 + m_EnableInputActions: 1 + m_PoseProvider: {fileID: 0} + m_ControllerNode: 4 + m_SelectUsage: 3 + m_ActivateUsage: 2 + m_UIPressUsage: 2 + m_AxisToPressThreshold: 0.1 + m_ModelPrefab: {fileID: 6417132009335300110, guid: e0281111bf248c14e8a92210a42e2a62, type: 3} + m_ModelTransform: {fileID: 0} + m_AnimateModel: 0 + m_ModelSelectTransition: + m_ModelDeSelectTransition: +--- !u!1 &142931986 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 142931989} + - component: {fileID: 142931988} + - component: {fileID: 142931987} + - component: {fileID: 142931990} + 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 &142931987 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 142931986} + m_Enabled: 1 +--- !u!20 &142931988 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 142931986} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_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.1 + 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 &142931989 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 142931986} + 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: 1623268845} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &142931990 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 142931986} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5a2a9c34df4095f47b9ca8f975175f5b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Device: 0 + m_PoseSource: 2 + m_PoseProviderComponent: {fileID: 0} + m_TrackingType: 0 + m_UpdateType: 0 + m_UseRelativeTransform: 0 +--- !u!1 &197754116 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 197754117} + m_Layer: 0 + m_Name: '[ Environment ]' + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &197754117 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 197754116} + 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: 750397879} + - {fileID: 616419925} + - {fileID: 1956969037} + - {fileID: 447347549} + - {fileID: 784634761} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &447347547 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 447347549} + - component: {fileID: 447347548} + 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 &447347548 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 447347547} + 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 &447347549 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 447347547} + 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: 197754117} + m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} +--- !u!1 &490447867 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 490447869} + - component: {fileID: 490447868} + m_Layer: 0 + m_Name: XR Rig + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &490447868 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 490447867} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7448815bd5148434682b3d931066cd10, type: 3} + m_Name: + m_EditorClassIdentifier: + m_RigBaseGameObject: {fileID: 490447867} + m_CameraFloorOffsetObject: {fileID: 1623268844} + m_CameraGameObject: {fileID: 142931986} + m_TrackingOriginMode: 2 + m_TrackingSpace: 3 + m_CameraYOffset: 1.7 +--- !u!4 &490447869 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 490447867} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 1.7, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1623268845} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &616419921 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 616419925} + - component: {fileID: 616419924} + - component: {fileID: 616419923} + - component: {fileID: 616419922} + - component: {fileID: 616419927} + - component: {fileID: 616419926} + m_Layer: 0 + m_Name: Tracker Reference Point + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!65 &616419922 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 616419921} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &616419923 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 616419921} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 054c9f8dbab5635489881b3867319137, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &616419924 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 616419921} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &616419925 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 616419921} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -2.44, y: 0.5, z: 3.37} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 2047389387} + m_Father: {fileID: 197754117} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &616419926 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 616419921} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0ad34abafad169848a38072baa96cdb2, type: 3} + m_Name: + m_EditorClassIdentifier: + m_InteractionManager: {fileID: 985459227} + m_Colliders: + - {fileID: 616419922} + m_InteractionLayerMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_OnFirstHoverEnter: + m_PersistentCalls: + m_Calls: [] + m_OnHoverEnter: + m_PersistentCalls: + m_Calls: [] + m_OnHoverExit: + m_PersistentCalls: + m_Calls: [] + m_OnLastHoverExit: + m_PersistentCalls: + m_Calls: [] + m_OnSelectEnter: + m_PersistentCalls: + m_Calls: [] + m_OnSelectExit: + m_PersistentCalls: + m_Calls: [] + m_OnActivate: + m_PersistentCalls: + m_Calls: [] + m_OnDeactivate: + m_PersistentCalls: + m_Calls: [] + m_CustomReticle: {fileID: 0} + m_AttachTransform: {fileID: 2047389387} + m_AttachEaseInTime: 0.15 + m_MovementType: 1 + m_TrackPosition: 1 + m_SmoothPosition: 0 + m_SmoothPositionAmount: 5 + m_TightenPosition: 0.5 + m_TrackRotation: 1 + m_SmoothRotation: 0 + m_SmoothRotationAmount: 5 + m_TightenRotation: 0.5 + m_ThrowOnDetach: 1 + m_ThrowSmoothingDuration: 0.25 + m_ThrowSmoothingCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_ThrowVelocityScale: 1.5 + m_ThrowAngularVelocityScale: 0.25 + m_GravityOnDetach: 0 + m_RetainTransformParent: 1 +--- !u!54 &616419927 +Rigidbody: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 616419921} + serializedVersion: 4 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_CenterOfMass: {x: 0, y: 0, z: 0} + m_InertiaTensor: {x: 1, y: 1, z: 1} + m_InertiaRotation: {x: 0, y: 0, z: 0, w: 1} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ImplicitCom: 1 + m_ImplicitTensor: 1 + m_UseGravity: 1 + m_IsKinematic: 0 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!1001 &667859008 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 32859742} + m_Modifications: + - target: {fileID: 1170470780012416826, guid: 4db7b3025e9268b4582aa5c77f167c96, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1170470780012416826, guid: 4db7b3025e9268b4582aa5c77f167c96, type: 3} + propertyPath: m_LocalPosition.y + value: 0.0241 + objectReference: {fileID: 0} + - target: {fileID: 1170470780012416826, guid: 4db7b3025e9268b4582aa5c77f167c96, type: 3} + propertyPath: m_LocalPosition.z + value: 0.0487 + objectReference: {fileID: 0} + - target: {fileID: 1170470780012416826, guid: 4db7b3025e9268b4582aa5c77f167c96, type: 3} + propertyPath: m_LocalRotation.w + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1170470780012416826, guid: 4db7b3025e9268b4582aa5c77f167c96, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1170470780012416826, guid: 4db7b3025e9268b4582aa5c77f167c96, type: 3} + propertyPath: m_LocalRotation.y + value: 0.9659259 + objectReference: {fileID: 0} + - target: {fileID: 1170470780012416826, guid: 4db7b3025e9268b4582aa5c77f167c96, type: 3} + propertyPath: m_LocalRotation.z + value: 0.258819 + objectReference: {fileID: 0} + - target: {fileID: 1170470780012416826, guid: 4db7b3025e9268b4582aa5c77f167c96, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: -30 + objectReference: {fileID: 0} + - target: {fileID: 1170470780012416826, guid: 4db7b3025e9268b4582aa5c77f167c96, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 180 + objectReference: {fileID: 0} + - target: {fileID: 1170470780012416826, guid: 4db7b3025e9268b4582aa5c77f167c96, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1978637512304563584, guid: 4db7b3025e9268b4582aa5c77f167c96, type: 3} + propertyPath: m_Name + value: Focus3_Left + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 4db7b3025e9268b4582aa5c77f167c96, type: 3} +--- !u!4 &667859009 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 1170470780012416826, guid: 4db7b3025e9268b4582aa5c77f167c96, type: 3} + m_PrefabInstance: {fileID: 667859008} + m_PrefabAsset: {fileID: 0} +--- !u!1 &750397875 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 750397879} + - component: {fileID: 750397878} + - component: {fileID: 750397877} + - component: {fileID: 750397876} + - component: {fileID: 750397880} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &750397876 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 750397875} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &750397877 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 750397875} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 1 +--- !u!223 &750397878 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 750397875} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 142931988} + 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 &750397879 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 750397875} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 5.17} + m_LocalScale: {x: 0.02, y: 0.02, z: 0.02} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1426487884} + m_Father: {fileID: 197754117} + 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: 1.48} + m_SizeDelta: {x: 250, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &750397880 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 750397875} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7951c64acb0fa62458bf30a60089fe2d, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 0 + m_CheckFor2DOcclusion: 0 + m_CheckFor3DOcclusion: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!1 &784634760 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 784634761} + - component: {fileID: 784634765} + - component: {fileID: 784634764} + - component: {fileID: 784634763} + - component: {fileID: 784634762} + m_Layer: 0 + m_Name: Debug Cube + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &784634761 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 784634760} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0.6, z: 4} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 197754117} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &784634762 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 784634760} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 69583d931f8502647afcc5c3266f4d2c, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!65 &784634763 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 784634760} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &784634764 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 784634760} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &784634765 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 784634760} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &985459226 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 985459228} + - component: {fileID: 985459227} + m_Layer: 0 + m_Name: XR Interaction Manager + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &985459227 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 985459226} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 83e4e6cca11330d4088d729ab4fc9d9f, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!4 &985459228 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 985459226} + 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: 1737368838} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &1346495357 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1382445653} + m_Modifications: + - target: {fileID: 568889819745993646, guid: 0ada4cea3fe9ca044946db2c867682eb, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 568889819745993646, guid: 0ada4cea3fe9ca044946db2c867682eb, type: 3} + propertyPath: m_LocalPosition.y + value: 0.0241 + objectReference: {fileID: 0} + - target: {fileID: 568889819745993646, guid: 0ada4cea3fe9ca044946db2c867682eb, type: 3} + propertyPath: m_LocalPosition.z + value: 0.0487 + objectReference: {fileID: 0} + - target: {fileID: 568889819745993646, guid: 0ada4cea3fe9ca044946db2c867682eb, type: 3} + propertyPath: m_LocalRotation.w + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 568889819745993646, guid: 0ada4cea3fe9ca044946db2c867682eb, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 568889819745993646, guid: 0ada4cea3fe9ca044946db2c867682eb, type: 3} + propertyPath: m_LocalRotation.y + value: 0.9659259 + objectReference: {fileID: 0} + - target: {fileID: 568889819745993646, guid: 0ada4cea3fe9ca044946db2c867682eb, type: 3} + propertyPath: m_LocalRotation.z + value: 0.258819 + objectReference: {fileID: 0} + - target: {fileID: 568889819745993646, guid: 0ada4cea3fe9ca044946db2c867682eb, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: -30 + objectReference: {fileID: 0} + - target: {fileID: 568889819745993646, guid: 0ada4cea3fe9ca044946db2c867682eb, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 180 + objectReference: {fileID: 0} + - target: {fileID: 568889819745993646, guid: 0ada4cea3fe9ca044946db2c867682eb, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 913890882870810900, guid: 0ada4cea3fe9ca044946db2c867682eb, type: 3} + propertyPath: m_Name + value: Focus3_Right + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 0ada4cea3fe9ca044946db2c867682eb, type: 3} +--- !u!4 &1346495358 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 568889819745993646, guid: 0ada4cea3fe9ca044946db2c867682eb, type: 3} + m_PrefabInstance: {fileID: 1346495357} + m_PrefabAsset: {fileID: 0} +--- !u!1 &1382445652 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1382445653} + - component: {fileID: 1382445657} + - component: {fileID: 1382445656} + - component: {fileID: 1382445655} + - component: {fileID: 1382445654} + m_Layer: 0 + m_Name: RightHand Controller + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1382445653 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1382445652} + 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: 1346495358} + m_Father: {fileID: 1623268845} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1382445654 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1382445652} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e988983f96fe1dd48800bcdfc82f23e9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_LineWidth: 0.02 + m_OverrideInteractorLineLength: 1 + m_LineLength: 10 + m_WidthCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_ValidColorGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_ColorSpace: -1 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + m_InvalidColorGradient: + serializedVersion: 2 + key0: {r: 1, g: 0, b: 0, a: 1} + key1: {r: 1, g: 0, b: 0, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_ColorSpace: -1 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + m_SmoothMovement: 0 + m_FollowTightness: 10 + m_SnapThresholdDistance: 10 + m_Reticle: {fileID: 0} + m_StopLineAtFirstRaycastHit: 1 +--- !u!120 &1382445655 +LineRenderer: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1382445652} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 0 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10306, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 5 + m_Positions: [] + m_Parameters: + serializedVersion: 3 + widthMultiplier: 0.02 + widthCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorGradient: + serializedVersion: 2 + key0: {r: 0, g: 0, b: 1, a: 1} + key1: {r: 0, g: 0, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_ColorSpace: -1 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + numCornerVertices: 4 + numCapVertices: 4 + alignment: 0 + textureMode: 0 + textureScale: {x: 1, y: 1} + shadowBias: 0.5 + generateLightingData: 0 + m_MaskInteraction: 0 + m_UseWorldSpace: 1 + m_Loop: 0 + m_ApplyActiveColorSpace: 0 +--- !u!114 &1382445656 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1382445652} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6803edce0201f574f923fd9d10e5b30a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_InteractionManager: {fileID: 985459227} + m_InteractionLayerMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_AttachTransform: {fileID: 0} + m_StartingSelectedInteractable: {fileID: 0} + m_OnHoverEnter: + m_PersistentCalls: + m_Calls: [] + m_OnHoverExit: + m_PersistentCalls: + m_Calls: [] + m_OnSelectEnter: + m_PersistentCalls: + m_Calls: [] + m_OnSelectExit: + m_PersistentCalls: + m_Calls: [] + m_SelectActionTrigger: 1 + m_HideControllerOnSelect: 0 + m_PlayAudioClipOnSelectEnter: 0 + m_AudioClipForOnSelectEnter: {fileID: 0} + m_PlayAudioClipOnSelectExit: 0 + m_AudioClipForOnSelectExit: {fileID: 0} + m_PlayAudioClipOnHoverEnter: 0 + m_AudioClipForOnHoverEnter: {fileID: 0} + m_PlayAudioClipOnHoverExit: 0 + m_AudioClipForOnHoverExit: {fileID: 0} + m_PlayHapticsOnSelectEnter: 0 + m_HapticSelectEnterIntensity: 0 + m_HapticSelectEnterDuration: 0 + m_PlayHapticsOnSelectExit: 0 + m_HapticSelectExitIntensity: 0 + m_HapticSelectExitDuration: 0 + m_PlayHapticsOnHoverEnter: 0 + m_HapticHoverEnterIntensity: 0 + m_HapticHoverEnterDuration: 0 + m_PlayHapticsOnHoverExit: 0 + m_HapticHoverExitIntensity: 0 + m_HapticHoverExitDuration: 0 + m_LineType: 0 + m_MaxRaycastDistance: 30 + m_ReferenceFrame: {fileID: 0} + m_Velocity: 16 + m_Acceleration: 9.8 + m_AdditionalFlightTime: 0.5 + m_EndPointDistance: 30 + m_EndPointHeight: -10 + m_ControlPointDistance: 10 + m_ControlPointHeight: 5 + m_SampleFrequency: 20 + m_HitDetectionType: 0 + m_SphereCastRadius: 0 + m_RaycastMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RaycastTriggerInteraction: 1 + m_HoverToSelect: 0 + m_HoverTimeToSelect: 0.5 + m_EnableUIInteraction: 1 +--- !u!114 &1382445657 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1382445652} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1ae26e19cd956134bbdf3c6f65bf393a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UpdateTrackingType: 0 + m_EnableInputActions: 1 + m_PoseProvider: {fileID: 0} + m_ControllerNode: 5 + m_SelectUsage: 3 + m_ActivateUsage: 2 + m_UIPressUsage: 2 + m_AxisToPressThreshold: 0.1 + m_ModelPrefab: {fileID: 8865656852302993936, guid: ee8fe6f70ce3e3d46aa19d16021b99b4, type: 3} + m_ModelTransform: {fileID: 0} + m_AnimateModel: 0 + m_ModelSelectTransition: + m_ModelDeSelectTransition: +--- !u!1 &1426487883 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1426487884} + m_Layer: 5 + m_Name: Panel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1426487884 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1426487883} + m_LocalRotation: {x: 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: 1715053330} + m_Father: {fileID: 750397879} + 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!1 &1623268844 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1623268845} + m_Layer: 0 + m_Name: Camera Offset + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1623268845 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1623268844} + 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: 142931989} + - {fileID: 32859742} + - {fileID: 1382445653} + m_Father: {fileID: 490447869} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1704684676 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1704684679} + - component: {fileID: 1704684678} + - component: {fileID: 1704684677} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1704684677 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1704684676} + 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 &1704684678 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1704684676} + 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 &1704684679 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1704684676} + 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 &1715053329 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1715053330} + - component: {fileID: 1715053333} + - component: {fileID: 1715053332} + - component: {fileID: 1715053331} + - component: {fileID: 1715053334} + m_Layer: 5 + m_Name: Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1715053330 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1715053329} + m_LocalRotation: {x: 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: 1843887765} + m_Father: {fileID: 1426487884} + 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: 110, y: 35} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1715053331 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1715053329} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1715053332} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1715053334} + m_TargetAssemblyTypeName: + m_MethodName: OnClickChangeCameraSourceButton + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!114 &1715053332 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1715053329} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.11564124, g: 1, 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: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1715053333 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1715053329} + m_CullTransparentMesh: 0 +--- !u!114 &1715053334 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1715053329} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7d9bec99d81ff284a96191954f27a29d, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &1737368837 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1737368838} + m_Layer: 0 + m_Name: '[ Manager ]' + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1737368838 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1737368837} + 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: 985459228} + - {fileID: 5848058049580594962} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1843887764 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1843887765} + - component: {fileID: 1843887767} + - component: {fileID: 1843887766} + m_Layer: 5 + m_Name: Change Camera Source Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1843887765 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1843887764} + m_LocalRotation: {x: 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: 1715053330} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1843887766 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1843887764} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Change Camera Source + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 10 + m_fontSizeBase: 10 + 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 &1843887767 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1843887764} + m_CullTransparentMesh: 0 +--- !u!1 &1956969033 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1956969037} + - component: {fileID: 1956969036} + - component: {fileID: 1956969035} + - component: {fileID: 1956969034} + m_Layer: 0 + m_Name: Plane + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!64 &1956969034 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1956969033} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 5 + m_Convex: 0 + m_CookingOptions: 30 + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &1956969035 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1956969033} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1956969036 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1956969033} + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &1956969037 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1956969033} + 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: 197754117} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &2047389386 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2047389387} + - component: {fileID: 2047389388} + m_Layer: 0 + m_Name: Tracker 1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2047389387 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2047389386} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0.7, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 616419925} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &2047389388 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2047389386} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f0b61457a6a405c49b000f7a3ed895bf, type: 3} + m_Name: + m_EditorClassIdentifier: + layerMask: + serializedVersion: 2 + m_Bits: 4294967295 + k__BackingField: 1 + k__BackingField: 10 + isFrustumShowed: 1 + verticalFov: 60 + k__BackingField: 2048 + k__BackingField: 0 + k__BackingField: 1 + frustumLineCount: 4 + frustumCenterLineCount: 1 + frustumLineWidth: 0.02 + frustumCenterLineWidth: 0.01 + frustumLineColor: {r: 0, g: 0.21708441, b: 1, a: 1} + frustumCenterLineColor: {r: 0, g: 1, b: 0.7412648, a: 1} + k__BackingField: 0 +--- !u!114 &5848058049580594960 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5848058049580594974} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 01f69dc1cb084aa42b2f2f8cd87bc770, type: 3} + m_Name: + m_EditorClassIdentifier: + m_System: {fileID: 5848058049580594963} +--- !u!114 &5848058049580594961 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5848058049580594974} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc4f2c0214c9b494fa7eb5b8b2c02885, type: 3} + m_Name: + m_EditorClassIdentifier: + m_System: {fileID: 5848058049580594963} + m_TurnUsage: 0 + m_Controllers: + - {fileID: 32859746} + m_TurnAmount: 45 + m_DebounceTime: 0.5 + m_DeadZone: 0.75 +--- !u!4 &5848058049580594962 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5848058049580594974} + 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: 1737368838} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &5848058049580594963 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5848058049580594974} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 03a5df2202a8b96488c744be3bd0c33e, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Timeout: 10 + m_XRRig: {fileID: 490447868} +--- !u!114 &5848058049580594964 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5848058049580594974} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4115ea44b4ffa394997f43a74b83ccc9, type: 3} + m_Name: + m_EditorClassIdentifier: + k__BackingField: 0.03 + k__BackingField: {fileID: 490447867} +--- !u!114 &5848058049580594965 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5848058049580594974} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 713b2b0257249694ca75424a395a0bab, type: 3} + m_Name: + m_EditorClassIdentifier: + k__BackingField: {fileID: 5848058049580594960} + k__BackingField: {fileID: 32859745} + k__BackingField: {fileID: 3819676577015031517, guid: f9125b7fe4c93714c83c93b37bc96595, type: 3} + k__BackingField: {fileID: 0} +--- !u!114 &5848058049580594967 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5848058049580594974} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 791d8a548cffbc74c8c5b0ac5027b30f, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &5848058049580594974 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5848058049580594962} + - component: {fileID: 5848058049580594963} + - component: {fileID: 5848058049580594964} + - component: {fileID: 5848058049580594961} + - component: {fileID: 5848058049580594965} + - component: {fileID: 5848058049580594960} + - component: {fileID: 5848058049580594967} + m_Layer: 0 + m_Name: Locomotion Manager + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1660057539 &9223372036854775807 +SceneRoots: + m_ObjectHideFlags: 0 + m_Roots: + - {fileID: 490447869} + - {fileID: 197754117} + - {fileID: 1737368838} + - {fileID: 1704684679} diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scenes/Adv_Demo_2.unity.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scenes/Adv_Demo_2.unity.meta new file mode 100644 index 0000000..36cc262 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scenes/Adv_Demo_2.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d4d767932eb51454a99281e0ba3319c0 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts.meta new file mode 100644 index 0000000..62f95e1 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: fb700925ea4d02f4195482c6f56b7699 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/CharacterMovementManager.Editor.cs b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/CharacterMovementManager.Editor.cs new file mode 100644 index 0000000..1824716 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/CharacterMovementManager.Editor.cs @@ -0,0 +1,32 @@ +// Copyright HTC Corporation All Rights Reserved. + +#if UNITY_EDITOR +using UnityEditor; +using VIVE.OpenXR.Toolkits.Spectator.Helper; + +namespace VIVE.OpenXR.Samples.Spectator.AdvDemo +{ + /// + /// Name: CharacterMovementManager.Editor.cs + /// Role: General script only use in Unity Editor + /// Responsibility: Display the CharacterMovementManager.cs in Unity Inspector + /// + public partial class CharacterMovementManager + { + [CustomEditor(typeof(CharacterMovementManager))] + public class CharacterMovementManagerEditor : UnityEditor.Editor + { + public override void OnInspectorGUI() + { + if (!(target is CharacterMovementManager)) + { + // Just return if not "CharacterMovementManager" class + return; + } + + EditorHelper.ShowDefaultInspector(serializedObject); + } + } + } +} +#endif \ No newline at end of file diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/CharacterMovementManager.Editor.cs.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/CharacterMovementManager.Editor.cs.meta new file mode 100644 index 0000000..e71e6ee --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/CharacterMovementManager.Editor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5c5a499e657b0f84dbede0f25c3371a8 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/CharacterMovementManager.cs b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/CharacterMovementManager.cs new file mode 100644 index 0000000..5006b15 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/CharacterMovementManager.cs @@ -0,0 +1,87 @@ +// Copyright HTC Corporation All Rights Reserved. + +using UnityEngine; +using UnityEngine.XR; + +namespace VIVE.OpenXR.Samples.Spectator.AdvDemo +{ + /// + /// Name: CharacterMovementManager.cs + /// Role: Manager (Singleton) + /// Responsibility: Manage the character movement + /// + public partial class CharacterMovementManager : MonoBehaviour + { + // Singleton + private static CharacterMovementManager _instance; + private ObjectInteractionManager ObjectInteractionManager => ObjectInteractionManager.Instance; + private ControllerInputManager ControllerInputManager => ControllerInputManager.Instance; + + #region Private const movement setting + + private const float MoveSpeedMin = .01f; + private const float MoveSpeedMax = .1f; + private const float MoveSpeedDefault = .03f; + private const float MoveThreshold = .01f; + + #endregion + + [field: SerializeField, Range(MoveSpeedMin, MoveSpeedMax)] + private float MoveSpeed { get; set; } = MoveSpeedDefault; + + [field: SerializeField] private GameObject XRRig { get; set; } + + #region Unity Lifecycle functions + + private void Awake() + { + if (_instance != null && _instance != this) + { + Destroy(this.gameObject); + } + else + { + _instance = this; + } + } + + private void Update() + { + if (ObjectInteractionManager != null) + { + // Since we determine whether the user wants to interact with the object by the trigger button, + // we check whether the trigger button is pressed or not. If pressed, we will ignore the character + // movement logic and prepare to interact with the object if the user has any action until the + // trigger button is released. + if (ObjectInteractionManager.isInteractingObject) + { + return; + } + } + + if (ControllerInputManager is null || + ControllerInputManager.IsRightControllerConnected() is false) + { + return; + } + + // Get the thumbstick value of the right controller + ControllerInputManager.RightController.TryGetFeatureValue( + CommonUsages.primary2DAxis, out Vector2 rightControllerThumbstickVector2); + + // Check the thumbstick value is beyond the threshold or not + if (Vector2.Distance(rightControllerThumbstickVector2, Vector2.zero) > MoveThreshold) + { + MoveCharacter(rightControllerThumbstickVector2); + } + } + + #endregion + + private void MoveCharacter(in Vector2 thumbstickValue) + { + XRRig.transform.position += XRRig.transform.rotation * + new Vector3(MoveSpeed * thumbstickValue.x, 0, MoveSpeed * thumbstickValue.y); + } + } +} \ No newline at end of file diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/CharacterMovementManager.cs.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/CharacterMovementManager.cs.meta new file mode 100644 index 0000000..c67382f --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/CharacterMovementManager.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4115ea44b4ffa394997f43a74b83ccc9 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/ControllerInputManager.cs b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/ControllerInputManager.cs new file mode 100644 index 0000000..bd2e4d9 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/ControllerInputManager.cs @@ -0,0 +1,132 @@ +// Copyright HTC Corporation All Rights Reserved. + +using UnityEngine; +using UnityEngine.XR; +using VIVE.OpenXR.Samples.Spectator.AdvDemo.Helper; + +namespace VIVE.OpenXR.Samples.Spectator.AdvDemo +{ + /// + /// Name: ControllerInputManager.cs + /// Role: Manager (Singleton) + /// Responsibility: Unify to manage the controller input + /// + public class ControllerInputManager : MonoBehaviour + { + // Singleton + private static ControllerInputManager _instance; + public static ControllerInputManager Instance => _instance; + + #region Public varibles of left/right controller (Unity XR Input System) + + // Left/right hand controller (the entry point that get all sensor values) + public InputDevice LeftController { get; private set; } + public InputDevice RightController { get; private set; } + + #endregion + + #region Unity Lifecycle functions + + private void Awake() + { + if (_instance != null && _instance != this) + { + Destroy(this.gameObject); + } + else + { + _instance = this; + } + } + + private void OnDestroy() + { + InputDevices.deviceConnected -= InputDevicesConnected; + InputDevices.deviceDisconnected -= InputDevicesDisconnected; + } + + private void Start() + { + InputDevices.deviceConnected += InputDevicesConnected; + InputDevices.deviceDisconnected += InputDevicesDisconnected; + InitLeftRightController(); + } + + #endregion + + #region Callback functions + + private void InputDevicesConnected(InputDevice device) + { + Debug.Log("InputDevicesConnected"); + Debug.Log($"Device name is {device.name}"); + Debug.Log($"Device characteristics is {device.characteristics}"); + + if (XRDeviceProcessHelper.IsEqualDeviceCharacteristics( + device.characteristics, + InputDeviceCharacteristics.Left | InputDeviceCharacteristics.Controller)) + { + LeftController = device; + } + else if (XRDeviceProcessHelper.IsEqualDeviceCharacteristics( + device.characteristics, + InputDeviceCharacteristics.Right | InputDeviceCharacteristics.Controller)) + { + RightController = device; + } + } + + private void InputDevicesDisconnected(InputDevice device) + { + Debug.Log("InputDevicesDisconnected"); + Debug.Log($"Device name is {device.name}"); + Debug.Log($"Device characteristics is {device.characteristics}"); + } + + #endregion + + #region Public functions for checking the state of left/right controller + + public bool IsLeftControllerConnected() + { + return LeftController.isValid; + } + + public bool IsRightControllerConnected() + { + return RightController.isValid; + } + + #endregion + + #region Private functions for initializing left/right controller + + private void InitLeftController() + { + var inputDevices = XRDeviceProcessHelper.GetLeftControllers(); + if (inputDevices != null && inputDevices.Count > 0) + { + // Just consider the first controller we found + LeftController = inputDevices[0]; + } + } + + private void InitRightController() + { + var inputDevices = XRDeviceProcessHelper.GetRightControllers(); + if (inputDevices != null && inputDevices.Count > 0) + { + // Just consider the first controller we found + RightController = inputDevices[0]; + } + } + + private void InitLeftRightController() + { + InitLeftController(); + InitRightController(); + } + + #endregion + } +} \ No newline at end of file diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/ControllerInputManager.cs.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/ControllerInputManager.cs.meta new file mode 100644 index 0000000..ea227c5 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/ControllerInputManager.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 791d8a548cffbc74c8c5b0ac5027b30f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/Helper.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/Helper.meta new file mode 100644 index 0000000..94cb9f6 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/Helper.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8b937e4ed7ca88349a0a48177cae405a +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/Helper/DebugLogHelper.cs b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/Helper/DebugLogHelper.cs new file mode 100644 index 0000000..6b65a70 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/Helper/DebugLogHelper.cs @@ -0,0 +1,123 @@ +// Copyright HTC Corporation All Rights Reserved. + +using System; +using UnityEngine; + +namespace VIVE.OpenXR.Samples.Spectator.AdvDemo.Helper +{ + public static class DebugHelper + { + #region Custom variable + + public static float UpdateFreqInSecond { get; set; } = 5f; + + #endregion + + #region Default varible in UnityEngine.Debug Class + + public static bool IsDebugBuild => Debug.isDebugBuild; + + public static bool DeveloperConsoleVisible + { + get => Debug.developerConsoleVisible; + set => Debug.developerConsoleVisible = value; + } + + public static ILogger Logger => Debug.unityLogger; + + #endregion + + #region Custom function + + public static void DisableLog() + { + Debug.unityLogger.logEnabled = false; + } + + #endregion + + #region Default function implementation in UnityEngine.Debug Class + + public static void LogWithFrequently(ref float timer, object message, UnityEngine.Object context = null) + { + if (timer < UpdateFreqInSecond) + { + // time is not reach on the update frequency + // add now frame time and return + timer += Time.deltaTime; + return; + } + + // time is reach on the update frequency + // reset timer and then log + timer = 0f; + + if (context == null) + { + Log(message); + } + else + { + Log(message, context); + } + } + + public static void Log(object message) + { + Debug.Log(message); + } + + public static void Log(object message, UnityEngine.Object context) + { + Debug.Log(message, context); + } + + public static void LogError(object message) + { + Debug.LogError(message); + } + + public static void DrawLine(Vector3 start, Vector3 end) + { + Debug.DrawLine(start, end); + } + + public static void DrawLine(Vector3 start, Vector3 end, Color color) + { + Debug.DrawLine(start, end, color); + } + + public static void DrawRay(Vector3 start, Vector3 dir, Color color, float duration = 0.0f, + bool depthTest = true) + { + Debug.DrawRay(start, dir, color, duration); + } + + public static void LogWarning(object message) + { + Debug.LogWarning(message); + } + + public static void LogWarning(object message, UnityEngine.Object context) + { + Debug.LogWarning(message, context); + } + + public static void LogFormat(string format, params object[] args) + { + Debug.LogFormat(format, args); + } + + public static void LogException(Exception exception) + { + Debug.LogException(exception); + } + + public static void LogException(Exception exception, UnityEngine.Object context) + { + Debug.LogException(exception, context); + } + + #endregion + } +} \ No newline at end of file diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/Helper/DebugLogHelper.cs.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/Helper/DebugLogHelper.cs.meta new file mode 100644 index 0000000..6f2d250 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/Helper/DebugLogHelper.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 0436edfb1ed494d4195568fd800d3492 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/Helper/GameObjectProcessHelper.cs b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/Helper/GameObjectProcessHelper.cs new file mode 100644 index 0000000..f275694 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/Helper/GameObjectProcessHelper.cs @@ -0,0 +1,136 @@ +// Copyright HTC Corporation All Rights Reserved. + +using System; +using System.Collections.Generic; +using System.Linq; +using UnityEngine; +using Object = UnityEngine.Object; + +namespace VIVE.OpenXR.Samples.Spectator.AdvDemo.Helper +{ + public static class GameObjectProcessHelper + { + public class GameObjectWithComponentKeyWords where T : Component + { + private static GameObjectWithComponentKeyWords _instance; + + public static GameObjectWithComponentKeyWords Instance + { + get + { + if (_instance == null) + { + Debug.Log("Init GameObjectWithComponentKeyWords"); + _instance = new GameObjectWithComponentKeyWords(); + } + + return _instance; + } + } + + private const string SetUpErrorMessage = + "Please set GameObjectKeyWords first."; + + public string GameObjectKeyWords { get; set; } + + private List _gameObjectList; + + public List GameObjectList + { + get + { + if (string.IsNullOrEmpty(GameObjectKeyWords)) + { + Debug.LogError(SetUpErrorMessage); + return null; + } + + if (_gameObjectList == null) + { + _gameObjectList = GetGameObjectsWithComponentAndKeyWords(GameObjectKeyWords); + } + else if (!_gameObjectList[0].name.Contains(GameObjectKeyWords)) + { + _gameObjectList.Clear(); + _gameObjectList = GetGameObjectsWithComponentAndKeyWords(GameObjectKeyWords); + } + + if (_gameObjectList == null) + { + Debug.LogError( + $"Cannot find any GameObject with {typeof(T).FullName} component and its name contain {GameObjectKeyWords} word in the scene."); + } + + return _gameObjectList; + } + } + } + + public static void SetLayerRecursively(Transform root, int targetLayer) + { + root.gameObject.layer = targetLayer; + foreach (Transform child in root) + { + SetLayerRecursively(child, targetLayer); + } + } + + public static void RemoveComponent(this GameObject go) + { + var component = go.GetComponent(); + + if (component != null) + { + Object.DestroyImmediate(component as Object, true); + } + } + + public static Transform FindParentRoot(Transform childTransform) + { + if (childTransform.parent == null) + { + Debug.Log($"Root is {childTransform.name}"); + return childTransform; + } + + return FindParentRoot(childTransform.parent); + } + + public static List GetGameObjectsWithComponent() where T : Component + { + var gameObjectsWithComponentT = Object.FindObjectsOfType(); + var result = gameObjectsWithComponentT.Select(item => item.gameObject).ToList(); + + return result.Count == 0 ? null : result; + } + + public static List GetGameObjectsWithComponentAndKeyWords(string keyWords) where T : Component + { + var gameObjectsWithComponent = GetGameObjectsWithComponent(); + if (gameObjectsWithComponent == null) + { + return null; + } + + var result = gameObjectsWithComponent.Where(item => item.name.Contains(keyWords)) + .Select(item => item.gameObject).ToList(); + + return result.Count == 0 ? null : result; + } + + public static bool CheckGameObjectNameIsContainTargetString(Transform gameObjectNameNeedToCheck, + string targetString) + { + return gameObjectNameNeedToCheck.name.Contains(targetString); + } + + public static bool CheckGameObjectNameIsMatchTargetString(Transform gameObjectNameNeedToCheck, + string targetString) + { + return string.Equals( + gameObjectNameNeedToCheck.name, + targetString, + StringComparison.OrdinalIgnoreCase); + } + } +} \ No newline at end of file diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/Helper/GameObjectProcessHelper.cs.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/Helper/GameObjectProcessHelper.cs.meta new file mode 100644 index 0000000..ed3dbd8 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/Helper/GameObjectProcessHelper.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1e9ad94512d49744abca03cdf40bc347 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/Helper/XRDeviceProcessHelper.cs b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/Helper/XRDeviceProcessHelper.cs new file mode 100644 index 0000000..724b391 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/Helper/XRDeviceProcessHelper.cs @@ -0,0 +1,67 @@ +// Copyright HTC Corporation All Rights Reserved. + +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.XR; + +namespace VIVE.OpenXR.Samples.Spectator.AdvDemo.Helper +{ + public static class XRDeviceProcessHelper + { + private static readonly List MyInputDevices = new List(); + + private static List TryInitializeController(InputDeviceCharacteristics characteristics) + { + MyInputDevices.Clear(); + + InputDevices.GetDevicesWithCharacteristics(characteristics, MyInputDevices); + + return MyInputDevices.Count == 0 ? null : MyInputDevices; + } + + public static List GetLeftControllers() + { + var getInputDevices = TryInitializeController( + InputDeviceCharacteristics.Left | InputDeviceCharacteristics.Controller); + if (getInputDevices == null || getInputDevices.Count == 0) + { + return null; + } + + Debug.Log($"Found device number with role (Left | Controller): {getInputDevices.Count}"); + foreach (var item in getInputDevices) + { + Debug.Log($"Device name is {item.name}"); + Debug.Log($"Device characteristics is {item.characteristics}"); + } + + return getInputDevices; + } + + public static List GetRightControllers() + { + var getInputDevices = TryInitializeController( + InputDeviceCharacteristics.Right | InputDeviceCharacteristics.Controller); + if (getInputDevices == null || getInputDevices.Count == 0) + { + return null; + } + + Debug.Log($"Found device number with role (Right | Controller): {getInputDevices.Count}"); + foreach (var item in getInputDevices) + { + Debug.Log($"Device name is {item.name}"); + Debug.Log($"Device characteristics is {item.characteristics}"); + } + + return getInputDevices; + } + + public static bool IsEqualDeviceCharacteristics( + InputDeviceCharacteristics deviceNeedToCheck, + InputDeviceCharacteristics characteristics) + { + return (deviceNeedToCheck & characteristics) == characteristics; + } + } +} \ No newline at end of file diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/Helper/XRDeviceProcessHelper.cs.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/Helper/XRDeviceProcessHelper.cs.meta new file mode 100644 index 0000000..8679c07 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/Helper/XRDeviceProcessHelper.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 404cc513dd293034a9400ff4f3f9ebf1 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/ObjectInteractionManager.cs b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/ObjectInteractionManager.cs new file mode 100644 index 0000000..34d3cb3 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/ObjectInteractionManager.cs @@ -0,0 +1,409 @@ +// Copyright HTC Corporation All Rights Reserved. + +using System; +using UnityEngine; +using UnityEngine.XR; +#if XR_INTERACTION_TOOLKIT +using UnityEngine.XR.Interaction.Toolkit; +#endif +using VIVE.OpenXR.Toolkits.Spectator; +using VIVE.OpenXR.Toolkits.Spectator.Helper; + +namespace VIVE.OpenXR.Samples.Spectator.AdvDemo +{ + /// + /// Name: ObjectInteractionManager.cs + /// Role: Manager (Singleton) + /// Responsibility: Manage the interaction in the spectator camera demo scene + /// + public class ObjectInteractionManager : MonoBehaviour + { + // Singleton + private static ObjectInteractionManager _instance; + public static ObjectInteractionManager Instance => _instance; + + private static SpectatorCameraManager SpectatorCameraManager => SpectatorCameraManager.Instance; + private static ControllerInputManager ControllerInputManager => ControllerInputManager.Instance; + private static UIManager UIManager => UIManager.Instance; + + # region Const value range of object rotation, zoom and movement speed + + private const float ZoomActiveMin = .1f; + public const float ROTATION_INTERACTION_SPEED_MIN = 1f; + public const float ROTATION_INTERACTION_SPEED_MAX = 3f; + public const float MOVEMENT_INTERACTION_SPEED_MIN = .01f; + public const float MOVEMENT_INTERACTION_SPEED_MAX = .1f; + public const float ZOOM_INTERACTION_SPEED_MIN = 1f; + public const float ZOOM_INTERACTION_SPEED_MAX = 5f; + + # endregion + + #region Default value definition + + private const ThumbstickEffectObject ThumbstickEffectOptionDefault = ThumbstickEffectObject.Rotation; + + private const bool IsAffectYAxisWhenThumbstickMoveDefault = false; + private const float RotationInteractionSpeedDefault = 1f; + private const float MovementInteractionSpeedDefault = .05f; + private const float ZoomInteractionSpeedDefault = 1f; + + #endregion + +#if XR_INTERACTION_TOOLKIT + // The ray interactor that is used to select objects + [field: SerializeField] private XRRayInteractor SelectObjectInteractor { get; set; } +#endif + + // The effect change on object when change thumbstick + [field: SerializeField] + public ThumbstickEffectObject ThumbstickEffectOption { get; private set; } = ThumbstickEffectOptionDefault; + + // The effect change on object from y-axis when change thumbstick horizontally + [field: SerializeField] + public bool IsAffectYAxisWhenThumbstickMove { get; private set; } = IsAffectYAxisWhenThumbstickMoveDefault; + + // The speed of rotation when change thumbstick + [field: SerializeField, Range(ROTATION_INTERACTION_SPEED_MIN, ROTATION_INTERACTION_SPEED_MAX)] + public float RotationInteractionSpeed { get; private set; } = RotationInteractionSpeedDefault; + + // The speed of movement when change thumbstick + [field: SerializeField, Range(MOVEMENT_INTERACTION_SPEED_MIN, MOVEMENT_INTERACTION_SPEED_MAX)] + public float MovementInteractionSpeed { get; private set; } = MovementInteractionSpeedDefault; + + // The speed of zoom when change thumbstick + [field: SerializeField, Range(ZOOM_INTERACTION_SPEED_MIN, ZOOM_INTERACTION_SPEED_MAX)] + public float ZoomInteractionSpeed { get; private set; } = ZoomInteractionSpeedDefault; + + [HideInInspector] public bool isInteractingObject; + + #region Unity lifecycle event function + + private void Awake() + { + #region Singleton + + if (_instance != null && _instance != this) + { + Destroy(this.gameObject); + } + else + { + _instance = this; + } + + #endregion + } + + private void Start() + { + isInteractingObject = false; + +#if XR_INTERACTION_TOOLKIT + if (SelectObjectInteractor == null) + { + Debug.LogError("The ray interactor that is used to select objects is not set."); + } +#endif + } + + private void Update() + { + #region Check input device is valid + + if (ControllerInputManager is null || + !ControllerInputManager.IsRightControllerConnected()) + { + return; + } + + #endregion + + #region Check is holding the trigger button on the right controller or not + + ControllerInputManager.RightController.TryGetFeatureValue( + CommonUsages.triggerButton, out isInteractingObject); + if (isInteractingObject is false) + { + // If user is not perform hold the trigger button on the right controller, just return + return; + } + + #endregion + + #region Interactive spectator camera + + if (SpectatorCameraManager is null) + { + Debug.LogWarning("Cannot interactive with spectator camera " + + "because the spectator camera manager is null."); + return; + } + + ControllerInputManager.RightController.TryGetFeatureValue( + CommonUsages.primary2DAxis, out Vector2 rightControllerThumbstickVector2); + + // Run the interactive action according to the source of the spectator camera + switch (SpectatorCameraManager.CameraSourceRef) + { + case SpectatorCameraHelper.CameraSourceRef.Hmd: + { + // Interactive spectator camera logic according to the option + // of the thumbstick effect to change the spectator camera. + switch (ThumbstickEffectOption) + { + // If CameraSourceRef is Hmd, the position and rotation of spectator camera + // is controlled by HMD, so if the option of the thumbstick effect is "Rotation" + // or "Position", just ignore the operation. + case ThumbstickEffectObject.Rotation: + case ThumbstickEffectObject.Position: + { + Debug.LogWarning("The spectator camera position/rotation now is controlled by " + + "HMD. Ignore the position/rotation operation by thumbstick"); + } + break; + case ThumbstickEffectObject.FOV: + { + ZoomSpectatorCamera(rightControllerThumbstickVector2); + } + break; + default: + throw new ArgumentOutOfRangeException(); + } + } + break; + case SpectatorCameraHelper.CameraSourceRef.Tracker: + { + switch (ThumbstickEffectOption) + { + case ThumbstickEffectObject.Rotation: + { + RotateObject(rightControllerThumbstickVector2); + } + break; + case ThumbstickEffectObject.Position: + { + MoveObject(rightControllerThumbstickVector2); + } + break; + case ThumbstickEffectObject.FOV: + { + ZoomSpectatorCamera(rightControllerThumbstickVector2); + } + break; + default: + throw new ArgumentOutOfRangeException(); + } + } + break; + default: + throw new ArgumentOutOfRangeException(); + } + + #endregion + } + + #endregion + + #region Public function of changing interaction option + + public void ChangeThumbstickEffect2Position() + { + ThumbstickEffectOption = ThumbstickEffectObject.Position; + } + + public void ChangeThumbstickEffect2Rotation() + { + ThumbstickEffectOption = ThumbstickEffectObject.Rotation; + } + + public void ChangeThumbstickEffect2FOV() + { + ThumbstickEffectOption = ThumbstickEffectObject.FOV; + } + + public void EnableAffectYAxisWhenThumbstickHorizontalMove() + { + IsAffectYAxisWhenThumbstickMove = true; + } + + public void DisableAffectYAxisWhenThumbstickHorizontalMove() + { + IsAffectYAxisWhenThumbstickMove = false; + } + + public void ChangeInteractionSpeed(in ThumbstickEffectObject thumbstickEffectOption, in float value) + { + switch (thumbstickEffectOption) + { + case ThumbstickEffectObject.Position: + { + MovementInteractionSpeed = value; + } + break; + case ThumbstickEffectObject.Rotation: + { + RotationInteractionSpeed = value; + } + break; + case ThumbstickEffectObject.FOV: + { + ZoomInteractionSpeed = value; + } + break; + default: + throw new ArgumentOutOfRangeException(); + } + } + + #endregion + + #region Private function of object interaction + + private void ZoomSpectatorCamera(in Vector2 thumbstickValue) + { + // Change one axis at the one time. + float zoomValue = thumbstickValue.y; + if (Math.Abs(zoomValue) < ZoomActiveMin) + { + // If the thumbstick value is too small, ignore the zoom operation. + return; + } + + zoomValue *= ZoomInteractionSpeed; + + if (SpectatorCameraManager is null) + { + return; + } + + if (SpectatorCameraManager.IsCameraSourceAsHmd()) + { + SpectatorCameraManager.VerticalFov += zoomValue; + + if (UIManager != null) + { + // Once set the FOV value to the spectator camera, update the related field on UI + UIManager.UpdateSpectatorCameraVerticalFOVUiData( + SpectatorCameraManager.VerticalFov); + } + } + else if (SpectatorCameraManager.IsCameraSourceAsTracker()) + { + SpectatorCameraManager.FollowSpectatorCameraTracker.VerticalFov += zoomValue; + + if (UIManager != null) + { + // Once set the FOV value to the spectator camera, update the related field on UI + UIManager.UpdateSpectatorCameraVerticalFOVUiData( + SpectatorCameraManager.FollowSpectatorCameraTracker.VerticalFov); + } + } + } + + private void MoveObject(in Vector2 thumbstickValue) + { + if (SpectatorCameraManager is null) + { + return; + } + + float distance; + bool isMoveX = false; + // Change one axis at the one time. + if (Math.Abs(thumbstickValue.x) > Math.Abs(thumbstickValue.y)) + { + // If the thumbstick x value is bigger than thumbstick y value. + distance = thumbstickValue.x; + isMoveX = true; + } + else + { + distance = thumbstickValue.y; + } + + distance *= MovementInteractionSpeed; + + if (SpectatorCameraManager.IsCameraSourceAsTracker()) + { + if (isMoveX) + { + SpectatorCameraManager.FollowSpectatorCameraTracker.Position += + SpectatorCameraManager.FollowSpectatorCameraTracker.Rotation * + new Vector3(distance, 0, 0); + } + else + { + // Is possible to affect y-axis or z-axis + + Vector3 moveVector = IsAffectYAxisWhenThumbstickMove + // If affect y-axis as true, the value of "thumbstickValue.y" will affect y-axis. + ? new Vector3(0, distance, 0) + // Otherwise, the value of "thumbstickValue.y" will affect z-axis. + : new Vector3(0, 0, distance); + + SpectatorCameraManager.FollowSpectatorCameraTracker.Position += + SpectatorCameraManager.FollowSpectatorCameraTracker.Rotation * moveVector; + } + } + } + + private void RotateObject(in Vector2 thumbstickValue) + { + if (SpectatorCameraManager is null) + { + return; + } + + float angle; + bool isRotateX = false; + // Change one axis at the one time. + if (Math.Abs(thumbstickValue.x) > Math.Abs(thumbstickValue.y)) + { + angle = -thumbstickValue.x; + isRotateX = true; + } + else + { + angle = thumbstickValue.y; + } + + angle *= RotationInteractionSpeed; + + if (SpectatorCameraManager.IsCameraSourceAsTracker()) + { + if (isRotateX) + { + SpectatorCameraManager.FollowSpectatorCameraTracker.transform.Rotate( + angle, 0, 0, Space.Self); + } + else + { + // Is possible to affect y-axis or z-axis + if (IsAffectYAxisWhenThumbstickMove) + { + SpectatorCameraManager.FollowSpectatorCameraTracker.transform.Rotate( + 0, angle, 0, Space.Self); + } + else + { + SpectatorCameraManager.FollowSpectatorCameraTracker.transform.Rotate( + 0, 0, angle, Space.Self); + } + } + } + } + + #endregion + + #region Enum related to object interaction + + public enum ThumbstickEffectObject + { + Position, // effect object Position when change thumbstick + Rotation, // effect object Rotation when change thumbstick + FOV // effect spectator camera FOV when change thumbstick (P.S. interactable object will ignore this option) + } + + #endregion + } +} \ No newline at end of file diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/ObjectInteractionManager.cs.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/ObjectInteractionManager.cs.meta new file mode 100644 index 0000000..c8ce5ef --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/ObjectInteractionManager.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8d2a77cea864dcf46ae6b43b9c382206 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/TeleportationManager.Editor.cs b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/TeleportationManager.Editor.cs new file mode 100644 index 0000000..0507223 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/TeleportationManager.Editor.cs @@ -0,0 +1,32 @@ +// Copyright HTC Corporation All Rights Reserved. + +#if UNITY_EDITOR +using UnityEditor; +using VIVE.OpenXR.Toolkits.Spectator.Helper; + +namespace VIVE.OpenXR.Samples.Spectator.AdvDemo +{ + /// + /// Name: TeleportationManager.Editor.cs + /// Role: General script only use in Unity Editor + /// Responsibility: Display the TeleportationManager.cs in Unity Inspector + /// + public partial class TeleportationManager + { + [CustomEditor(typeof(TeleportationManager))] + public class TeleportationManagerEditor : UnityEditor.Editor + { + public override void OnInspectorGUI() + { + // Just return if not "TeleportationManager" class + if (!(target is TeleportationManager)) + { + return; + } + + EditorHelper.ShowDefaultInspector(serializedObject); + } + } + } +} +#endif \ No newline at end of file diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/TeleportationManager.Editor.cs.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/TeleportationManager.Editor.cs.meta new file mode 100644 index 0000000..1aee15c --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/TeleportationManager.Editor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3bc58aeb1dbd52e49a336d3b62ad7f22 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/TeleportationManager.cs b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/TeleportationManager.cs new file mode 100644 index 0000000..3daa75f --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/TeleportationManager.cs @@ -0,0 +1,203 @@ +// Copyright HTC Corporation All Rights Reserved. + +using UnityEngine; +using UnityEngine.XR; +#if XR_INTERACTION_TOOLKIT +using UnityEngine.XR.Interaction.Toolkit; +#endif + +namespace VIVE.OpenXR.Samples.Spectator.AdvDemo +{ + /// + /// Name: TeleportationManager.cs + /// Role: Manager (Singleton) + /// Responsibility: Manage the character teleportation + /// + public partial class TeleportationManager : MonoBehaviour + { +#if XR_INTERACTION_TOOLKIT + // Singleton + private static TeleportationManager _instance; + private static ControllerInputManager ControllerInputManager => ControllerInputManager.Instance; + + #region Private const warning and error message + + private const string TeleportationProviderNotFoundErrorMessage = + "TeleportationProvider is null, please setup the related component correctly in the Unity Editor and try it again."; + + private const string TeleportLabelNotFoundErrorMessage = + "TeleportLabel is null, please setup the related component correctly in the Unity Editor and try it again."; + + private const string TeleportRayNotFoundErrorMessage = + "TeleportRay is null, please setup the related component correctly in the Unity Editor and try it again."; + + private const string UiOnTeleportControllerNotFoundErrorMessage = + "UiOnTeleportController is null, cannot disable the UI on teleport controller."; + + #endregion + + #region Private varibles related to doing the teleportion + + // Record the previous value of the primary button on the left controller + private bool PreviousLeftHandPrimaryButtonForTeleportValue { get; set; } + + [field: SerializeField] private TeleportationProvider TeleportationProvider { get; set; } + + #endregion + + #region Teleport ray and teleport label prefab (private varibles) + + [field: SerializeField] private XRRayInteractor TeleportRay { get; set; } + [field: SerializeField] private GameObject TeleportLabelPrefab { get; set; } + private GameObject TeleportLabel { get; set; } + + #endregion + + #region UI object disable when teleportation is activated (private varibles) + + [field: SerializeField] private GameObject UiOnTeleportController { get; set; } + + #endregion + + #region Unity Lifecycle functions + + private void Awake() + { + if (_instance != null && _instance != this) + { + Destroy(this.gameObject); + } + else + { + _instance = this; + } + } + + private void Start() + { + PreviousLeftHandPrimaryButtonForTeleportValue = false; + if (TeleportLabelPrefab != null) + { + // Create the teleport label on the scene + TeleportLabel = Instantiate(TeleportLabelPrefab, new Vector3(0, 0, 0), Quaternion.identity); + TeleportLabel.SetActive(false); + } + + // Disable the teleport ray and teleport label + SetTeleportRayComponentAndLabelObject(false); + } + + private void Update() + { + // Check if the left controller is connected or not + if (ControllerInputManager is null || !ControllerInputManager.IsLeftControllerConnected()) + { + return; + } + + // Since we define the value of the primary button on the left controller + // to determine whether teleport is activated or not, we need to check the + // value of the primary button + ControllerInputManager.LeftController.TryGetFeatureValue( + CommonUsages.primaryButton, out bool leftControllerPrimaryButtonForTeleportValue); + + // Set the teleport ray and teleport label active according to the value of the primary button + SetTeleportRayComponentAndLabelObject(leftControllerPrimaryButtonForTeleportValue); + + // If the value of the primary button on the left controller is not changed, + // which means the user is still pressing or not pressing the primary button. + if (PreviousLeftHandPrimaryButtonForTeleportValue != leftControllerPrimaryButtonForTeleportValue) + { + PreviousLeftHandPrimaryButtonForTeleportValue = leftControllerPrimaryButtonForTeleportValue; + + if (leftControllerPrimaryButtonForTeleportValue) + { + // Just return if the user change the primary button value from false to true. + // We only need to do the teleportation when the user release the primary button. (from true to false) + return; + } + + if (TeleportationProvider == null) + { + Debug.LogError(TeleportationProviderNotFoundErrorMessage); + } + else if (TeleportRay.TryGetCurrent3DRaycastHit(out RaycastHit hit)) + { + Teleport(hit.point); + } + + SetTeleportRayComponentAndLabelObject(false); + } + } + + #endregion + + #region Main functions for teleportation + + private void SetTeleportRayComponentAndLabelObject(in bool canTeleport) + { + // Check if the teleport ray component is null + if (TeleportRay == null) + { + Debug.LogError(TeleportRayNotFoundErrorMessage); + } + else + { + // Set teleport ray + TeleportRay.enabled = canTeleport; + } + + if (UiOnTeleportController == null) + { + Debug.LogError(UiOnTeleportControllerNotFoundErrorMessage); + } + else + { + // Disable the UI on teleport controller when teleport ray is activated + UiOnTeleportController.SetActive(!canTeleport); + } + + // Check if the teleport label prefab is null + if (TeleportLabel == null) + { + Debug.LogError(TeleportLabelNotFoundErrorMessage); + } + else + { + // Set teleport label prefab + TeleportLabel.SetActive(canTeleport); + } + + if (TeleportRay == null || TeleportLabel == null || !canTeleport) + { + // If TeleportRay = null or TeleportLabel = null or teleport is in-activated, + // we do not need to update the position of the teleport label + return; + } + + if (TeleportRay.TryGetCurrent3DRaycastHit(out RaycastHit hit)) + { + // Update the position of the teleport label + TeleportLabel.transform.position = hit.point; + } + else + { + // Disable the teleport label if the teleport ray does not hit anything + TeleportLabel.SetActive(false); + } + } + + private void Teleport(in Vector3 position) + { + var request = new TeleportRequest + { + destinationPosition = position + }; + + TeleportationProvider.QueueTeleportRequest(request); + } + + #endregion +#endif + } +} \ No newline at end of file diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/TeleportationManager.cs.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/TeleportationManager.cs.meta new file mode 100644 index 0000000..09e4294 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/TeleportationManager.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 713b2b0257249694ca75424a395a0bab +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/TestSceneUIButton.cs b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/TestSceneUIButton.cs new file mode 100644 index 0000000..07f8f3a --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/TestSceneUIButton.cs @@ -0,0 +1,41 @@ +// Copyright HTC Corporation All Rights Reserved. + +using UnityEngine; +using VIVE.OpenXR.Toolkits.Spectator; +using VIVE.OpenXR.Toolkits.Spectator.Helper; + +namespace VIVE.OpenXR.Samples.Spectator.AdvDemo +{ + /// + /// Name: TestSceneUIButton.cs + /// Role: UI script + /// Responsibility: Define the button click event in the "Spectator_Adv_Demo_Second_Scene_Test" scene + /// + public class TestSceneUIButton : MonoBehaviour + { + public void OnClickChangeCameraSourceButton() + { + var spectatorCameraManager = SpectatorCameraManager.Instance; + if (spectatorCameraManager is null) + { + return; + } + + if (spectatorCameraManager.CameraSourceRef is SpectatorCameraHelper.CameraSourceRef.Tracker) + { + spectatorCameraManager.CameraSourceRef = SpectatorCameraHelper.CameraSourceRef.Hmd; + } + else if (spectatorCameraManager.CameraSourceRef is SpectatorCameraHelper.CameraSourceRef.Hmd) + { + if (spectatorCameraManager.SpectatorCameraTrackerList.Count <= 0) + { + return; + } + + spectatorCameraManager.FollowSpectatorCameraTracker = + spectatorCameraManager.SpectatorCameraTrackerList[0]; + spectatorCameraManager.CameraSourceRef = SpectatorCameraHelper.CameraSourceRef.Tracker; + } + } + } +} \ No newline at end of file diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/TestSceneUIButton.cs.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/TestSceneUIButton.cs.meta new file mode 100644 index 0000000..1ace880 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/TestSceneUIButton.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7d9bec99d81ff284a96191954f27a29d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/UIHint.cs b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/UIHint.cs new file mode 100644 index 0000000..82455f1 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/UIHint.cs @@ -0,0 +1,95 @@ +// Copyright HTC Corporation All Rights Reserved. + +using System.Linq; +using TMPro; +using UnityEngine; +using UnityEngine.EventSystems; +using VIVE.OpenXR.Samples.Spectator.AdvDemo.Helper; + +namespace VIVE.OpenXR.Samples.Spectator.AdvDemo +{ + /// + /// Name: UIHint.cs + /// Role: General script + /// Responsibility: Perform the action when pointer is enter/exit/down/up/click + /// + public class UIHint : MonoBehaviour, + IPointerEnterHandler + // // For other action, feel free to uncomment the following code + // // and then implement the corresponding interface + // ,IPointerExitHandler + // ,IPointerDownHandler + // ,IPointerUpHandler + // ,IPointerClickHandler + { + #region Const warning/error message + + private const string UiHintNotFoundWarningMessage = + "Can not find the corresponding ui component hint."; + + private const string PageObjectNotFoundForHintTextObjectWarningMessage = + "Can not find the corresponding page object for hint text object."; + + #endregion + + private static UIManager UIManager => UIManager.Instance; + + public void OnPointerEnter(PointerEventData eventData) + { + string uiComponentHint = string.Empty; + + foreach (var item in UIManager.UIHintStaticResource.UiComponentKeywordAndHintPair) + { + if (GameObjectProcessHelper.CheckGameObjectNameIsContainTargetString(transform, item.Key)) + { + uiComponentHint = UIManager.UIHintStaticResource.UiComponentKeywordAndHintPair[item.Key]; + } + } + + if (string.IsNullOrEmpty(uiComponentHint)) + { + Debug.LogWarning(UiHintNotFoundWarningMessage); + return; + } + + for (int i = 0; i < UIManager.UIHintStaticResource.PageNameAndPageRootObjectPair.Count; i++) + { + var item = UIManager.UIHintStaticResource.PageNameAndPageRootObjectPair.ElementAt(i); + if (!transform.IsChildOf(item.Value.transform)) + { + // if the index is the last one, it means the page object is not found + if (i == UIManager.UIHintStaticResource.PageNameAndPageRootObjectPair.Count - 1) + { + Debug.LogWarning(PageObjectNotFoundForHintTextObjectWarningMessage); + } + + continue; + } + + Debug.Log($"Find the corresponding page {item.Value}"); + Debug.Log($"Show the UI hint: {uiComponentHint}"); + UIManager.UIHintStaticResource.PageNameAndHintTextObjectPair[item.Key].GetComponent() + .text = uiComponentHint; + break; + } + } + + // // For other action, feel free to uncomment the following code + // // and then implement the corresponding interface + // public void OnPointerExit(PointerEventData eventData) + // { + // } + // + // public void OnPointerDown(PointerEventData eventData) + // { + // } + // + // public void OnPointerUp(PointerEventData eventData) + // { + // } + // + // public void OnPointerClick(PointerEventData eventData) + // { + // } + } +} \ No newline at end of file diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/UIHint.cs.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/UIHint.cs.meta new file mode 100644 index 0000000..c337043 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/UIHint.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e661ec2da35165a4a9d9dd3c43f5799c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/UIHintStaticResource.cs b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/UIHintStaticResource.cs new file mode 100644 index 0000000..85dfff5 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/UIHintStaticResource.cs @@ -0,0 +1,270 @@ +// Copyright HTC Corporation All Rights Reserved. + +using System.Collections.Generic; +using TMPro; +using UnityEngine; +using VIVE.OpenXR.Samples.Spectator.AdvDemo.Helper; + +namespace VIVE.OpenXR.Samples.Spectator.AdvDemo +{ + /// + /// Name: UIHintStaticResource.cs + /// Role: Singleton class without MonoBehaviour + /// Responsibility: The static resource for UIHint.cs usage. + /// + /// This design pattern can reduce the memory usage because + /// all UIHint class will share the same resource. + /// + public class UIHintStaticResource + { + // Singleton + private static UIHintStaticResource _instance; + + public static UIHintStaticResource Instance + { + get + { + if (_instance == null) + { + _instance = new UIHintStaticResource(); + } + + return _instance; + } + } + + private const string PageNameNotFoundForHintTextObjectWarningMessage = + "Can not find the corresponding page name for hint text object."; + + // The key word in gameObject (which showing the UI hint) name + private const string UIHintGameObjectKeyWords = "Description Text"; + + #region Page name keywords + + private const string MainPageKeyWords = "Main Page"; + private const string InteractionSettingPageKeyWords = "Interaction Setting Page"; + private const string SpectatorCameraSettingPageKeyWords = "Spectator Camera Setting Page"; + + #endregion + + #region UI component keywords and corresponding hint + + #region Main Page + + private const string BackButtonKeyWords = "Back Button"; + private const string BackButtonHint = " "; + + private const string SpectatorCameraSettingButtonKeyWords = "Spectator Camera Setting Button"; + + private const string SpectatorCameraSettingButtonHint = + "Click the button to open the spectator camera setting page."; + + private const string InteractionSettingButtonKeyWords = "Interaction Setting Button"; + private const string InteractionSettingButtonHint = "Click the button to open the interaction setting page."; + + private const string LicenseButtonKeyWords = "License Button"; + private const string LicenseButtonHint = "Click the button to open the license page."; + + private const string ExitButtonKeyWords = "Exit Button"; + private const string ExitButtonHint = "Click the button to exit the application."; + + #endregion + + #region Spectator camera setting page + + private const string CaptureButtonKeyWords = "360 Capture Button"; + private const string CaptureButtonHint = "Click the button to capture 3D-360 image."; + + private const string HmdSourceButtonKeyWords = "HMD Source Button"; + + private const string HmdSourceButtonHint = "Choose the \"HMD\" source for spectator camera. " + + "The spectator camera position and rotation will follow the " + + "HMD."; + + private const string TrackerSourceButtonKeyWords = "Tracker Source Button"; + + private const string TrackerSourceButtonHint = "Choose the \"Tracker\" source for spectator camera. " + + "The spectator camera position and rotation will be " + + "follow the tracker."; + + private const string TrackerDropdownKeyWords = "Tracker Dropdown"; + + private const string TrackerDropdownHint = "Choose the tracker for spectator camera. " + + "Which tracker will be used for the spectator camera follow?"; + + private const string LayerMaskDropdownKeyWords = "Layer Mask Dropdown"; + + private const string LayerMaskDropdownHint = "Set the layer mask for spectator camera. " + + "The spectator camera will only render the object which is " + + "in the layer mask.\nP.S. Green = On, Red = Off."; + + private const string FOVSliderKeyWords = "FOV Slider"; + private const string FOVSliderHint = "Set the vertical FOV for spectator camera."; + + private const string SaveSettingButtonKeyWords = "Save Setting Button"; + private const string SaveSettingButtonHint = "Save the current spectator camera setting."; + + private const string ReloadSettingButtonKeyWords = "Reload Setting Button"; + private const string ReloadSettingButtonHint = "Reload the last time saved spectator camera setting."; + + private const string ResetToFactorySettingButtonKeyWords = "Reset To Factory Setting Button"; + private const string ResetToFactorySettingButtonHint = "Reset the spectator camera setting to factory setting."; + + private const string ResetToUserBuildSettingButtonKeyWords = "Reset To User Build Setting Button"; + + private const string ResetToUserBuildSettingButtonHint = + "Reset the spectator camera setting to user setup on the Unity Editor."; + + #endregion + + #region Interaction setting page + + private const string ThumbstickEffectPositionButtonKeyWords = "Position Button"; + + private const string ThumbstickEffectPositionButtonHint = + "Choose \"Position\" as the affected variable if move the thumbstick."; + + private const string ThumbstickEffectRotationButtonKeyWords = "Rotation Button"; + + private const string ThumbstickEffectRotationButtonHint = + "Choose \"Rotation\" as the affected variable if move the thumbstick."; + + private const string ThumbstickEffectFOVButtonKeyWords = "FOV Button"; + + private const string ThumbstickEffectFOVButtonHint = + "Choose \"FOV\" as the affected variable if move the thumbstick."; + + private const string ThumbstickEffectAffectYAxisToggleKeyWords = "Affect Y Axis Toggle"; + + private const string ThumbstickEffectAffectYAxisToggleHint = + "Affect the Y-axis under the \"Position\" or \"Rotation\" mode of the \"Thumbstick Effect Option\" or not."; + + private const string MovementSpeedSliderKeyWords = "Movement Speed Slider"; + + private const string MovementSpeedSliderHint = + "Set the movement speed of the object when rotating the thumbstick."; + + private const string RotationSpeedSliderKeyWords = "Rotation Speed Slider"; + + private const string RotationSpeedSliderHint = + "Set the rotation speed of the object when rotating the thumbstick."; + + private const string ZoomSpeedSliderKeyWords = "Zoom Speed Slider"; + private const string ZoomSpeedSliderHint = "Set the zoom speed of the object when rotating the thumbstick."; + + #endregion + + #endregion + + private readonly List _pageKeyWords = new List + { + MainPageKeyWords, + InteractionSettingPageKeyWords, + SpectatorCameraSettingPageKeyWords, + }; + + public readonly Dictionary UiComponentKeywordAndHintPair = new Dictionary + { + { SpectatorCameraSettingButtonKeyWords, SpectatorCameraSettingButtonHint }, + { InteractionSettingButtonKeyWords, InteractionSettingButtonHint }, + { LicenseButtonKeyWords, LicenseButtonHint }, + { ExitButtonKeyWords, ExitButtonHint }, + + { BackButtonKeyWords, BackButtonHint }, + + { CaptureButtonKeyWords, CaptureButtonHint }, + { HmdSourceButtonKeyWords, HmdSourceButtonHint }, + { TrackerSourceButtonKeyWords, TrackerSourceButtonHint }, + { TrackerDropdownKeyWords, TrackerDropdownHint }, + { LayerMaskDropdownKeyWords, LayerMaskDropdownHint }, + { FOVSliderKeyWords, FOVSliderHint }, + { SaveSettingButtonKeyWords, SaveSettingButtonHint }, + { ReloadSettingButtonKeyWords, ReloadSettingButtonHint }, + { ResetToFactorySettingButtonKeyWords, ResetToFactorySettingButtonHint }, + { ResetToUserBuildSettingButtonKeyWords, ResetToUserBuildSettingButtonHint }, + + { ThumbstickEffectPositionButtonKeyWords, ThumbstickEffectPositionButtonHint }, + { ThumbstickEffectRotationButtonKeyWords, ThumbstickEffectRotationButtonHint }, + { ThumbstickEffectFOVButtonKeyWords, ThumbstickEffectFOVButtonHint }, + { ThumbstickEffectAffectYAxisToggleKeyWords, ThumbstickEffectAffectYAxisToggleHint }, + { MovementSpeedSliderKeyWords, MovementSpeedSliderHint }, + { RotationSpeedSliderKeyWords, RotationSpeedSliderHint }, + { ZoomSpeedSliderKeyWords, ZoomSpeedSliderHint }, + }; + + private static GameObjectProcessHelper.GameObjectWithComponentKeyWords + _gameObjectWithComponentKeyWords; + + public Dictionary PageNameAndHintTextObjectPair { get; } + public Dictionary PageNameAndPageRootObjectPair { get; } + + private UIHintStaticResource() + { + _gameObjectWithComponentKeyWords = + GameObjectProcessHelper.GameObjectWithComponentKeyWords.Instance; + _gameObjectWithComponentKeyWords.GameObjectKeyWords = UIHintGameObjectKeyWords; + + PageNameAndHintTextObjectPair = new Dictionary(); + PageNameAndPageRootObjectPair = new Dictionary(); + + FindCorrespondingPageNameAndHintTextObjectPair(); + ResetAllHintTextObject(); + } + + /// + /// Find the corresponding page name and hint text object and its own root pair. + /// + private void FindCorrespondingPageNameAndHintTextObjectPair() + { + Debug.Log( + $"Find {_gameObjectWithComponentKeyWords.GameObjectList.Count} " + + "GameObject with \"TextMeshProUGUI\" component and its name contain " + + $"{UIHintGameObjectKeyWords} key word in the scene"); + + foreach (var item in _gameObjectWithComponentKeyWords.GameObjectList) + { + GameObject upper = item; + bool isMatch = false; + while (!isMatch) + { + foreach (var pageKeyWord in _pageKeyWords) + { + if (GameObjectProcessHelper.CheckGameObjectNameIsContainTargetString(upper.transform, + pageKeyWord)) + { + Debug.Log("Init PageNameAndHintTextObjectPair and PageNameAndPageRootObjectPair"); + PageNameAndHintTextObjectPair.Add(pageKeyWord, item); + PageNameAndPageRootObjectPair.Add(pageKeyWord, upper); + isMatch = true; + break; + } + } + + if (!isMatch) + { + if (upper.transform.parent != null) + { + upper = upper.transform.parent.gameObject; + } + else + { + Debug.LogWarning(PageNameNotFoundForHintTextObjectWarningMessage); + break; + } + } + } + } + } + + /// + /// Reset all hint text object to empty string + /// + private void ResetAllHintTextObject() + { + foreach (var item in PageNameAndHintTextObjectPair) + { + item.Value.GetComponent().text = string.Empty; + } + } + } +} \ No newline at end of file diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/UIHintStaticResource.cs.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/UIHintStaticResource.cs.meta new file mode 100644 index 0000000..7257853 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/UIHintStaticResource.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: de4df7b555b55ff4f8adc44c243db1a8 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/UIManager.Editor.cs b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/UIManager.Editor.cs new file mode 100644 index 0000000..18d5165 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/UIManager.Editor.cs @@ -0,0 +1,33 @@ +// Copyright HTC Corporation All Rights Reserved. + +#if UNITY_EDITOR +using UnityEditor; +using VIVE.OpenXR.Toolkits.Spectator.Helper; + +namespace VIVE.OpenXR.Samples.Spectator.AdvDemo +{ + /// + /// Name: UIManager.Editor.cs + /// Role: General script only use in Unity Editor + /// Responsibility: Display the UIManager.cs in Unity Inspector + /// + public partial class UIManager + { + [CustomEditor(typeof(UIManager))] + public class UIManagerEditor : UnityEditor.Editor + { + public override void OnInspectorGUI() + { + // just return if not "SpectatorCameraController" class + if (!(target is UIManager)) + { + return; + } + + EditorHelper.ShowDefaultInspector(serializedObject); + } + } + } +} + +#endif \ No newline at end of file diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/UIManager.Editor.cs.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/UIManager.Editor.cs.meta new file mode 100644 index 0000000..1812f3c --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/UIManager.Editor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 36b435b60926bd24ca51f6fb89cc34ab +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/UIManager.cs b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/UIManager.cs new file mode 100644 index 0000000..103c344 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/UIManager.cs @@ -0,0 +1,799 @@ +// Copyright HTC Corporation All Rights Reserved. + +using System; +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using TMPro; +using UnityEngine; +using UnityEngine.UI; +using UnityEngine.SceneManagement; +#if UNITY_EDITOR +using UnityEditor; +#endif +using VIVE.OpenXR.Toolkits.Spectator; +using VIVE.OpenXR.Toolkits.Spectator.Helper; + +namespace VIVE.OpenXR.Samples.Spectator.AdvDemo +{ + /// + /// Name: UIManager.cs + /// Role: Manager (Singleton) + /// Responsibility: Manage all UI logic in the spectator demo scene + /// + [RequireComponent(typeof(AudioSource))] + public partial class UIManager : MonoBehaviour + { + // Singleton + private static UIManager _instance; + public static UIManager Instance => _instance; + + #region Private const for page content + + #region Spectator Camera Setting Page Constants + + private const string NowCameraSourceRefTextPrefix = "Camera Source Ref: "; + + # region Spectator Camera Layer Mask Dropdown Constants + + private static readonly TMP_Dropdown.OptionData CameraLayerMaskDropdownLastOptionData = + new TMP_Dropdown.OptionData("Empty"); + + private const int CameraLayerMaskDropdownSpriteWidth = 10; + private const int CameraLayerMaskDropdownSpriteHeight = 10; + private const float CameraLayerMaskDropdownSpritePixelsPerUnit = 1; + private static readonly Vector2 CameraLayerMaskDropdownSpritePivot = new Vector2(0.5f, 0.5f); + + private static readonly Color CameraLayerMaskDropdownOnColor = Color.green; + private static readonly Color CameraLayerMaskDropdownOffColor = Color.magenta; + + #endregion + + #endregion + + #region Interaction Setting Page Constants + + private const string NowInteractionModeTextPrefix = "Interaction Mode: "; + private const string MovementInteractionSpeedTextPrefix = "Movement Interaction Speed: "; + private const string RotationInteractionSpeedTextPrefix = "Rotation Interaction Speed: "; + private const string ZoomInteractionSpeedTextPrefix = "Zoom Interaction Speed: "; + private const string SpectatorCameraVerticalFOVTextPrefix = "Camera FOV: "; + private const string SpectatorCameraTrackerSourceTextPrefix = "Tracker Source: "; + + #endregion + + #endregion + + [field: SerializeField] private string LoadSecondSceneName { get; set; } + + #region Private variables for UI audio + + [field: SerializeField, Header("The main camera in XRRig")] + private Camera XRHeadCamera { get; set; } + + [field: SerializeField, Header("The UI audio clip")] + private AudioClip UIAudioClip { get; set; } + + #endregion + + #region Main page varibles (private) + + [field: SerializeField, Header("Main page item")] + private Button SpectatorCameraSettingButton { get; set; } + + [field: SerializeField] private Button InteractionSettingButton { get; set; } + [field: SerializeField] private Button LoadSecondSceneButton { get; set; } + [field: SerializeField] private Button LicenseButton { get; set; } + [field: SerializeField] private Button ExitButton { get; set; } + [field: SerializeField] private GameObject MainPage { get; set; } + [field: SerializeField] private GameObject SpectatorCameraSettingPage { get; set; } + [field: SerializeField] private GameObject InteractionSettingPage { get; set; } + [field: SerializeField] private GameObject LicensePage { get; set; } + + #endregion + + #region Interaction setting page varibles (private) + + private static ObjectInteractionManager ObjectInteractionManager => ObjectInteractionManager.Instance; + + [field: SerializeField, Header("Interaction setting page item")] + private Button InteractionSettingPageBackButton { get; set; } + + [field: SerializeField] private TMP_Text ThumbstickEffectOptionText { get; set; } + [field: SerializeField] private Button ThumbstickEffectPositionButton { get; set; } + [field: SerializeField] private Button ThumbstickEffectRotationButton { get; set; } + [field: SerializeField] private Button ThumbstickEffectFOVButton { get; set; } + [field: SerializeField] private Toggle AffectYAxisToggle { get; set; } + [field: SerializeField] private TMP_Text MovementInteractionSpeedText { get; set; } + [field: SerializeField] private Slider MovementInteractionSpeedSlider { get; set; } + [field: SerializeField] private TMP_Text RotationInteractionSpeedText { get; set; } + [field: SerializeField] private Slider RotationInteractionSpeedSlider { get; set; } + [field: SerializeField] private TMP_Text ZoomInteractionSpeedText { get; set; } + [field: SerializeField] private Slider ZoomInteractionSpeedSlider { get; set; } + + #endregion + + #region Spectator camera setting page varibles (private) + + private SpectatorCameraManager SpectatorCameraManager => SpectatorCameraManager.Instance; + + [field: SerializeField, Header("Spectator camera setting page item")] + private Button SpectatorCameraSettingPageBackButton { get; set; } + + #region Spectator camera 360 capture varible + + [field: SerializeField] private Button SpectatorCameraCapture360Button { get; set; } + + #endregion + + #region Spectator camera source ref varibles + + [field: SerializeField] private TMP_Text NowCameraSourceRefText { get; set; } + [field: SerializeField] private Button HmdCameraSourceRefButton { get; set; } + [field: SerializeField] private Button TrackerCameraSourceRefButton { get; set; } + + #endregion + + #region Spectator camera tracker source varibles + + [field: SerializeField] private TMP_Text NowTrackerSourceRefText { get; set; } + [field: SerializeField] private TMP_Dropdown TrackerSourceDropdown { get; set; } + + #endregion + + #region Spectator camera layer mask dropdown varibles + + [field: SerializeField] private TMP_Dropdown SpectatorCameraLayerMaskDropdown { get; set; } + private string[] AllLayerMaskNameArray { get; set; } + private Sprite CameraLayerMaskOnSprite { get; set; } + private Sprite CameraLayerMaskOffSprite { get; set; } + + #endregion + + #region Spectator camera vertical FOV varibles + + [field: SerializeField] private TMP_Text SpectatorCameraVerticalFOVText { get; set; } + [field: SerializeField] private Slider SpectatorCameraVerticalFOVSlider { get; set; } + + #endregion + + #endregion + + #region License page varibles (private) + + [field: SerializeField, Header("License page item")] + private Button LicensePageBackButton { get; set; } + + #endregion + + public UIHintStaticResource UIHintStaticResource { get; private set; } + + #region Unity lifecycle event functions + + private void Awake() + { + #region Singleton + + if (_instance != null && _instance != this) + { + Destroy(this.gameObject); + } + else + { + _instance = this; + } + + #endregion + } + + private IEnumerator Start() + { + // Hard-coding delay 3 seconds + yield return new WaitForSeconds(3); + + UIHintStaticResource = UIHintStaticResource.Instance; + + #region Page and some basic button init + + MainPage.SetActive(true); + SpectatorCameraSettingPage.SetActive(false); + InteractionSettingPage.SetActive(false); + LicensePage.SetActive(false); + + // Register back button event + SpectatorCameraSettingPageBackButton.onClick.AddListener(OnClickBackButton); + InteractionSettingPageBackButton.onClick.AddListener(OnClickBackButton); + LicensePageBackButton.onClick.AddListener(OnClickBackButton); + + #endregion + + #region Main page button OnClick register + + SpectatorCameraSettingButton.onClick.AddListener(OnClickSpectatorCameraSettingButton); + InteractionSettingButton.onClick.AddListener(OnClickInteractionSettingButton); + LoadSecondSceneButton.onClick.AddListener(OnClickLoadSecondSceneButton); + LicenseButton.onClick.AddListener(OnClickLicenseButton); + ExitButton.onClick.AddListener(OnClickExitButton); + + #endregion + + #region Interaction setting page setup + + ThumbstickEffectPositionButton.onClick.AddListener(OnClickThumbstickEffectPositionButton); + ThumbstickEffectRotationButton.onClick.AddListener(OnClickThumbstickEffectRotationButton); + ThumbstickEffectFOVButton.onClick.AddListener(OnClickThumbstickEffectFOVButton); + ThumbstickEffectOptionText.text = + $"{NowInteractionModeTextPrefix}{ObjectInteractionManager.ThumbstickEffectOption.ToString()}"; + + AffectYAxisToggle.isOn = ObjectInteractionManager.IsAffectYAxisWhenThumbstickMove; + AffectYAxisToggle.onValueChanged.AddListener(OnAffectYAxisToggleValueChanged); + + MovementInteractionSpeedSlider.minValue = ObjectInteractionManager.MOVEMENT_INTERACTION_SPEED_MIN; + MovementInteractionSpeedSlider.maxValue = ObjectInteractionManager.MOVEMENT_INTERACTION_SPEED_MAX; + MovementInteractionSpeedSlider.value = ObjectInteractionManager.MovementInteractionSpeed; + MovementInteractionSpeedSlider.onValueChanged.AddListener(OnMovementInteractionSpeedSliderValueChanged); + MovementInteractionSpeedText.text = + $"{MovementInteractionSpeedTextPrefix}{ObjectInteractionManager.MovementInteractionSpeed}"; + + RotationInteractionSpeedSlider.minValue = ObjectInteractionManager.ROTATION_INTERACTION_SPEED_MIN; + RotationInteractionSpeedSlider.maxValue = ObjectInteractionManager.ROTATION_INTERACTION_SPEED_MAX; + RotationInteractionSpeedSlider.value = ObjectInteractionManager.RotationInteractionSpeed; + RotationInteractionSpeedSlider.onValueChanged.AddListener(OnRotationInteractionSpeedSliderValueChanged); + RotationInteractionSpeedText.text = + $"{RotationInteractionSpeedTextPrefix}{ObjectInteractionManager.RotationInteractionSpeed}"; + + ZoomInteractionSpeedSlider.minValue = ObjectInteractionManager.ZOOM_INTERACTION_SPEED_MIN; + ZoomInteractionSpeedSlider.maxValue = ObjectInteractionManager.ZOOM_INTERACTION_SPEED_MAX; + ZoomInteractionSpeedSlider.value = ObjectInteractionManager.ZoomInteractionSpeed; + ZoomInteractionSpeedSlider.onValueChanged.AddListener(OnZoomInteractionSpeedSliderValueChanged); + ZoomInteractionSpeedText.text = + $"{ZoomInteractionSpeedTextPrefix}{ObjectInteractionManager.ZoomInteractionSpeed}"; + + #endregion + + #region Spectator camera setting page setup + + // SpectatorCameraCapture360Button register OnClick event + SpectatorCameraCapture360Button.onClick.AddListener(OnClickSpectatorCameraCapture360Button); + + #region CameraSourceRefButton register OnClick event + + HmdCameraSourceRefButton.onClick.AddListener(OnClickHmdCameraSourceRefButton); + TrackerCameraSourceRefButton.onClick.AddListener(OnClickTrackerCameraSourceRefButton); + + #endregion + + NowCameraSourceRefText.text = + $"{NowCameraSourceRefTextPrefix}{SpectatorCameraManager.CameraSourceRef.ToString()}"; + + var trackerNameList = SpectatorCameraManager.SpectatorCameraTrackerList != null && + SpectatorCameraManager.SpectatorCameraTrackerList.Count > 0 + ? SpectatorCameraManager.SpectatorCameraTrackerList.Select(item => item.name).ToList() + : new List(); + TrackerSourceDropdown.options.Clear(); + TrackerSourceDropdown.AddOptions(trackerNameList); + TrackerSourceDropdown.value = + SpectatorCameraManager.CameraSourceRef is SpectatorCameraHelper.CameraSourceRef.Hmd + ? -1 + : SpectatorCameraManager.FollowSpectatorCameraTracker is null || + SpectatorCameraManager.SpectatorCameraTrackerList is null || + SpectatorCameraManager.SpectatorCameraTrackerList.Count == 0 + ? -1 + : TrackerSourceDropdown.options.IndexOf( + TrackerSourceDropdown.options.Find( + item => + item.text == SpectatorCameraManager.FollowSpectatorCameraTracker.name)); + TrackerSourceDropdown.onValueChanged.AddListener(OnSpectatorCameraTrackerSourceDropdownValueChanged); + + NowTrackerSourceRefText.text = + SpectatorCameraManager.CameraSourceRef is SpectatorCameraHelper.CameraSourceRef.Hmd + ? "N/A" + : SpectatorCameraManager.FollowSpectatorCameraTracker is null || + SpectatorCameraManager.SpectatorCameraTrackerList is null || + SpectatorCameraManager.SpectatorCameraTrackerList.Count == 0 + ? "N/A" + : $"{SpectatorCameraTrackerSourceTextPrefix}" + + $"{SpectatorCameraManager.FollowSpectatorCameraTracker.name}"; + + if (SpectatorCameraManager.CameraSourceRef == SpectatorCameraHelper.CameraSourceRef.Hmd || + SpectatorCameraManager.SpectatorCameraTrackerList is null || + SpectatorCameraManager.SpectatorCameraTrackerList.Count == 0) + { + TrackerSourceDropdown.interactable = false; + } + + if (SpectatorCameraManager.SpectatorCameraTrackerList is null || + SpectatorCameraManager.SpectatorCameraTrackerList.Count == 0) + { + TrackerCameraSourceRefButton.interactable = false; + } + + #region LayerMask dropdown setup + + // Get all layer mask name but ignore empty string + AllLayerMaskNameArray = Enumerable.Range(0, 31).Select(LayerMask.LayerToName) + .Where(layer => !string.IsNullOrEmpty(layer)).ToArray(); + + // Init the dropdown sprite color + CameraLayerMaskOnSprite = Sprite.Create( + TextureProcessHelper.CreatePureTexture2DWithColor(CameraLayerMaskDropdownSpriteWidth, + CameraLayerMaskDropdownSpriteHeight, + CameraLayerMaskDropdownOnColor), + new Rect(0f, 0f, CameraLayerMaskDropdownSpriteWidth, CameraLayerMaskDropdownSpriteHeight), + CameraLayerMaskDropdownSpritePivot, + CameraLayerMaskDropdownSpritePixelsPerUnit); + + CameraLayerMaskOffSprite = Sprite.Create( + TextureProcessHelper.CreatePureTexture2DWithColor(CameraLayerMaskDropdownSpriteWidth, + CameraLayerMaskDropdownSpriteHeight, + CameraLayerMaskDropdownOffColor), + new Rect(0f, 0f, CameraLayerMaskDropdownSpriteWidth, CameraLayerMaskDropdownSpriteHeight), + CameraLayerMaskDropdownSpritePivot, CameraLayerMaskDropdownSpritePixelsPerUnit); + + // Call UpdateSpectatorCameraLayerMaskUiData in order to update the dropdown value to default value + // (last one option in dropdown list) but also show the caption text and sprite to the first option. + // This can make every time click the dropdown will call OnSpectatorCameraLayerMaskDropdownValueChanged + // even the previous clicked is equal to the current clicked + UpdateSpectatorCameraLayerMaskUiData(0, LayerMask.NameToLayer(AllLayerMaskNameArray[0]), true); + SpectatorCameraLayerMaskDropdown.onValueChanged.AddListener(OnSpectatorCameraLayerMaskDropdownValueChanged); + + #endregion + + #region UI setup that related to spectator camera FOV + + SpectatorCameraVerticalFOVSlider.minValue = SpectatorCameraHelper.VERTICAL_FOV_MIN; + SpectatorCameraVerticalFOVSlider.maxValue = SpectatorCameraHelper.VERTICAL_FOV_MAX; + if (SpectatorCameraManager.CameraSourceRef == SpectatorCameraHelper.CameraSourceRef.Hmd) + { + SpectatorCameraVerticalFOVSlider.value = + SpectatorCameraManager.VerticalFov; + } + else if (SpectatorCameraManager.CameraSourceRef == SpectatorCameraHelper.CameraSourceRef.Tracker) + { + if (SpectatorCameraManager.IsFollowTrackerExist()) + { + SpectatorCameraVerticalFOVSlider.value = + SpectatorCameraManager.FollowSpectatorCameraTracker.VerticalFov; + } + } + + SpectatorCameraVerticalFOVSlider.onValueChanged.AddListener(OnSpectatorCameraVerticalFOVSliderValueChanged); + SpectatorCameraVerticalFOVText.text = + $"{SpectatorCameraVerticalFOVTextPrefix}{SpectatorCameraVerticalFOVSlider.value}"; + + #endregion + + #endregion + } + + #endregion + + #region Spectator camera setting page functions + + #region Unity UI event functions + + private void OnSpectatorCameraTrackerSourceDropdownValueChanged(int arg0) + { + SpectatorCameraManager.FollowSpectatorCameraTracker = + SpectatorCameraManager.SpectatorCameraTrackerList[arg0]; + NowTrackerSourceRefText.text = + $"{SpectatorCameraTrackerSourceTextPrefix}{SpectatorCameraManager.SpectatorCameraTrackerList[arg0].name}"; + UpdateCameraSourceRefUiData(SpectatorCameraHelper.CameraSourceRef.Tracker); + } + + private void OnSpectatorCameraLayerMaskDropdownValueChanged(int arg0) + { + if (arg0 == SpectatorCameraLayerMaskDropdown.options.Count - 1) + { + // for dropdown value equal to last option which mean reset the dropdown value to default value + // in order to make every time click the dropdown will call OnSpectatorCameraLayerMaskDropdownValueChanged + // even the previous clicked is equal to the current clicked + return; + } + + // Get the corresponding layer mask name and convert it to layer mask + int toggleLayerMaskIndex = LayerMask.NameToLayer(AllLayerMaskNameArray[arg0]); + + LayerMask newLayerMask; + switch (SpectatorCameraManager.CameraSourceRef) + { + case SpectatorCameraHelper.CameraSourceRef.Hmd: + { + newLayerMask = + SpectatorCameraHelper.InverseCameraLayer(SpectatorCameraManager.LayerMask, + toggleLayerMaskIndex); + SpectatorCameraManager.LayerMask = newLayerMask; + } + break; + case SpectatorCameraHelper.CameraSourceRef.Tracker: + { + newLayerMask = + SpectatorCameraHelper.InverseCameraLayer( + SpectatorCameraManager.FollowSpectatorCameraTracker.LayerMask, toggleLayerMaskIndex); + SpectatorCameraManager.FollowSpectatorCameraTracker.LayerMask = newLayerMask; + } + break; + default: + throw new ArgumentOutOfRangeException(); + } + + // Update the layer mask ui data (no need to reload the dropdown list) + UpdateSpectatorCameraLayerMaskUiData(arg0, toggleLayerMaskIndex); + } + + private void OnClickSpectatorCameraCapture360Button() + { + SpectatorCameraManager.CaptureSpectatorCamera360Photo(); + } + + private void OnClickTrackerCameraSourceRefButton() + { + SpectatorCameraManager.CameraSourceRef = SpectatorCameraHelper.CameraSourceRef.Tracker; + UpdateCameraSourceRefUiData(SpectatorCameraManager.CameraSourceRef); + } + + private void OnClickHmdCameraSourceRefButton() + { + SpectatorCameraManager.CameraSourceRef = SpectatorCameraHelper.CameraSourceRef.Hmd; + UpdateCameraSourceRefUiData(SpectatorCameraManager.CameraSourceRef); + } + + private void OnSpectatorCameraVerticalFOVSliderValueChanged(float arg0) + { + switch (SpectatorCameraManager.CameraSourceRef) + { + case SpectatorCameraHelper.CameraSourceRef.Hmd: + { + SpectatorCameraManager.VerticalFov = arg0; + } + break; + case SpectatorCameraHelper.CameraSourceRef.Tracker: + { + if (SpectatorCameraManager.IsFollowTrackerExist()) + { + SpectatorCameraManager.FollowSpectatorCameraTracker.VerticalFov = arg0; + } + } + break; + default: + throw new ArgumentOutOfRangeException(); + } + + UpdateSpectatorCameraVerticalFOVUiData(arg0); + } + + #endregion + + /// + /// Init the spectator camera layer mask dropdown list. This only need to be called when need to re-initiate + /// all the dropdown list data (such as reload/reset setting button is clicked). + /// + private void InitSpectatorCameraLayerMaskDropdown(LayerMask currentLayerMask) + { + var allLayerMaskNameOptionData = AllLayerMaskNameArray.Select(layerName => new TMP_Dropdown.OptionData( + layerName, + (currentLayerMask & (1 << LayerMask.NameToLayer(layerName))) != 0 + ? CameraLayerMaskOnSprite + : CameraLayerMaskOffSprite +#if UNITY_6000_0_OR_NEWER || UNITY_TEXT_MESH_PRO_3_2_0_PRE_10_OR_NEWER + , (currentLayerMask & (1 << LayerMask.NameToLayer(layerName))) != 0 + ? CameraLayerMaskDropdownOnColor + : CameraLayerMaskDropdownOffColor +#endif + ) + ).ToList(); + allLayerMaskNameOptionData.Add(CameraLayerMaskDropdownLastOptionData); + + SpectatorCameraLayerMaskDropdown.ClearOptions(); + SpectatorCameraLayerMaskDropdown.AddOptions(allLayerMaskNameOptionData); + + UpdateSpectatorCameraLayerMaskUiData(0, LayerMask.NameToLayer(AllLayerMaskNameArray[0])); + } + + /// + /// Update the UI element which related to spectator camera layer mask dropdown + /// + /// Int. The index in dropdown list which is clicked + /// Int. The corresponding layer index of dropdownUpdateIndex + /// Bool. Request to reload the data of dropdown list + private void UpdateSpectatorCameraLayerMaskUiData( + in int dropdownUpdateIndex, + in int toggleLayerMaskIndex, + in bool reloadListData = false) + { + LayerMask currentLayerMask; + switch (SpectatorCameraManager.CameraSourceRef) + { + case SpectatorCameraHelper.CameraSourceRef.Hmd: + { + currentLayerMask = SpectatorCameraManager.LayerMask; + } + break; + case SpectatorCameraHelper.CameraSourceRef.Tracker: + { + if (SpectatorCameraManager.IsFollowTrackerExist()) + { + currentLayerMask = + SpectatorCameraManager.FollowSpectatorCameraTracker.LayerMask; + } + else + { + return; + } + } + break; + default: + throw new ArgumentOutOfRangeException(); + } + + if (reloadListData) // reload all data in dropdown list + { + // this will also recall UpdateSpectatorCameraLayerMaskUiData once again but with reloadListData = false + InitSpectatorCameraLayerMaskDropdown(currentLayerMask); + } + else // just update the dropdown item in the dropdown list + { + // update the dropdown value to default value in order to make every time click the dropdown will call + // "OnSpectatorCameraLayerMaskDropdownValueChanged" function even the previous clicked is equal to the + // current clicked + SpectatorCameraLayerMaskDropdown.value = SpectatorCameraLayerMaskDropdown.options.Count - 1; + + bool isLayerMaskOn = (currentLayerMask & (1 << toggleLayerMaskIndex)) != 0; + + // update the dropdown item in the dropdown list + SpectatorCameraLayerMaskDropdown.options[dropdownUpdateIndex].image = + isLayerMaskOn ? CameraLayerMaskOnSprite : CameraLayerMaskOffSprite; + + // update the dropdown show data + SpectatorCameraLayerMaskDropdown.captionText.text = AllLayerMaskNameArray[dropdownUpdateIndex]; + // the captionImage(image component) in dropdown component will automatically hide when + // save the project in unity editor every time (don't know why), so enable it manually + SpectatorCameraLayerMaskDropdown.captionImage.enabled = true; + SpectatorCameraLayerMaskDropdown.captionImage.sprite = + isLayerMaskOn ? CameraLayerMaskOnSprite : CameraLayerMaskOffSprite; + } + } + + /// + /// Update the UI element which related to spectator camera source reference + /// + /// The camera source reference value + private void UpdateCameraSourceRefUiData(in SpectatorCameraHelper.CameraSourceRef newValue) + { + NowCameraSourceRefText.text = $"{NowCameraSourceRefTextPrefix}{newValue.ToString()}"; + + // update layer mask, tracker dropdown interactive, fov ui data according to the new camera source ref + switch (newValue) + { + case SpectatorCameraHelper.CameraSourceRef.Hmd: + { + // update layer mask dropdown + InitSpectatorCameraLayerMaskDropdown(SpectatorCameraManager.LayerMask); + // update tracker dropdown interactive + TrackerSourceDropdown.interactable = false; + // update fov ui data + SpectatorCameraVerticalFOVSlider.value = SpectatorCameraManager.VerticalFov; + SpectatorCameraVerticalFOVText.text = + $"{SpectatorCameraVerticalFOVTextPrefix}{SpectatorCameraManager.VerticalFov}"; + } + break; + case SpectatorCameraHelper.CameraSourceRef.Tracker: + { + // update layer mask dropdown + InitSpectatorCameraLayerMaskDropdown(SpectatorCameraManager.FollowSpectatorCameraTracker.LayerMask); + // update tracker dropdown interactive + TrackerSourceDropdown.interactable = true; + // update fov ui data + if (SpectatorCameraManager.IsFollowTrackerExist()) + { + SpectatorCameraVerticalFOVSlider.value = + SpectatorCameraManager.FollowSpectatorCameraTracker.VerticalFov; + SpectatorCameraVerticalFOVText.text = + $"{SpectatorCameraVerticalFOVTextPrefix}{SpectatorCameraManager.FollowSpectatorCameraTracker.VerticalFov}"; + } + } + break; + default: + throw new ArgumentOutOfRangeException(nameof(newValue), newValue, null); + } + } + + /// + /// Update the UI element which related to spectator camera vertical FOV + /// + /// Float. The FOV value + public void UpdateSpectatorCameraVerticalFOVUiData(in float newValue) + { + SpectatorCameraVerticalFOVSlider.value = newValue; + SpectatorCameraVerticalFOVText.text = $"{SpectatorCameraVerticalFOVTextPrefix}{newValue}"; + } + + #endregion + + #region Interaction setting page function (Unity UI event functions) + + private void OnClickThumbstickEffectFOVButton() + { + ObjectInteractionManager.ChangeThumbstickEffect2FOV(); + ThumbstickEffectOptionText.text = + $"{NowInteractionModeTextPrefix}{ObjectInteractionManager.ThumbstickEffectOption.ToString()}"; + } + + private void OnClickThumbstickEffectRotationButton() + { + ObjectInteractionManager.ChangeThumbstickEffect2Rotation(); + ThumbstickEffectOptionText.text = + $"{NowInteractionModeTextPrefix}{ObjectInteractionManager.ThumbstickEffectOption.ToString()}"; + } + + private void OnClickThumbstickEffectPositionButton() + { + ObjectInteractionManager.ChangeThumbstickEffect2Position(); + ThumbstickEffectOptionText.text = + $"{NowInteractionModeTextPrefix}{ObjectInteractionManager.ThumbstickEffectOption.ToString()}"; + } + + private void OnAffectYAxisToggleValueChanged(bool arg0) + { + if (arg0) + { + ObjectInteractionManager.EnableAffectYAxisWhenThumbstickHorizontalMove(); + } + else + { + ObjectInteractionManager.DisableAffectYAxisWhenThumbstickHorizontalMove(); + } + } + + private void OnZoomInteractionSpeedSliderValueChanged(float arg0) + { + ObjectInteractionManager.ChangeInteractionSpeed( + ObjectInteractionManager.ThumbstickEffectObject.FOV, + arg0); + ZoomInteractionSpeedText.text = + $"{ZoomInteractionSpeedTextPrefix}{ObjectInteractionManager.ZoomInteractionSpeed}"; + } + + private void OnRotationInteractionSpeedSliderValueChanged(float arg0) + { + ObjectInteractionManager.ChangeInteractionSpeed( + ObjectInteractionManager.ThumbstickEffectObject.Rotation, + arg0); + RotationInteractionSpeedText.text = + $"{RotationInteractionSpeedTextPrefix}{ObjectInteractionManager.RotationInteractionSpeed}"; + } + + private void OnMovementInteractionSpeedSliderValueChanged(float arg0) + { + ObjectInteractionManager.ChangeInteractionSpeed( + ObjectInteractionManager.ThumbstickEffectObject.Position, + arg0); + MovementInteractionSpeedText.text = + $"{MovementInteractionSpeedTextPrefix}{ObjectInteractionManager.MovementInteractionSpeed}"; + } + + #endregion + + #region Main page functions (Unity UI event functions) + + private void OnClickSpectatorCameraSettingButton() + { + PlayAudio(); + + MainPage.SetActive(false); + SpectatorCameraSettingPage.SetActive(true); + InteractionSettingPage.SetActive(false); + LicensePage.SetActive(false); + } + + private void OnClickInteractionSettingButton() + { + PlayAudio(); + + MainPage.SetActive(false); + SpectatorCameraSettingPage.SetActive(false); + InteractionSettingPage.SetActive(true); + LicensePage.SetActive(false); + } + + private void OnClickLoadSecondSceneButton() + { + PlayAudio(); + + if (DoesSceneExist(LoadSecondSceneName)) + { + SceneManager.LoadScene(LoadSecondSceneName); + } + else + { + Debug.LogWarning($"{LoadSecondSceneName} scene not found. Please add it in build setting first."); + } + + return; + + bool DoesSceneExist(string loadSceneName) + { + if (string.IsNullOrEmpty(loadSceneName)) + { + return false; + } + + for (int i = 0; i < SceneManager.sceneCountInBuildSettings; i++) + { + var scenePath = SceneUtility.GetScenePathByBuildIndex(i); + var lastSlash = scenePath.LastIndexOf("/", StringComparison.Ordinal); + var sceneName = scenePath.Substring(lastSlash + 1, + scenePath.LastIndexOf(".", StringComparison.Ordinal) - lastSlash - 1); + + if (string.Compare(loadSceneName, sceneName, StringComparison.OrdinalIgnoreCase) == 0) + { + return true; + } + } + + return false; + } + } + + private void OnClickLicenseButton() + { + PlayAudio(); + + MainPage.SetActive(false); + SpectatorCameraSettingPage.SetActive(false); + InteractionSettingPage.SetActive(false); + LicensePage.SetActive(true); + } + + private void OnClickExitButton() + { + PlayAudio(); +#if UNITY_EDITOR + EditorApplication.ExitPlaymode(); +#else + if (Application.productName == "VRTestApp") + { + Destroy(SpectatorCameraManager.gameObject); + + try + { + SceneManager.LoadScene("VRTestApp"); + } + catch + { + Application.Quit(); + } + } + else + { + Application.Quit(); + } +#endif + } + + #endregion + + #region General functions + + /// + /// Play the audio at the XRHeadCamera position + /// + private void PlayAudio() + { + AudioSource.PlayClipAtPoint(UIAudioClip, XRHeadCamera.transform.position); + } + + /// + /// Call when Back to main page + /// + private void OnClickBackButton() + { + MainPage.SetActive(true); + InteractionSettingPage.SetActive(false); + SpectatorCameraSettingPage.SetActive(false); + LicensePage.SetActive(false); + } + + #endregion + } +} \ No newline at end of file diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/UIManager.cs.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/UIManager.cs.meta new file mode 100644 index 0000000..f892515 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Scripts/UIManager.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6856b5c8fefe73a41b2ac14380074270 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Shaders.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Shaders.meta new file mode 100644 index 0000000..82ff791 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Shaders.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 51b3bb87e03d9a4448ad4175288e9922 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Shaders/SimpleTeleportHighlight.shader b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Shaders/SimpleTeleportHighlight.shader new file mode 100644 index 0000000..6a62521 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Shaders/SimpleTeleportHighlight.shader @@ -0,0 +1,59 @@ +// Copyright HTC Corporation All Rights Reserved. + +Shader "HTC/SimpleTeleportHighlight" +{ + Properties + { + _TintColor("Tint Color", Color) = (1,1,1,1) + _MaxTransparency("Min Transparency", Range(0.0,1.0)) = 0.0 + _MinTransparency("Max Transparency", Range(0.0,1.0)) = 1.0 + _AlphaRamp("Alpha Ramp", Range(0.0,10.0)) = 1.0 + } + SubShader + { + Tags {"Queue" = "Transparent" "RenderType" = "Transparent" } + LOD 100 + ZWrite Off + Blend SrcAlpha OneMinusSrcAlpha + Pass + { + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + #include "UnityCG.cginc" + struct appdata + { + float4 vertex : POSITION; + float2 uv : TEXCOORD0; + UNITY_VERTEX_INPUT_INSTANCE_ID + }; + struct v2f + { + float2 uv : TEXCOORD0; + float4 vertex : SV_POSITION; + UNITY_VERTEX_OUTPUT_STEREO + }; + float4 _TintColor; + float _MaxTransparency; + float _MinTransparency; + float _AlphaRamp; + v2f vert(appdata v) + { + v2f o; + UNITY_SETUP_INSTANCE_ID(v) + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); + o.vertex = UnityObjectToClipPos(v.vertex); + o.uv = v.uv; + return o; + } + fixed4 frag(v2f i) : SV_Target + { + fixed4 col; + float alphaVal = min(1.0, lerp(_MaxTransparency, _MinTransparency, 1.0 - i.uv.y) * _AlphaRamp); + col.rgba = fixed4(_TintColor.rgb, alphaVal); + return col; + } + ENDCG + } + } +} diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Shaders/SimpleTeleportHighlight.shader.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Shaders/SimpleTeleportHighlight.shader.meta new file mode 100644 index 0000000..e681cf4 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/AdvDemo/Shaders/SimpleTeleportHighlight.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 7ca1792758cb78e41a96844f8613e35e +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/Demo.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/Demo.meta new file mode 100644 index 0000000..ab799bb --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/Demo.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c7970b3efb2a7ed409b9582e7879f928 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/Demo/Materials.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/Demo/Materials.meta new file mode 100644 index 0000000..f082a0b --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/Demo/Materials.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 25118bfdf141afa4d9bcfbdc4bca139b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/Common/Models/SelfTracker/Material/Green.mat b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/Demo/Materials/Green.mat similarity index 92% rename from com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/Common/Models/SelfTracker/Material/Green.mat rename to com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/Demo/Materials/Green.mat index adc37dd..d5a21b2 100644 --- a/com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/Common/Models/SelfTracker/Material/Green.mat +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/Demo/Materials/Green.mat @@ -1,78 +1,80 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!21 &2100000 -Material: - serializedVersion: 6 - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: Green - m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} - m_ShaderKeywords: - m_LightmapFlags: 4 - m_EnableInstancingVariants: 0 - m_DoubleSidedGI: 0 - m_CustomRenderQueue: -1 - stringTagMap: {} - disabledShaderPasses: [] - m_SavedProperties: - serializedVersion: 3 - m_TexEnvs: - - _BumpMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailAlbedoMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailMask: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailNormalMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _EmissionMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _MainTex: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _MetallicGlossMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _OcclusionMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _ParallaxMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - m_Floats: - - _BumpScale: 1 - - _Cutoff: 0.5 - - _DetailNormalMapScale: 1 - - _DstBlend: 0 - - _GlossMapScale: 1 - - _Glossiness: 0.5 - - _GlossyReflections: 1 - - _Metallic: 0 - - _Mode: 0 - - _OcclusionStrength: 1 - - _Parallax: 0.02 - - _SmoothnessTextureChannel: 0 - - _SpecularHighlights: 1 - - _SrcBlend: 1 - - _UVSec: 0 - - _ZWrite: 1 - m_Colors: - - _Color: {r: 0.3455565, g: 1, b: 0, a: 1} - - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - m_BuildTextureStacks: [] +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Green + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ValidKeywords: [] + m_InvalidKeywords: [] + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _BumpScale: 1 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _UVSec: 0 + - _ZWrite: 1 + m_Colors: + - _Color: {r: 0, g: 1, b: 0.12076187, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + m_BuildTextureStacks: [] diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/Demo/Materials/Green.mat.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/Demo/Materials/Green.mat.meta new file mode 100644 index 0000000..cf6551c --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/Demo/Materials/Green.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: cb2baad133da5124ca67d206c30b2206 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Materials/Red.mat b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/Demo/Materials/Red.mat similarity index 95% rename from com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Materials/Red.mat rename to com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/Demo/Materials/Red.mat index e2bf00e..d48345e 100644 --- a/com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Materials/Red.mat +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/Demo/Materials/Red.mat @@ -2,14 +2,15 @@ %TAG !u! tag:unity3d.com,2011: --- !u!21 &2100000 Material: - serializedVersion: 6 + serializedVersion: 8 m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_Name: Red m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} - m_ShaderKeywords: + m_ValidKeywords: [] + m_InvalidKeywords: [] m_LightmapFlags: 4 m_EnableInstancingVariants: 0 m_DoubleSidedGI: 0 @@ -55,6 +56,7 @@ Material: m_Texture: {fileID: 0} m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} + m_Ints: [] m_Floats: - _BumpScale: 1 - _Cutoff: 0.5 diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/Demo/Materials/Red.mat.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/Demo/Materials/Red.mat.meta new file mode 100644 index 0000000..840cbba --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/Demo/Materials/Red.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d859ff0236f4e774dbe9a2b9c8a063e6 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/Demo/Materials/Spectator Camera Debug.mat b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/Demo/Materials/Spectator Camera Debug.mat new file mode 100644 index 0000000..4f0fa1b --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/Demo/Materials/Spectator Camera Debug.mat @@ -0,0 +1,95 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Spectator Camera Debug + m_Shader: {fileID: 10752, guid: 0000000000000000f000000000000000, type: 0} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: [] + m_InvalidKeywords: [] + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _BumpScale: 1 + - _ColorMask: 15 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _Stencil: 0 + - _StencilComp: 8 + - _StencilOp: 0 + - _StencilReadMask: 255 + - _StencilWriteMask: 255 + - _Strength: 0.2 + - _UVSec: 0 + - _UseUIAlphaClip: 0 + - _ZWrite: 1 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + m_BuildTextureStacks: [] diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/Demo/Materials/Spectator Camera Debug.mat.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/Demo/Materials/Spectator Camera Debug.mat.meta new file mode 100644 index 0000000..e5bb523 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/Demo/Materials/Spectator Camera Debug.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 08727ef98368b6d46b9189c4fb8c5289 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/Demo/Scenes.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/Demo/Scenes.meta new file mode 100644 index 0000000..d437ad1 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/Demo/Scenes.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 955d61cee2e57b742bac4963031fa745 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/Demo/Scenes/Simple_Demo_1.unity b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/Demo/Scenes/Simple_Demo_1.unity new file mode 100644 index 0000000..6a846cc --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/Demo/Scenes/Simple_Demo_1.unity @@ -0,0 +1,2290 @@ +%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.18028378, g: 0.22571412, b: 0.30692285, 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 &37890532 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 37890533} + m_Layer: 0 + m_Name: Camera Offset + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &37890533 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 37890532} + 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: 1371009916} + - {fileID: 1105573789} + - {fileID: 1278923827} + m_Father: {fileID: 1811955439} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &71340812 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 71340814} + - component: {fileID: 71340813} + m_Layer: 0 + m_Name: Second Scene Load Test + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &71340813 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 71340812} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a4e27405370d6a142b924d6344af355d, type: 3} + m_Name: + m_EditorClassIdentifier: + k__BackingField: Simple_Demo_2 +--- !u!4 &71340814 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 71340812} + 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 &324255858 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 324255859} + - component: {fileID: 324255861} + - component: {fileID: 324255860} + m_Layer: 0 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &324255859 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 324255858} + m_LocalRotation: {x: 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: 717172458} + m_Father: {fileID: 1816128638} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &324255860 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 324255858} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1344c3c82d62a2a41a3576d8abb8e3ea, 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_Texture: {fileID: 0} + m_UVRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 +--- !u!222 &324255861 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 324255858} + m_CullTransparentMesh: 1 +--- !u!1 &439204218 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 439204220} + - component: {fileID: 439204219} + m_Layer: 0 + m_Name: Spectator Camera Based Manager + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &439204219 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 439204218} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 47a6afbbc5e705041b2851122f306f76, type: 3} + m_Name: + m_EditorClassIdentifier: + spectatorCameraViewMaterial: {fileID: 2100000, guid: 08727ef98368b6d46b9189c4fb8c5289, type: 2} + isRecording: 0 + isDebugSpectatorCamera: 0 +--- !u!4 &439204220 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 439204218} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -2} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1640055891} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &717172457 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 717172458} + m_Layer: 0 + m_Name: Text root + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &717172458 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 717172457} + m_LocalRotation: {x: 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: 1447139475} + m_Father: {fileID: 324255859} + 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: 1280, y: 720} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &816123856 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 816123858} + - component: {fileID: 816123857} + 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 &816123857 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 816123856} + 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 &816123858 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 816123856} + serializedVersion: 2 + m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} + m_LocalPosition: {x: 0, y: 2, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1417258183} + m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} +--- !u!1001 &820310354 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1278923827} + m_Modifications: + - target: {fileID: 568889819745993646, guid: 0ada4cea3fe9ca044946db2c867682eb, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 568889819745993646, guid: 0ada4cea3fe9ca044946db2c867682eb, type: 3} + propertyPath: m_LocalPosition.y + value: 0.0241 + objectReference: {fileID: 0} + - target: {fileID: 568889819745993646, guid: 0ada4cea3fe9ca044946db2c867682eb, type: 3} + propertyPath: m_LocalPosition.z + value: 0.0487 + objectReference: {fileID: 0} + - target: {fileID: 568889819745993646, guid: 0ada4cea3fe9ca044946db2c867682eb, type: 3} + propertyPath: m_LocalRotation.w + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 568889819745993646, guid: 0ada4cea3fe9ca044946db2c867682eb, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 568889819745993646, guid: 0ada4cea3fe9ca044946db2c867682eb, type: 3} + propertyPath: m_LocalRotation.y + value: 0.9659259 + objectReference: {fileID: 0} + - target: {fileID: 568889819745993646, guid: 0ada4cea3fe9ca044946db2c867682eb, type: 3} + propertyPath: m_LocalRotation.z + value: 0.258819 + objectReference: {fileID: 0} + - target: {fileID: 568889819745993646, guid: 0ada4cea3fe9ca044946db2c867682eb, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: -30 + objectReference: {fileID: 0} + - target: {fileID: 568889819745993646, guid: 0ada4cea3fe9ca044946db2c867682eb, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 180 + objectReference: {fileID: 0} + - target: {fileID: 568889819745993646, guid: 0ada4cea3fe9ca044946db2c867682eb, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 913890882870810900, guid: 0ada4cea3fe9ca044946db2c867682eb, type: 3} + propertyPath: m_Name + value: Focus3_Right + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 0ada4cea3fe9ca044946db2c867682eb, type: 3} +--- !u!4 &820310355 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 568889819745993646, guid: 0ada4cea3fe9ca044946db2c867682eb, type: 3} + m_PrefabInstance: {fileID: 820310354} + m_PrefabAsset: {fileID: 0} +--- !u!1 &831633138 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 831633139} + - component: {fileID: 831633142} + - component: {fileID: 831633141} + - component: {fileID: 831633140} + m_Layer: 0 + m_Name: Green Cube + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &831633139 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 831633138} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 3, y: 0.5, z: 3} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1417258183} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &831633140 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 831633138} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &831633141 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 831633138} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: cb2baad133da5124ca67d206c30b2206, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &831633142 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 831633138} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &880373064 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 880373067} + - component: {fileID: 880373066} + - component: {fileID: 880373065} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &880373065 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 880373064} + 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 &880373066 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 880373064} + 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 &880373067 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 880373064} + 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: 1640055891} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1105573788 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1105573789} + - component: {fileID: 1105573793} + - component: {fileID: 1105573792} + - component: {fileID: 1105573791} + - component: {fileID: 1105573790} + m_Layer: 0 + m_Name: LeftHand Controller + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1105573789 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1105573788} + 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: 1439351009} + m_Father: {fileID: 37890533} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1105573790 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1105573788} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e988983f96fe1dd48800bcdfc82f23e9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_LineWidth: 0.02 + m_OverrideInteractorLineLength: 1 + m_LineLength: 10 + m_WidthCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_ValidColorGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_ColorSpace: -1 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + m_InvalidColorGradient: + serializedVersion: 2 + key0: {r: 1, g: 0, b: 0, a: 1} + key1: {r: 1, g: 0, b: 0, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_ColorSpace: -1 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + m_SmoothMovement: 0 + m_FollowTightness: 10 + m_SnapThresholdDistance: 10 + m_Reticle: {fileID: 0} + m_StopLineAtFirstRaycastHit: 1 +--- !u!120 &1105573791 +LineRenderer: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1105573788} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 0 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10306, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 5 + m_Positions: [] + m_Parameters: + serializedVersion: 3 + widthMultiplier: 0.02 + widthCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorGradient: + serializedVersion: 2 + key0: {r: 0, g: 0, b: 1, a: 1} + key1: {r: 0, g: 0, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_ColorSpace: -1 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + numCornerVertices: 4 + numCapVertices: 4 + alignment: 0 + textureMode: 0 + textureScale: {x: 1, y: 1} + shadowBias: 0.5 + generateLightingData: 0 + m_MaskInteraction: 0 + m_UseWorldSpace: 1 + m_Loop: 0 + m_ApplyActiveColorSpace: 1 +--- !u!114 &1105573792 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1105573788} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6803edce0201f574f923fd9d10e5b30a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_InteractionManager: {fileID: 1952085974} + m_InteractionLayerMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_AttachTransform: {fileID: 0} + m_StartingSelectedInteractable: {fileID: 0} + m_OnHoverEnter: + m_PersistentCalls: + m_Calls: [] + m_OnHoverExit: + m_PersistentCalls: + m_Calls: [] + m_OnSelectEnter: + m_PersistentCalls: + m_Calls: [] + m_OnSelectExit: + m_PersistentCalls: + m_Calls: [] + m_SelectActionTrigger: 1 + m_HideControllerOnSelect: 0 + m_PlayAudioClipOnSelectEnter: 0 + m_AudioClipForOnSelectEnter: {fileID: 0} + m_PlayAudioClipOnSelectExit: 0 + m_AudioClipForOnSelectExit: {fileID: 0} + m_PlayAudioClipOnHoverEnter: 0 + m_AudioClipForOnHoverEnter: {fileID: 0} + m_PlayAudioClipOnHoverExit: 0 + m_AudioClipForOnHoverExit: {fileID: 0} + m_PlayHapticsOnSelectEnter: 0 + m_HapticSelectEnterIntensity: 0 + m_HapticSelectEnterDuration: 0 + m_PlayHapticsOnSelectExit: 0 + m_HapticSelectExitIntensity: 0 + m_HapticSelectExitDuration: 0 + m_PlayHapticsOnHoverEnter: 0 + m_HapticHoverEnterIntensity: 0 + m_HapticHoverEnterDuration: 0 + m_PlayHapticsOnHoverExit: 0 + m_HapticHoverExitIntensity: 0 + m_HapticHoverExitDuration: 0 + m_LineType: 0 + m_MaxRaycastDistance: 30 + m_ReferenceFrame: {fileID: 0} + m_Velocity: 16 + m_Acceleration: 9.8 + m_AdditionalFlightTime: 0.5 + m_EndPointDistance: 30 + m_EndPointHeight: -10 + m_ControlPointDistance: 10 + m_ControlPointHeight: 5 + m_SampleFrequency: 20 + m_HitDetectionType: 0 + m_SphereCastRadius: 0 + m_RaycastMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RaycastTriggerInteraction: 1 + m_HoverToSelect: 0 + m_HoverTimeToSelect: 0.5 + m_EnableUIInteraction: 1 +--- !u!114 &1105573793 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1105573788} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1ae26e19cd956134bbdf3c6f65bf393a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UpdateTrackingType: 0 + m_EnableInputActions: 1 + m_PoseProvider: {fileID: 0} + m_ControllerNode: 4 + m_SelectUsage: 3 + m_ActivateUsage: 2 + m_UIPressUsage: 2 + m_AxisToPressThreshold: 0.1 + m_ModelPrefab: {fileID: 0} + m_ModelTransform: {fileID: 0} + m_AnimateModel: 1 + m_ModelSelectTransition: + m_ModelDeSelectTransition: +--- !u!1 &1278923826 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1278923827} + - component: {fileID: 1278923831} + - component: {fileID: 1278923830} + - component: {fileID: 1278923829} + - component: {fileID: 1278923828} + m_Layer: 0 + m_Name: RightHand Controller + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1278923827 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1278923826} + 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: 820310355} + m_Father: {fileID: 37890533} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1278923828 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1278923826} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e988983f96fe1dd48800bcdfc82f23e9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_LineWidth: 0.02 + m_OverrideInteractorLineLength: 1 + m_LineLength: 10 + m_WidthCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_ValidColorGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_ColorSpace: -1 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + m_InvalidColorGradient: + serializedVersion: 2 + key0: {r: 1, g: 0, b: 0, a: 1} + key1: {r: 1, g: 0, b: 0, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_ColorSpace: -1 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + m_SmoothMovement: 0 + m_FollowTightness: 10 + m_SnapThresholdDistance: 10 + m_Reticle: {fileID: 0} + m_StopLineAtFirstRaycastHit: 1 +--- !u!120 &1278923829 +LineRenderer: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1278923826} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 0 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10306, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 5 + m_Positions: [] + m_Parameters: + serializedVersion: 3 + widthMultiplier: 0.02 + widthCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorGradient: + serializedVersion: 2 + key0: {r: 0, g: 0, b: 1, a: 1} + key1: {r: 0, g: 0, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_ColorSpace: -1 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + numCornerVertices: 4 + numCapVertices: 4 + alignment: 0 + textureMode: 0 + textureScale: {x: 1, y: 1} + shadowBias: 0.5 + generateLightingData: 0 + m_MaskInteraction: 0 + m_UseWorldSpace: 1 + m_Loop: 0 + m_ApplyActiveColorSpace: 1 +--- !u!114 &1278923830 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1278923826} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6803edce0201f574f923fd9d10e5b30a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_InteractionManager: {fileID: 1952085974} + m_InteractionLayerMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_AttachTransform: {fileID: 0} + m_StartingSelectedInteractable: {fileID: 0} + m_OnHoverEnter: + m_PersistentCalls: + m_Calls: [] + m_OnHoverExit: + m_PersistentCalls: + m_Calls: [] + m_OnSelectEnter: + m_PersistentCalls: + m_Calls: [] + m_OnSelectExit: + m_PersistentCalls: + m_Calls: [] + m_SelectActionTrigger: 1 + m_HideControllerOnSelect: 0 + m_PlayAudioClipOnSelectEnter: 0 + m_AudioClipForOnSelectEnter: {fileID: 0} + m_PlayAudioClipOnSelectExit: 0 + m_AudioClipForOnSelectExit: {fileID: 0} + m_PlayAudioClipOnHoverEnter: 0 + m_AudioClipForOnHoverEnter: {fileID: 0} + m_PlayAudioClipOnHoverExit: 0 + m_AudioClipForOnHoverExit: {fileID: 0} + m_PlayHapticsOnSelectEnter: 0 + m_HapticSelectEnterIntensity: 0 + m_HapticSelectEnterDuration: 0 + m_PlayHapticsOnSelectExit: 0 + m_HapticSelectExitIntensity: 0 + m_HapticSelectExitDuration: 0 + m_PlayHapticsOnHoverEnter: 0 + m_HapticHoverEnterIntensity: 0 + m_HapticHoverEnterDuration: 0 + m_PlayHapticsOnHoverExit: 0 + m_HapticHoverExitIntensity: 0 + m_HapticHoverExitDuration: 0 + m_LineType: 0 + m_MaxRaycastDistance: 30 + m_ReferenceFrame: {fileID: 0} + m_Velocity: 16 + m_Acceleration: 9.8 + m_AdditionalFlightTime: 0.5 + m_EndPointDistance: 30 + m_EndPointHeight: -10 + m_ControlPointDistance: 10 + m_ControlPointHeight: 5 + m_SampleFrequency: 20 + m_HitDetectionType: 0 + m_SphereCastRadius: 0 + m_RaycastMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RaycastTriggerInteraction: 1 + m_HoverToSelect: 0 + m_HoverTimeToSelect: 0.5 + m_EnableUIInteraction: 1 +--- !u!114 &1278923831 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1278923826} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1ae26e19cd956134bbdf3c6f65bf393a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UpdateTrackingType: 0 + m_EnableInputActions: 1 + m_PoseProvider: {fileID: 0} + m_ControllerNode: 5 + m_SelectUsage: 3 + m_ActivateUsage: 2 + m_UIPressUsage: 2 + m_AxisToPressThreshold: 0.1 + m_ModelPrefab: {fileID: 0} + m_ModelTransform: {fileID: 0} + m_AnimateModel: 1 + m_ModelSelectTransition: + m_ModelDeSelectTransition: +--- !u!1 &1351286171 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1351286176} + - component: {fileID: 1351286175} + - component: {fileID: 1351286174} + - component: {fileID: 1351286173} + - component: {fileID: 1351286177} + m_Layer: 0 + m_Name: Debug Cube + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!65 &1351286173 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1351286171} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1351286174 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1351286171} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1351286175 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1351286171} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &1351286176 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1351286171} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0.6, z: 2} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1417258183} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1351286177 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1351286171} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 69583d931f8502647afcc5c3266f4d2c, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &1371009913 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1371009916} + - component: {fileID: 1371009914} + - component: {fileID: 1371009915} + m_Layer: 0 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!20 &1371009914 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1371009913} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_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.1 + far clip plane: 1000 + field of view: 60 + orthographic: 0 + orthographic size: 5 + m_Depth: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!114 &1371009915 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1371009913} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5a2a9c34df4095f47b9ca8f975175f5b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Device: 0 + m_PoseSource: 2 + m_PoseProviderComponent: {fileID: 0} + m_TrackingType: 0 + m_UpdateType: 0 + m_UseRelativeTransform: 0 +--- !u!4 &1371009916 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1371009913} + 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: 37890533} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1417258182 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1417258183} + m_Layer: 0 + m_Name: '[ Env ]' + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1417258183 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1417258182} + 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: 816123858} + - {fileID: 2105788420} + - {fileID: 1816128638} + - {fileID: 1950217765} + - {fileID: 831633139} + - {fileID: 1351286176} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &1439351008 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1105573789} + m_Modifications: + - target: {fileID: 1170470780012416826, guid: 4db7b3025e9268b4582aa5c77f167c96, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1170470780012416826, guid: 4db7b3025e9268b4582aa5c77f167c96, type: 3} + propertyPath: m_LocalPosition.y + value: 0.0241 + objectReference: {fileID: 0} + - target: {fileID: 1170470780012416826, guid: 4db7b3025e9268b4582aa5c77f167c96, type: 3} + propertyPath: m_LocalPosition.z + value: 0.0487 + objectReference: {fileID: 0} + - target: {fileID: 1170470780012416826, guid: 4db7b3025e9268b4582aa5c77f167c96, type: 3} + propertyPath: m_LocalRotation.w + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1170470780012416826, guid: 4db7b3025e9268b4582aa5c77f167c96, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1170470780012416826, guid: 4db7b3025e9268b4582aa5c77f167c96, type: 3} + propertyPath: m_LocalRotation.y + value: 0.9659259 + objectReference: {fileID: 0} + - target: {fileID: 1170470780012416826, guid: 4db7b3025e9268b4582aa5c77f167c96, type: 3} + propertyPath: m_LocalRotation.z + value: 0.258819 + objectReference: {fileID: 0} + - target: {fileID: 1170470780012416826, guid: 4db7b3025e9268b4582aa5c77f167c96, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: -30 + objectReference: {fileID: 0} + - target: {fileID: 1170470780012416826, guid: 4db7b3025e9268b4582aa5c77f167c96, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 180 + objectReference: {fileID: 0} + - target: {fileID: 1170470780012416826, guid: 4db7b3025e9268b4582aa5c77f167c96, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1978637512304563584, guid: 4db7b3025e9268b4582aa5c77f167c96, type: 3} + propertyPath: m_Name + value: Focus3_Left + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 4db7b3025e9268b4582aa5c77f167c96, type: 3} +--- !u!4 &1439351009 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 1170470780012416826, guid: 4db7b3025e9268b4582aa5c77f167c96, type: 3} + m_PrefabInstance: {fileID: 1439351008} + m_PrefabAsset: {fileID: 0} +--- !u!1 &1447139474 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1447139475} + - component: {fileID: 1447139477} + - component: {fileID: 1447139476} + 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 &1447139475 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1447139474} + m_LocalRotation: {x: 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: 717172458} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1447139476 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1447139474} + 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 add the "Simple_Demo_2" scene in the building setting for multiple-scene + testing. Then, you can press the trigger button on the left controller to switch + to the second scene. + 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: 60 + m_fontSizeBase: 60 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 1 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 50 + 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 &1447139477 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1447139474} + m_CullTransparentMesh: 1 +--- !u!1 &1640055890 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1640055891} + m_Layer: 0 + m_Name: '[ Manager ]' + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1640055891 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1640055890} + 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: 880373067} + - {fileID: 1952085975} + - {fileID: 439204220} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1811955438 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1811955439} + - component: {fileID: 1811955440} + m_Layer: 0 + m_Name: XR Rig + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1811955439 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1811955438} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -2} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 37890533} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1811955440 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1811955438} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7448815bd5148434682b3d931066cd10, type: 3} + m_Name: + m_EditorClassIdentifier: + m_RigBaseGameObject: {fileID: 1811955438} + m_CameraFloorOffsetObject: {fileID: 37890532} + m_CameraGameObject: {fileID: 1371009913} + m_TrackingOriginMode: 2 + m_TrackingSpace: 3 + m_CameraYOffset: 1.36144 +--- !u!1 &1816128637 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1816128638} + - component: {fileID: 1816128641} + - component: {fileID: 1816128640} + - component: {fileID: 1816128639} + m_Layer: 0 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1816128638 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1816128637} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 2} + m_LocalScale: {x: 0.001, y: 0.001, z: 0.001} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 324255859} + m_Father: {fileID: 1417258183} + 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: 2} + m_SizeDelta: {x: 1920, y: 1080} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1816128639 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1816128637} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &1816128640 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1816128637} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 1 +--- !u!223 &1816128641 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1816128637} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 1371009914} + 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!1 &1950217764 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1950217765} + - component: {fileID: 1950217768} + - component: {fileID: 1950217767} + - component: {fileID: 1950217766} + m_Layer: 0 + m_Name: Red Cube + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1950217765 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1950217764} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -3, y: 0.5, z: 3} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1417258183} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &1950217766 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1950217764} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1950217767 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1950217764} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: d859ff0236f4e774dbe9a2b9c8a063e6, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1950217768 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1950217764} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1952085973 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1952085975} + - component: {fileID: 1952085974} + m_Layer: 0 + m_Name: XR Interaction Manager + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1952085974 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1952085973} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 83e4e6cca11330d4088d729ab4fc9d9f, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!4 &1952085975 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1952085973} + 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: 1640055891} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &2105788419 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2105788420} + - component: {fileID: 2105788423} + - component: {fileID: 2105788422} + - component: {fileID: 2105788421} + m_Layer: 0 + m_Name: Plane + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2105788420 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2105788419} + 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: 1417258183} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!64 &2105788421 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2105788419} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 5 + m_Convex: 0 + m_CookingOptions: 30 + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &2105788422 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2105788419} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &2105788423 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2105788419} + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1660057539 &9223372036854775807 +SceneRoots: + m_ObjectHideFlags: 0 + m_Roots: + - {fileID: 1811955439} + - {fileID: 1417258183} + - {fileID: 1640055891} + - {fileID: 71340814} diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/Demo/Scenes/Simple_Demo_1.unity.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/Demo/Scenes/Simple_Demo_1.unity.meta new file mode 100644 index 0000000..91dfba2 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/Demo/Scenes/Simple_Demo_1.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d2e967e5b69bbf346a04a79391e98533 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/Demo/Scenes/Simple_Demo_2.unity b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/Demo/Scenes/Simple_Demo_2.unity new file mode 100644 index 0000000..da9fd62 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/Demo/Scenes/Simple_Demo_2.unity @@ -0,0 +1,1567 @@ +%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.18028378, g: 0.22571412, b: 0.30692285, 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 &24494030 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 24494032} + - component: {fileID: 24494031} + m_Layer: 0 + m_Name: XR Interaction Manager + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &24494031 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 24494030} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 83e4e6cca11330d4088d729ab4fc9d9f, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!4 &24494032 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 24494030} + 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: 359595300} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &359595299 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 359595300} + m_Layer: 0 + m_Name: '[ Manager ]' + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &359595300 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 359595299} + 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: 24494032} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &457275550 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 457275555} + - component: {fileID: 457275554} + - component: {fileID: 457275553} + - component: {fileID: 457275552} + - component: {fileID: 457275556} + m_Layer: 0 + m_Name: Debug Cube + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!65 &457275552 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 457275550} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &457275553 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 457275550} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &457275554 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 457275550} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &457275555 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 457275550} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0.6, z: 2} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1651021081} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &457275556 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 457275550} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 69583d931f8502647afcc5c3266f4d2c, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &786205070 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 786205072} + - component: {fileID: 786205071} + m_Layer: 0 + m_Name: XR Rig + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &786205071 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 786205070} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7448815bd5148434682b3d931066cd10, type: 3} + m_Name: + m_EditorClassIdentifier: + m_RigBaseGameObject: {fileID: 786205070} + m_CameraFloorOffsetObject: {fileID: 1060306693} + m_CameraGameObject: {fileID: 1370450739} + m_TrackingOriginMode: 2 + m_TrackingSpace: 3 + m_CameraYOffset: 1.36144 +--- !u!4 &786205072 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 786205070} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -2} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1060306694} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &798171399 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1021928222} + m_Modifications: + - target: {fileID: 568889819745993646, guid: 0ada4cea3fe9ca044946db2c867682eb, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 568889819745993646, guid: 0ada4cea3fe9ca044946db2c867682eb, type: 3} + propertyPath: m_LocalPosition.y + value: 0.0241 + objectReference: {fileID: 0} + - target: {fileID: 568889819745993646, guid: 0ada4cea3fe9ca044946db2c867682eb, type: 3} + propertyPath: m_LocalPosition.z + value: 0.0487 + objectReference: {fileID: 0} + - target: {fileID: 568889819745993646, guid: 0ada4cea3fe9ca044946db2c867682eb, type: 3} + propertyPath: m_LocalRotation.w + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 568889819745993646, guid: 0ada4cea3fe9ca044946db2c867682eb, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 568889819745993646, guid: 0ada4cea3fe9ca044946db2c867682eb, type: 3} + propertyPath: m_LocalRotation.y + value: 0.9659259 + objectReference: {fileID: 0} + - target: {fileID: 568889819745993646, guid: 0ada4cea3fe9ca044946db2c867682eb, type: 3} + propertyPath: m_LocalRotation.z + value: 0.258819 + objectReference: {fileID: 0} + - target: {fileID: 568889819745993646, guid: 0ada4cea3fe9ca044946db2c867682eb, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: -30 + objectReference: {fileID: 0} + - target: {fileID: 568889819745993646, guid: 0ada4cea3fe9ca044946db2c867682eb, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 180 + objectReference: {fileID: 0} + - target: {fileID: 568889819745993646, guid: 0ada4cea3fe9ca044946db2c867682eb, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 913890882870810900, guid: 0ada4cea3fe9ca044946db2c867682eb, type: 3} + propertyPath: m_Name + value: Focus3_Right + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 0ada4cea3fe9ca044946db2c867682eb, type: 3} +--- !u!4 &798171400 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 568889819745993646, guid: 0ada4cea3fe9ca044946db2c867682eb, type: 3} + m_PrefabInstance: {fileID: 798171399} + m_PrefabAsset: {fileID: 0} +--- !u!1 &803103123 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 803103127} + - component: {fileID: 803103126} + - component: {fileID: 803103125} + - component: {fileID: 803103124} + m_Layer: 0 + m_Name: Plane + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!64 &803103124 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 803103123} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 5 + m_Convex: 0 + m_CookingOptions: 30 + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &803103125 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 803103123} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: d859ff0236f4e774dbe9a2b9c8a063e6, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &803103126 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 803103123} + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &803103127 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 803103123} + 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: 1651021081} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &1003190721 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1969785056} + m_Modifications: + - target: {fileID: 1170470780012416826, guid: 4db7b3025e9268b4582aa5c77f167c96, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1170470780012416826, guid: 4db7b3025e9268b4582aa5c77f167c96, type: 3} + propertyPath: m_LocalPosition.y + value: 0.0241 + objectReference: {fileID: 0} + - target: {fileID: 1170470780012416826, guid: 4db7b3025e9268b4582aa5c77f167c96, type: 3} + propertyPath: m_LocalPosition.z + value: 0.0487 + objectReference: {fileID: 0} + - target: {fileID: 1170470780012416826, guid: 4db7b3025e9268b4582aa5c77f167c96, type: 3} + propertyPath: m_LocalRotation.w + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1170470780012416826, guid: 4db7b3025e9268b4582aa5c77f167c96, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1170470780012416826, guid: 4db7b3025e9268b4582aa5c77f167c96, type: 3} + propertyPath: m_LocalRotation.y + value: 0.9659259 + objectReference: {fileID: 0} + - target: {fileID: 1170470780012416826, guid: 4db7b3025e9268b4582aa5c77f167c96, type: 3} + propertyPath: m_LocalRotation.z + value: 0.258819 + objectReference: {fileID: 0} + - target: {fileID: 1170470780012416826, guid: 4db7b3025e9268b4582aa5c77f167c96, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: -30 + objectReference: {fileID: 0} + - target: {fileID: 1170470780012416826, guid: 4db7b3025e9268b4582aa5c77f167c96, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 180 + objectReference: {fileID: 0} + - target: {fileID: 1170470780012416826, guid: 4db7b3025e9268b4582aa5c77f167c96, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1978637512304563584, guid: 4db7b3025e9268b4582aa5c77f167c96, type: 3} + propertyPath: m_Name + value: Focus3_Left + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 4db7b3025e9268b4582aa5c77f167c96, type: 3} +--- !u!4 &1003190722 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 1170470780012416826, guid: 4db7b3025e9268b4582aa5c77f167c96, type: 3} + m_PrefabInstance: {fileID: 1003190721} + m_PrefabAsset: {fileID: 0} +--- !u!1 &1021928221 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1021928222} + - component: {fileID: 1021928226} + - component: {fileID: 1021928225} + - component: {fileID: 1021928224} + - component: {fileID: 1021928223} + m_Layer: 0 + m_Name: RightHand Controller + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1021928222 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1021928221} + 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: 798171400} + m_Father: {fileID: 1060306694} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1021928223 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1021928221} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e988983f96fe1dd48800bcdfc82f23e9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_LineWidth: 0.02 + m_OverrideInteractorLineLength: 1 + m_LineLength: 10 + m_WidthCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_ValidColorGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_ColorSpace: -1 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + m_InvalidColorGradient: + serializedVersion: 2 + key0: {r: 1, g: 0, b: 0, a: 1} + key1: {r: 1, g: 0, b: 0, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_ColorSpace: -1 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + m_SmoothMovement: 0 + m_FollowTightness: 10 + m_SnapThresholdDistance: 10 + m_Reticle: {fileID: 0} + m_StopLineAtFirstRaycastHit: 1 +--- !u!120 &1021928224 +LineRenderer: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1021928221} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 0 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10306, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 5 + m_Positions: [] + m_Parameters: + serializedVersion: 3 + widthMultiplier: 0.02 + widthCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorGradient: + serializedVersion: 2 + key0: {r: 0, g: 0, b: 1, a: 1} + key1: {r: 0, g: 0, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_ColorSpace: -1 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + numCornerVertices: 4 + numCapVertices: 4 + alignment: 0 + textureMode: 0 + textureScale: {x: 1, y: 1} + shadowBias: 0.5 + generateLightingData: 0 + m_MaskInteraction: 0 + m_UseWorldSpace: 1 + m_Loop: 0 + m_ApplyActiveColorSpace: 1 +--- !u!114 &1021928225 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1021928221} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6803edce0201f574f923fd9d10e5b30a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_InteractionManager: {fileID: 24494031} + m_InteractionLayerMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_AttachTransform: {fileID: 0} + m_StartingSelectedInteractable: {fileID: 0} + m_OnHoverEnter: + m_PersistentCalls: + m_Calls: [] + m_OnHoverExit: + m_PersistentCalls: + m_Calls: [] + m_OnSelectEnter: + m_PersistentCalls: + m_Calls: [] + m_OnSelectExit: + m_PersistentCalls: + m_Calls: [] + m_SelectActionTrigger: 1 + m_HideControllerOnSelect: 0 + m_PlayAudioClipOnSelectEnter: 0 + m_AudioClipForOnSelectEnter: {fileID: 0} + m_PlayAudioClipOnSelectExit: 0 + m_AudioClipForOnSelectExit: {fileID: 0} + m_PlayAudioClipOnHoverEnter: 0 + m_AudioClipForOnHoverEnter: {fileID: 0} + m_PlayAudioClipOnHoverExit: 0 + m_AudioClipForOnHoverExit: {fileID: 0} + m_PlayHapticsOnSelectEnter: 0 + m_HapticSelectEnterIntensity: 0 + m_HapticSelectEnterDuration: 0 + m_PlayHapticsOnSelectExit: 0 + m_HapticSelectExitIntensity: 0 + m_HapticSelectExitDuration: 0 + m_PlayHapticsOnHoverEnter: 0 + m_HapticHoverEnterIntensity: 0 + m_HapticHoverEnterDuration: 0 + m_PlayHapticsOnHoverExit: 0 + m_HapticHoverExitIntensity: 0 + m_HapticHoverExitDuration: 0 + m_LineType: 0 + m_MaxRaycastDistance: 30 + m_ReferenceFrame: {fileID: 0} + m_Velocity: 16 + m_Acceleration: 9.8 + m_AdditionalFlightTime: 0.5 + m_EndPointDistance: 30 + m_EndPointHeight: -10 + m_ControlPointDistance: 10 + m_ControlPointHeight: 5 + m_SampleFrequency: 20 + m_HitDetectionType: 0 + m_SphereCastRadius: 0 + m_RaycastMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RaycastTriggerInteraction: 1 + m_HoverToSelect: 0 + m_HoverTimeToSelect: 0.5 + m_EnableUIInteraction: 1 +--- !u!114 &1021928226 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1021928221} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1ae26e19cd956134bbdf3c6f65bf393a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UpdateTrackingType: 0 + m_EnableInputActions: 1 + m_PoseProvider: {fileID: 0} + m_ControllerNode: 5 + m_SelectUsage: 3 + m_ActivateUsage: 2 + m_UIPressUsage: 2 + m_AxisToPressThreshold: 0.1 + m_ModelPrefab: {fileID: 0} + m_ModelTransform: {fileID: 0} + m_AnimateModel: 0 + m_ModelSelectTransition: + m_ModelDeSelectTransition: +--- !u!1 &1060306693 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1060306694} + m_Layer: 0 + m_Name: Camera Offset + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1060306694 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1060306693} + 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: 1370450742} + - {fileID: 1969785056} + - {fileID: 1021928222} + m_Father: {fileID: 786205072} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1370450739 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1370450742} + - component: {fileID: 1370450741} + - component: {fileID: 1370450740} + m_Layer: 0 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1370450740 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1370450739} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5a2a9c34df4095f47b9ca8f975175f5b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Device: 0 + m_PoseSource: 2 + m_PoseProviderComponent: {fileID: 0} + m_TrackingType: 0 + m_UpdateType: 0 + m_UseRelativeTransform: 0 +--- !u!20 &1370450741 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1370450739} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_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.1 + far clip plane: 1000 + field of view: 60 + orthographic: 0 + orthographic size: 5 + m_Depth: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &1370450742 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1370450739} + 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: 1060306694} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1569389715 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1569389717} + - component: {fileID: 1569389716} + 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 &1569389716 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1569389715} + 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 &1569389717 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1569389715} + serializedVersion: 2 + m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} + m_LocalPosition: {x: 0, y: 5, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1651021081} + m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} +--- !u!1 &1651021080 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1651021081} + m_Layer: 0 + m_Name: '[ Env ]' + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1651021081 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1651021080} + 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: 1569389717} + - {fileID: 803103127} + - {fileID: 457275555} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1969785055 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1969785056} + - component: {fileID: 1969785060} + - component: {fileID: 1969785059} + - component: {fileID: 1969785058} + - component: {fileID: 1969785057} + m_Layer: 0 + m_Name: LeftHand Controller + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1969785056 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1969785055} + 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: 1003190722} + m_Father: {fileID: 1060306694} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1969785057 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1969785055} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e988983f96fe1dd48800bcdfc82f23e9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_LineWidth: 0.02 + m_OverrideInteractorLineLength: 1 + m_LineLength: 10 + m_WidthCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_ValidColorGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_ColorSpace: -1 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + m_InvalidColorGradient: + serializedVersion: 2 + key0: {r: 1, g: 0, b: 0, a: 1} + key1: {r: 1, g: 0, b: 0, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_ColorSpace: -1 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + m_SmoothMovement: 0 + m_FollowTightness: 10 + m_SnapThresholdDistance: 10 + m_Reticle: {fileID: 0} + m_StopLineAtFirstRaycastHit: 1 +--- !u!120 &1969785058 +LineRenderer: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1969785055} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 0 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10306, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 5 + m_Positions: [] + m_Parameters: + serializedVersion: 3 + widthMultiplier: 0.02 + widthCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorGradient: + serializedVersion: 2 + key0: {r: 0, g: 0, b: 1, a: 1} + key1: {r: 0, g: 0, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_ColorSpace: -1 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + numCornerVertices: 4 + numCapVertices: 4 + alignment: 0 + textureMode: 0 + textureScale: {x: 1, y: 1} + shadowBias: 0.5 + generateLightingData: 0 + m_MaskInteraction: 0 + m_UseWorldSpace: 1 + m_Loop: 0 + m_ApplyActiveColorSpace: 1 +--- !u!114 &1969785059 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1969785055} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6803edce0201f574f923fd9d10e5b30a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_InteractionManager: {fileID: 24494031} + m_InteractionLayerMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_AttachTransform: {fileID: 0} + m_StartingSelectedInteractable: {fileID: 0} + m_OnHoverEnter: + m_PersistentCalls: + m_Calls: [] + m_OnHoverExit: + m_PersistentCalls: + m_Calls: [] + m_OnSelectEnter: + m_PersistentCalls: + m_Calls: [] + m_OnSelectExit: + m_PersistentCalls: + m_Calls: [] + m_SelectActionTrigger: 1 + m_HideControllerOnSelect: 0 + m_PlayAudioClipOnSelectEnter: 0 + m_AudioClipForOnSelectEnter: {fileID: 0} + m_PlayAudioClipOnSelectExit: 0 + m_AudioClipForOnSelectExit: {fileID: 0} + m_PlayAudioClipOnHoverEnter: 0 + m_AudioClipForOnHoverEnter: {fileID: 0} + m_PlayAudioClipOnHoverExit: 0 + m_AudioClipForOnHoverExit: {fileID: 0} + m_PlayHapticsOnSelectEnter: 0 + m_HapticSelectEnterIntensity: 0 + m_HapticSelectEnterDuration: 0 + m_PlayHapticsOnSelectExit: 0 + m_HapticSelectExitIntensity: 0 + m_HapticSelectExitDuration: 0 + m_PlayHapticsOnHoverEnter: 0 + m_HapticHoverEnterIntensity: 0 + m_HapticHoverEnterDuration: 0 + m_PlayHapticsOnHoverExit: 0 + m_HapticHoverExitIntensity: 0 + m_HapticHoverExitDuration: 0 + m_LineType: 0 + m_MaxRaycastDistance: 30 + m_ReferenceFrame: {fileID: 0} + m_Velocity: 16 + m_Acceleration: 9.8 + m_AdditionalFlightTime: 0.5 + m_EndPointDistance: 30 + m_EndPointHeight: -10 + m_ControlPointDistance: 10 + m_ControlPointHeight: 5 + m_SampleFrequency: 20 + m_HitDetectionType: 0 + m_SphereCastRadius: 0 + m_RaycastMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RaycastTriggerInteraction: 1 + m_HoverToSelect: 0 + m_HoverTimeToSelect: 0.5 + m_EnableUIInteraction: 1 +--- !u!114 &1969785060 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1969785055} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1ae26e19cd956134bbdf3c6f65bf393a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UpdateTrackingType: 0 + m_EnableInputActions: 1 + m_PoseProvider: {fileID: 0} + m_ControllerNode: 4 + m_SelectUsage: 3 + m_ActivateUsage: 2 + m_UIPressUsage: 2 + m_AxisToPressThreshold: 0.1 + m_ModelPrefab: {fileID: 0} + m_ModelTransform: {fileID: 0} + m_AnimateModel: 0 + m_ModelSelectTransition: + m_ModelDeSelectTransition: +--- !u!1660057539 &9223372036854775807 +SceneRoots: + m_ObjectHideFlags: 0 + m_Roots: + - {fileID: 786205072} + - {fileID: 1651021081} + - {fileID: 359595300} diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/Demo/Scenes/Simple_Demo_2.unity.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/Demo/Scenes/Simple_Demo_2.unity.meta new file mode 100644 index 0000000..5003a50 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/Demo/Scenes/Simple_Demo_2.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 2ea24426aa33d864d926a7b296047fe5 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/Demo/Scripts.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/Demo/Scripts.meta new file mode 100644 index 0000000..64530bf --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/Demo/Scripts.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b6383c1f78f8b6a45b55ef2dde4a70ed +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/Demo/Scripts/SecondSceneLoadTest.cs b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/Demo/Scripts/SecondSceneLoadTest.cs new file mode 100644 index 0000000..751e31f --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/Demo/Scripts/SecondSceneLoadTest.cs @@ -0,0 +1,81 @@ +// Copyright HTC Corporation All Rights Reserved. + +using System; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.XR; +using UnityEngine.SceneManagement; + +namespace VIVE.OpenXR.Samples.Spectator.Demo +{ + public class SecondSceneLoadTest : MonoBehaviour + { + private InputDevice Left { get; set; } + [field: SerializeField] private string LoadSecondSceneName { get; set; } + + private void Start() + { + var inputDeviceList = new List(); + InputDevices.GetDevicesWithCharacteristics( + InputDeviceCharacteristics.Left | InputDeviceCharacteristics.Controller, inputDeviceList); + if (inputDeviceList.Count > 0) + { + Debug.Log("The input device list > 0. Get the first one as default."); + Left = inputDeviceList[0]; + } + else + { + Debug.Log("The input device list <= 0"); + } + } + + private void Update() + { + if (!Left.isValid) + { + return; + } + + Left.TryGetFeatureValue(CommonUsages.triggerButton, out bool isClick); + if (!isClick) + { + return; + } + + if (DoesSceneExist(LoadSecondSceneName)) + { + SceneManager.LoadScene(LoadSecondSceneName); + } + else + { + Debug.LogWarning($"{LoadSecondSceneName} scene not found. Please add it in build setting first."); + } + } + + /// + /// Returns true if the scene 'name' exists and is in your Build settings, false otherwise. + /// + private static bool DoesSceneExist(string name) + { + if (string.IsNullOrEmpty(name)) + { + return false; + } + + for (int i = 0; i < SceneManager.sceneCountInBuildSettings; i++) + { + var scenePath = SceneUtility.GetScenePathByBuildIndex(i); + var lastSlash = scenePath.LastIndexOf("/", StringComparison.Ordinal); + var sceneName = scenePath.Substring(lastSlash + 1, + scenePath.LastIndexOf(".", StringComparison.Ordinal) - lastSlash - 1); + + if (string.Compare(name, sceneName, StringComparison.OrdinalIgnoreCase) == 0) + { + return true; + } + } + + return false; + } + } +} \ No newline at end of file diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/Demo/Scripts/SecondSceneLoadTest.cs.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/Demo/Scripts/SecondSceneLoadTest.cs.meta new file mode 100644 index 0000000..9813e36 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/Demo/Scripts/SecondSceneLoadTest.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a4e27405370d6a142b924d6344af355d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/Prefabs.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/Prefabs.meta new file mode 100644 index 0000000..c94bb42 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/Prefabs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c5c2ca8ee4bcedb42afca07ebeb29dec +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/Prefabs/Spectator Camera Based.prefab b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/Prefabs/Spectator Camera Based.prefab new file mode 100644 index 0000000..e3390f2 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/Prefabs/Spectator Camera Based.prefab @@ -0,0 +1,49 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &5044016766685823534 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3356308668493997784} + - component: {fileID: 3204202664083310538} + m_Layer: 0 + m_Name: Spectator Camera Based + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3356308668493997784 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5044016766685823534} + 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!114 &3204202664083310538 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5044016766685823534} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 47a6afbbc5e705041b2851122f306f76, type: 3} + m_Name: + m_EditorClassIdentifier: + spectatorCameraViewMaterial: {fileID: 2100000, guid: 08727ef98368b6d46b9189c4fb8c5289, type: 2} + isRecording: 0 + isDebugSpectatorCamera: 0 diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/Prefabs/Spectator Camera Based.prefab.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/Prefabs/Spectator Camera Based.prefab.meta new file mode 100644 index 0000000..aae2610 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/Prefabs/Spectator Camera Based.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: da3f21fd386905946b32141b29de4abd +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/Prefabs/Test Cube.prefab b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/Prefabs/Test Cube.prefab new file mode 100644 index 0000000..b2aa46a --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/Prefabs/Test Cube.prefab @@ -0,0 +1,134 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &6597737075090502190 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5882337523474095724} + - component: {fileID: 7116295306776761940} + - component: {fileID: 8557628774900236813} + - component: {fileID: 4386987859970211849} + - component: {fileID: 4840103613602428309} + - component: {fileID: 412709624038218753} + m_Layer: 0 + m_Name: Test Cube + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5882337523474095724 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6597737075090502190} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 5} + 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!33 &7116295306776761940 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6597737075090502190} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &8557628774900236813 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6597737075090502190} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!65 &4386987859970211849 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6597737075090502190} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!114 &4840103613602428309 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6597737075090502190} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 69583d931f8502647afcc5c3266f4d2c, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &412709624038218753 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6597737075090502190} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a4e27405370d6a142b924d6344af355d, type: 3} + m_Name: + m_EditorClassIdentifier: + k__BackingField: diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/Prefabs/Test Cube.prefab.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/Prefabs/Test Cube.prefab.meta new file mode 100644 index 0000000..06892ec --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Spectator/Prefabs/Test Cube.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 69e6c1fc2b7d84f45aa1349d06cbfc1f +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/VIVE.OpenXR.Samples.asmdef b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/VIVE.OpenXR.Samples.asmdef index fc2a0eb..870fb96 100644 --- a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/VIVE.OpenXR.Samples.asmdef +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/VIVE.OpenXR.Samples.asmdef @@ -7,7 +7,8 @@ "GUID:ba171b3dd2a51234ab864770f99741a5", "GUID:e40ba710768534012815d3193fa296cb", "GUID:d0a204fb2c62e9f4caca92f1c1e8c06b", - "GUID:6055be8ebefd69e48b49212b09b47b2f" + "GUID:6055be8ebefd69e48b49212b09b47b2f", + "GUID:fe685ec1767f73d42b749ea8045bfe43" ], "includePlatforms": [ "Android", @@ -23,10 +24,20 @@ "defineConstraints": [], "versionDefines": [ { - "name": "com.unity.xr.hands", - "expression": "", - "define": "UNITY_XR_HANDS" + "name": "com.unity.xr.openxr", + "expression": "1.6.0", + "define": "UNITY_XR_OPENXR_1_6_0" + }, + { + "name": "com.unity.xr.openxr", + "expression": "1.9.1", + "define": "UNITY_XR_OPENXR_1_9_1" + }, + { + "name": "com.unity.textmeshpro", + "expression": "3.2.0-pre.10", + "define": "UNITY_TEXT_MESH_PRO_3_2_0_PRE_10_OR_NEWER" } ], "noEngineReferences": false -} \ No newline at end of file +} diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/ViveTracker.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/ViveTracker.meta new file mode 100644 index 0000000..3d63de9 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/ViveTracker.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 253022b15059d4049b3061045be6d576 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/ViveTracker/ViveTrackerSample.unity b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/ViveTracker/ViveTrackerSample.unity new file mode 100644 index 0000000..b2b4ed2 --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/ViveTracker/ViveTrackerSample.unity @@ -0,0 +1,5496 @@ +%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_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!1001 &16671354 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1055474048} + m_Modifications: + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 919132149155446097, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_Name + value: Vive_UltimateTracker + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 407031a402781d048945abb5156739ad, type: 3} +--- !u!4 &16671355 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + m_PrefabInstance: {fileID: 16671354} + m_PrefabAsset: {fileID: 0} +--- !u!1 &31337755 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 31337758} + - component: {fileID: 31337757} + - component: {fileID: 31337756} + - component: {fileID: 31337759} + 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 &31337756 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 31337755} + m_Enabled: 1 +--- !u!20 &31337757 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 31337755} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_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 &31337758 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 31337755} + 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!114 &31337759 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 31337755} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c2fadf230d1919748a9aa21d40f74619, type: 3} + m_Name: + m_EditorClassIdentifier: + m_TrackingType: 0 + m_UpdateType: 0 + m_IgnoreTrackingState: 0 + m_PositionInput: + m_UseReference: 0 + m_Action: + m_Name: Position + m_Type: 0 + m_ExpectedControlType: Vector3 + m_Id: 52c7df76-5711-4127-96cd-7ce4fab26030 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 8fe3665c-01b0-4356-a0b1-57d6ed9d70b7 + m_Path: /devicePosition + m_Interactions: + m_Processors: + m_Groups: + m_Action: Position + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: 0} + m_RotationInput: + m_UseReference: 0 + m_Action: + m_Name: Rotation + m_Type: 0 + m_ExpectedControlType: Quaternion + m_Id: 3372df9d-ebb9-45ec-8dcc-45fe59853f29 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 4c9d6c3b-ad30-44c4-bbc3-8220151f54b8 + m_Path: /deviceRotation + m_Interactions: + m_Processors: + m_Groups: + m_Action: Rotation + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: 0} + m_TrackingStateInput: + m_UseReference: 0 + m_Action: + m_Name: Tracking State + m_Type: 0 + m_ExpectedControlType: Integer + m_Id: 6b16322e-d4f1-40e4-8f51-d313dafd27df + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 0} + m_PositionAction: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_RotationAction: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 +--- !u!1 &41993659 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 41993660} + - component: {fileID: 41993663} + - component: {fileID: 41993662} + - component: {fileID: 41993661} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &41993660 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 41993659} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.001, y: 0.001, z: 0.001} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1510791862} + m_Father: {fileID: 985993137} + 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.005} + m_SizeDelta: {x: 682, y: 423} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &41993661 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 41993659} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &41993662 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 41993659} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 1 +--- !u!223 &41993663 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 41993659} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 31337757} + 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!1 &101308683 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 101308684} + - component: {fileID: 101308686} + - component: {fileID: 101308685} + m_Layer: 5 + m_Name: poseName + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &101308684 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 101308683} + m_LocalRotation: {x: 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: 723033690} + 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: 28.6} + m_SizeDelta: {x: 200, y: 50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &101308685 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 101308683} + 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: Waist + 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: 12 + m_fontSizeBase: 12 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + 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: 7.7196884, 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 &101308686 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 101308683} + m_CullTransparentMesh: 1 +--- !u!1 &173012300 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 173012301} + - component: {fileID: 173012303} + - component: {fileID: 173012302} + m_Layer: 5 + m_Name: poseName + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &173012301 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 173012300} + m_LocalRotation: {x: 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: 1560019822} + 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: 28.6} + m_SizeDelta: {x: 200, y: 50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &173012302 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 173012300} + 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: Camera + 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: 12 + m_fontSizeBase: 12 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + 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: 7.7196884, 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 &173012303 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 173012300} + m_CullTransparentMesh: 1 +--- !u!1 &350896373 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 350896374} + - component: {fileID: 350896375} + m_Layer: 0 + m_Name: Waist + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &350896374 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 350896373} + 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: 914733610} + - {fileID: 723033690} + m_Father: {fileID: 717916951} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &350896375 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 350896373} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c2fadf230d1919748a9aa21d40f74619, type: 3} + m_Name: + m_EditorClassIdentifier: + m_TrackingType: 0 + m_UpdateType: 0 + m_IgnoreTrackingState: 0 + m_PositionInput: + m_UseReference: 1 + m_Action: + m_Name: Position + m_Type: 0 + m_ExpectedControlType: Vector3 + m_Id: 592c4f08-e368-4386-96f0-b3a9b1238cb2 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 74fbcba6-ca8c-4115-9f82-bbf94710c9e5 + m_Path: {Left Foot}/devicePosition + m_Interactions: + m_Processors: + m_Groups: + m_Action: Position + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: -990928043242430370, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_RotationInput: + m_UseReference: 1 + m_Action: + m_Name: Rotation + m_Type: 0 + m_ExpectedControlType: Quaternion + m_Id: 20cb4722-623d-4bf3-9681-16e16b04c81f + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: -8782611747272741662, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_TrackingStateInput: + m_UseReference: 0 + m_Action: + m_Name: Tracking State + m_Type: 0 + m_ExpectedControlType: Integer + m_Id: d93b141f-ceee-4f79-be5a-e85c69d0c618 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 0} + m_PositionAction: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_RotationAction: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 +--- !u!1 &379161717 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 379161718} + - component: {fileID: 379161719} + m_Layer: 0 + m_Name: LeftFoot + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &379161718 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 379161717} + 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: 2004236751} + - {fileID: 1731133447} + m_Father: {fileID: 717916951} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &379161719 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 379161717} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c2fadf230d1919748a9aa21d40f74619, type: 3} + m_Name: + m_EditorClassIdentifier: + m_TrackingType: 0 + m_UpdateType: 0 + m_IgnoreTrackingState: 0 + m_PositionInput: + m_UseReference: 1 + m_Action: + m_Name: Position + m_Type: 0 + m_ExpectedControlType: Vector3 + m_Id: 592c4f08-e368-4386-96f0-b3a9b1238cb2 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 74fbcba6-ca8c-4115-9f82-bbf94710c9e5 + m_Path: {Left Foot}/devicePosition + m_Interactions: + m_Processors: + m_Groups: + m_Action: Position + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: 1006785297783413204, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_RotationInput: + m_UseReference: 1 + m_Action: + m_Name: Rotation + m_Type: 0 + m_ExpectedControlType: Quaternion + m_Id: 20cb4722-623d-4bf3-9681-16e16b04c81f + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 5532207114231188429, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_TrackingStateInput: + m_UseReference: 0 + m_Action: + m_Name: Tracking State + m_Type: 0 + m_ExpectedControlType: Integer + m_Id: d93b141f-ceee-4f79-be5a-e85c69d0c618 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 0} + m_PositionAction: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_RotationAction: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 +--- !u!1 &420190375 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 420190376} + - component: {fileID: 420190378} + - component: {fileID: 420190377} + m_Layer: 5 + m_Name: poseName + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &420190376 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 420190375} + m_LocalRotation: {x: 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: 1248406957} + 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: 28.6} + m_SizeDelta: {x: 200, y: 50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &420190377 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 420190375} + 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: RightKnee + 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: 12 + m_fontSizeBase: 12 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + 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: 7.7196884, 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 &420190378 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 420190375} + m_CullTransparentMesh: 1 +--- !u!1001 &441399028 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1401000186} + m_Modifications: + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 919132149155446097, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_Name + value: Vive_UltimateTracker + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 407031a402781d048945abb5156739ad, type: 3} +--- !u!4 &441399029 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + m_PrefabInstance: {fileID: 441399028} + m_PrefabAsset: {fileID: 0} +--- !u!1 &445219924 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 445219925} + - component: {fileID: 445219928} + - component: {fileID: 445219927} + - component: {fileID: 445219926} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &445219925 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 445219924} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.001, y: 0.001, z: 0.001} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 790860408} + m_Father: {fileID: 643798792} + 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.005} + m_SizeDelta: {x: 682, y: 423} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &445219926 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 445219924} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &445219927 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 445219924} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 1 +--- !u!223 &445219928 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 445219924} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 31337757} + 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!1 &490406067 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 490406068} + - component: {fileID: 490406069} + m_Layer: 0 + m_Name: LeftKnee + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &490406068 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 490406067} + 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: 626357566} + - {fileID: 1420278164} + m_Father: {fileID: 717916951} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &490406069 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 490406067} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c2fadf230d1919748a9aa21d40f74619, type: 3} + m_Name: + m_EditorClassIdentifier: + m_TrackingType: 0 + m_UpdateType: 0 + m_IgnoreTrackingState: 0 + m_PositionInput: + m_UseReference: 1 + m_Action: + m_Name: Position + m_Type: 0 + m_ExpectedControlType: Vector3 + m_Id: 592c4f08-e368-4386-96f0-b3a9b1238cb2 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 74fbcba6-ca8c-4115-9f82-bbf94710c9e5 + m_Path: {Left Foot}/devicePosition + m_Interactions: + m_Processors: + m_Groups: + m_Action: Position + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: -2162285030783988864, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_RotationInput: + m_UseReference: 1 + m_Action: + m_Name: Rotation + m_Type: 0 + m_ExpectedControlType: Quaternion + m_Id: 20cb4722-623d-4bf3-9681-16e16b04c81f + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: -903971490286505210, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_TrackingStateInput: + m_UseReference: 0 + m_Action: + m_Name: Tracking State + m_Type: 0 + m_ExpectedControlType: Integer + m_Id: d93b141f-ceee-4f79-be5a-e85c69d0c618 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 0} + m_PositionAction: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_RotationAction: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 +--- !u!1 &524366376 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 524366377} + - component: {fileID: 524366379} + - component: {fileID: 524366378} + m_Layer: 5 + m_Name: poseName + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &524366377 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 524366376} + m_LocalRotation: {x: 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: 1644889888} + 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: 28.6} + m_SizeDelta: {x: 200, y: 50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &524366378 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 524366376} + 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: LeftElbow + 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: 12 + m_fontSizeBase: 12 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + 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: 7.7196884, 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 &524366379 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 524366376} + m_CullTransparentMesh: 1 +--- !u!1001 &579841534 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 643798792} + m_Modifications: + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 919132149155446097, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_Name + value: Vive_UltimateTracker + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 407031a402781d048945abb5156739ad, type: 3} +--- !u!4 &579841535 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + m_PrefabInstance: {fileID: 579841534} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &603050961 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1997540621} + m_Modifications: + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 919132149155446097, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_Name + value: Vive_UltimateTracker + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 407031a402781d048945abb5156739ad, type: 3} +--- !u!4 &603050962 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + m_PrefabInstance: {fileID: 603050961} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &626357565 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 490406068} + m_Modifications: + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 919132149155446097, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_Name + value: Vive_UltimateTracker + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 407031a402781d048945abb5156739ad, type: 3} +--- !u!4 &626357566 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + m_PrefabInstance: {fileID: 626357565} + m_PrefabAsset: {fileID: 0} +--- !u!1 &638343069 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 638343070} + - component: {fileID: 638343072} + - component: {fileID: 638343071} + m_Layer: 5 + m_Name: poseName + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &638343070 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 638343069} + m_LocalRotation: {x: 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: 1069218912} + 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: 28.6} + m_SizeDelta: {x: 200, y: 50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &638343071 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 638343069} + 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: LeftShoulder + 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: 12 + m_fontSizeBase: 12 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + 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: 7.7196884, 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 &638343072 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 638343069} + m_CullTransparentMesh: 1 +--- !u!1 &641725336 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 641725338} + - component: {fileID: 641725337} + 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 &641725337 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 641725336} + 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 &641725338 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 641725336} + 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 &643798791 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 643798792} + - component: {fileID: 643798793} + m_Layer: 0 + m_Name: RightShoulder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &643798792 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 643798791} + 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: 579841535} + - {fileID: 445219925} + m_Father: {fileID: 717916951} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &643798793 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 643798791} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c2fadf230d1919748a9aa21d40f74619, type: 3} + m_Name: + m_EditorClassIdentifier: + m_TrackingType: 0 + m_UpdateType: 0 + m_IgnoreTrackingState: 0 + m_PositionInput: + m_UseReference: 1 + m_Action: + m_Name: Position + m_Type: 0 + m_ExpectedControlType: Vector3 + m_Id: 592c4f08-e368-4386-96f0-b3a9b1238cb2 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 74fbcba6-ca8c-4115-9f82-bbf94710c9e5 + m_Path: {Left Foot}/devicePosition + m_Interactions: + m_Processors: + m_Groups: + m_Action: Position + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: -7744093558997344945, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_RotationInput: + m_UseReference: 1 + m_Action: + m_Name: Rotation + m_Type: 0 + m_ExpectedControlType: Quaternion + m_Id: 20cb4722-623d-4bf3-9681-16e16b04c81f + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 7910757408334808394, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_TrackingStateInput: + m_UseReference: 0 + m_Action: + m_Name: Tracking State + m_Type: 0 + m_ExpectedControlType: Integer + m_Id: d93b141f-ceee-4f79-be5a-e85c69d0c618 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 0} + m_PositionAction: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_RotationAction: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 +--- !u!1 &644766440 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 644766441} + - component: {fileID: 644766443} + - component: {fileID: 644766442} + m_Layer: 5 + m_Name: poseName + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &644766441 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 644766440} + m_LocalRotation: {x: 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: 1731133447} + 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: 28.6} + m_SizeDelta: {x: 200, y: 50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &644766442 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 644766440} + 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: LeftFoot + 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: 12 + m_fontSizeBase: 12 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + 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: 7.7196884, 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 &644766443 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 644766440} + m_CullTransparentMesh: 1 +--- !u!1001 &687627488 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 898240859} + m_Modifications: + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 919132149155446097, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_Name + value: Vive_UltimateTracker + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 407031a402781d048945abb5156739ad, type: 3} +--- !u!4 &687627489 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + m_PrefabInstance: {fileID: 687627488} + m_PrefabAsset: {fileID: 0} +--- !u!1 &717916950 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 717916951} + - component: {fileID: 717916952} + m_Layer: 0 + m_Name: ViveTracker + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &717916951 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 717916950} + 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: 379161718} + - {fileID: 1433704398} + - {fileID: 1997540621} + - {fileID: 643798792} + - {fileID: 1401000186} + - {fileID: 2029056771} + - {fileID: 490406068} + - {fileID: 1535339416} + - {fileID: 350896374} + - {fileID: 898240859} + - {fileID: 1055474048} + - {fileID: 985993137} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &717916952 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 717916950} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b6292cddb0024284ea1f3c804ace5d87, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ActionAsset: {fileID: -944628639613478452, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} +--- !u!1 &723033689 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 723033690} + - component: {fileID: 723033693} + - component: {fileID: 723033692} + - component: {fileID: 723033691} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &723033690 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 723033689} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.001, y: 0.001, z: 0.001} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 101308684} + m_Father: {fileID: 350896374} + 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.005} + m_SizeDelta: {x: 682, y: 423} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &723033691 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 723033689} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &723033692 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 723033689} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 1 +--- !u!223 &723033693 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 723033689} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 31337757} + 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!1001 &727722011 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1535339416} + m_Modifications: + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 919132149155446097, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_Name + value: Vive_UltimateTracker + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 407031a402781d048945abb5156739ad, type: 3} +--- !u!4 &727722012 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + m_PrefabInstance: {fileID: 727722011} + m_PrefabAsset: {fileID: 0} +--- !u!1 &790860407 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 790860408} + - component: {fileID: 790860410} + - component: {fileID: 790860409} + m_Layer: 5 + m_Name: poseName + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &790860408 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 790860407} + m_LocalRotation: {x: 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: 445219925} + 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: 28.6} + m_SizeDelta: {x: 200, y: 50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &790860409 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 790860407} + 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: RightShoulder + 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: 12 + m_fontSizeBase: 12 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + 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: 7.7196884, 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 &790860410 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 790860407} + m_CullTransparentMesh: 1 +--- !u!1001 &862595572 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 2029056771} + m_Modifications: + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 919132149155446097, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_Name + value: Vive_UltimateTracker + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 407031a402781d048945abb5156739ad, type: 3} +--- !u!4 &862595573 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + m_PrefabInstance: {fileID: 862595572} + m_PrefabAsset: {fileID: 0} +--- !u!1 &898240858 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 898240859} + - component: {fileID: 898240860} + m_Layer: 0 + m_Name: Chest + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &898240859 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 898240858} + 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: 687627489} + - {fileID: 1605914985} + m_Father: {fileID: 717916951} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &898240860 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 898240858} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c2fadf230d1919748a9aa21d40f74619, type: 3} + m_Name: + m_EditorClassIdentifier: + m_TrackingType: 0 + m_UpdateType: 0 + m_IgnoreTrackingState: 0 + m_PositionInput: + m_UseReference: 1 + m_Action: + m_Name: Position + m_Type: 0 + m_ExpectedControlType: Vector3 + m_Id: 592c4f08-e368-4386-96f0-b3a9b1238cb2 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 74fbcba6-ca8c-4115-9f82-bbf94710c9e5 + m_Path: {Left Foot}/devicePosition + m_Interactions: + m_Processors: + m_Groups: + m_Action: Position + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: -2125165997238161521, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_RotationInput: + m_UseReference: 1 + m_Action: + m_Name: Rotation + m_Type: 0 + m_ExpectedControlType: Quaternion + m_Id: 20cb4722-623d-4bf3-9681-16e16b04c81f + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 3138933219347706478, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_TrackingStateInput: + m_UseReference: 0 + m_Action: + m_Name: Tracking State + m_Type: 0 + m_ExpectedControlType: Integer + m_Id: d93b141f-ceee-4f79-be5a-e85c69d0c618 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 0} + m_PositionAction: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_RotationAction: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 +--- !u!1001 &914733609 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 350896374} + m_Modifications: + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 919132149155446097, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_Name + value: Vive_UltimateTracker + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 407031a402781d048945abb5156739ad, type: 3} +--- !u!4 &914733610 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + m_PrefabInstance: {fileID: 914733609} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &953195989 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1433704398} + m_Modifications: + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 919132149155446097, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_Name + value: Vive_UltimateTracker + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 407031a402781d048945abb5156739ad, type: 3} +--- !u!4 &953195990 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + m_PrefabInstance: {fileID: 953195989} + m_PrefabAsset: {fileID: 0} +--- !u!1 &985993136 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 985993137} + - component: {fileID: 985993138} + m_Layer: 0 + m_Name: Keyboard + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &985993137 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 985993136} + 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: 2037987273} + - {fileID: 41993660} + m_Father: {fileID: 717916951} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &985993138 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 985993136} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c2fadf230d1919748a9aa21d40f74619, type: 3} + m_Name: + m_EditorClassIdentifier: + m_TrackingType: 0 + m_UpdateType: 0 + m_IgnoreTrackingState: 0 + m_PositionInput: + m_UseReference: 1 + m_Action: + m_Name: Position + m_Type: 0 + m_ExpectedControlType: Vector3 + m_Id: 592c4f08-e368-4386-96f0-b3a9b1238cb2 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 74fbcba6-ca8c-4115-9f82-bbf94710c9e5 + m_Path: {Left Foot}/devicePosition + m_Interactions: + m_Processors: + m_Groups: + m_Action: Position + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: 3480725843026377459, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_RotationInput: + m_UseReference: 1 + m_Action: + m_Name: Rotation + m_Type: 0 + m_ExpectedControlType: Quaternion + m_Id: 20cb4722-623d-4bf3-9681-16e16b04c81f + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: -4060755680168346588, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_TrackingStateInput: + m_UseReference: 0 + m_Action: + m_Name: Tracking State + m_Type: 0 + m_ExpectedControlType: Integer + m_Id: d93b141f-ceee-4f79-be5a-e85c69d0c618 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 0} + m_PositionAction: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_RotationAction: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 +--- !u!1 &1055474047 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1055474048} + - component: {fileID: 1055474049} + m_Layer: 0 + m_Name: Camera + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1055474048 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1055474047} + 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: 16671355} + - {fileID: 1560019822} + m_Father: {fileID: 717916951} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1055474049 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1055474047} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c2fadf230d1919748a9aa21d40f74619, type: 3} + m_Name: + m_EditorClassIdentifier: + m_TrackingType: 0 + m_UpdateType: 0 + m_IgnoreTrackingState: 0 + m_PositionInput: + m_UseReference: 1 + m_Action: + m_Name: Position + m_Type: 0 + m_ExpectedControlType: Vector3 + m_Id: 592c4f08-e368-4386-96f0-b3a9b1238cb2 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 74fbcba6-ca8c-4115-9f82-bbf94710c9e5 + m_Path: {Left Foot}/devicePosition + m_Interactions: + m_Processors: + m_Groups: + m_Action: Position + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: -8859332456558133407, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_RotationInput: + m_UseReference: 1 + m_Action: + m_Name: Rotation + m_Type: 0 + m_ExpectedControlType: Quaternion + m_Id: 20cb4722-623d-4bf3-9681-16e16b04c81f + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 8260639073739986613, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_TrackingStateInput: + m_UseReference: 0 + m_Action: + m_Name: Tracking State + m_Type: 0 + m_ExpectedControlType: Integer + m_Id: d93b141f-ceee-4f79-be5a-e85c69d0c618 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 0} + m_PositionAction: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_RotationAction: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 +--- !u!1 &1069218911 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1069218912} + - component: {fileID: 1069218915} + - component: {fileID: 1069218914} + - component: {fileID: 1069218913} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1069218912 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1069218911} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.001, y: 0.001, z: 0.001} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 638343070} + m_Father: {fileID: 1997540621} + 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.005} + m_SizeDelta: {x: 682, y: 423} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1069218913 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1069218911} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &1069218914 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1069218911} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 1 +--- !u!223 &1069218915 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1069218911} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 31337757} + 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!1 &1168884414 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1168884415} + - component: {fileID: 1168884417} + - component: {fileID: 1168884416} + m_Layer: 5 + m_Name: poseName + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1168884415 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1168884414} + m_LocalRotation: {x: 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: 1605914985} + 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: 28.6} + m_SizeDelta: {x: 200, y: 50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1168884416 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1168884414} + 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: Chest + 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: 12 + m_fontSizeBase: 12 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + 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: 7.7196884, 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 &1168884417 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1168884414} + m_CullTransparentMesh: 1 +--- !u!1 &1184742559 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1184742560} + - component: {fileID: 1184742562} + - component: {fileID: 1184742561} + m_Layer: 5 + m_Name: poseName + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1184742560 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1184742559} + m_LocalRotation: {x: 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: 1359984208} + 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: 28.6} + m_SizeDelta: {x: 200, y: 50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1184742561 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1184742559} + 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: RightElbow + 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: 12 + m_fontSizeBase: 12 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + 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: 7.7196884, 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 &1184742562 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1184742559} + m_CullTransparentMesh: 1 +--- !u!1 &1192686220 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1192686221} + - component: {fileID: 1192686223} + - component: {fileID: 1192686222} + m_Layer: 5 + m_Name: poseName + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1192686221 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1192686220} + m_LocalRotation: {x: 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: 1870967368} + 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: 28.6} + m_SizeDelta: {x: 200, y: 50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1192686222 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1192686220} + 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: RightFoot + 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: 12 + m_fontSizeBase: 12 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + 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: 7.7196884, 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 &1192686223 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1192686220} + m_CullTransparentMesh: 1 +--- !u!1 &1248406956 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1248406957} + - component: {fileID: 1248406960} + - component: {fileID: 1248406959} + - component: {fileID: 1248406958} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1248406957 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1248406956} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.001, y: 0.001, z: 0.001} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 420190376} + m_Father: {fileID: 1535339416} + 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.005} + m_SizeDelta: {x: 682, y: 423} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1248406958 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1248406956} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &1248406959 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1248406956} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 1 +--- !u!223 &1248406960 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1248406956} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 31337757} + 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!1 &1359984207 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1359984208} + - component: {fileID: 1359984211} + - component: {fileID: 1359984210} + - component: {fileID: 1359984209} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1359984208 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1359984207} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.001, y: 0.001, z: 0.001} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1184742560} + m_Father: {fileID: 2029056771} + 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.005} + m_SizeDelta: {x: 682, y: 423} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1359984209 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1359984207} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &1359984210 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1359984207} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 1 +--- !u!223 &1359984211 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1359984207} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 31337757} + 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!1 &1401000185 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1401000186} + - component: {fileID: 1401000187} + m_Layer: 0 + m_Name: LeftElbow + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1401000186 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1401000185} + 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: 441399029} + - {fileID: 1644889888} + m_Father: {fileID: 717916951} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1401000187 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1401000185} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c2fadf230d1919748a9aa21d40f74619, type: 3} + m_Name: + m_EditorClassIdentifier: + m_TrackingType: 0 + m_UpdateType: 0 + m_IgnoreTrackingState: 0 + m_PositionInput: + m_UseReference: 1 + m_Action: + m_Name: Position + m_Type: 0 + m_ExpectedControlType: Vector3 + m_Id: 592c4f08-e368-4386-96f0-b3a9b1238cb2 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 74fbcba6-ca8c-4115-9f82-bbf94710c9e5 + m_Path: {Left Foot}/devicePosition + m_Interactions: + m_Processors: + m_Groups: + m_Action: Position + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: 497045822273315187, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_RotationInput: + m_UseReference: 1 + m_Action: + m_Name: Rotation + m_Type: 0 + m_ExpectedControlType: Quaternion + m_Id: 20cb4722-623d-4bf3-9681-16e16b04c81f + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 4600535352203772753, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_TrackingStateInput: + m_UseReference: 0 + m_Action: + m_Name: Tracking State + m_Type: 0 + m_ExpectedControlType: Integer + m_Id: d93b141f-ceee-4f79-be5a-e85c69d0c618 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 0} + m_PositionAction: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_RotationAction: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 +--- !u!1 &1420278163 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1420278164} + - component: {fileID: 1420278167} + - component: {fileID: 1420278166} + - component: {fileID: 1420278165} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1420278164 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1420278163} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.001, y: 0.001, z: 0.001} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1729354995} + m_Father: {fileID: 490406068} + 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.005} + m_SizeDelta: {x: 682, y: 423} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1420278165 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1420278163} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &1420278166 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1420278163} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 1 +--- !u!223 &1420278167 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1420278163} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 31337757} + 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!1 &1433704397 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1433704398} + - component: {fileID: 1433704399} + m_Layer: 0 + m_Name: RightFoot + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1433704398 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1433704397} + 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: 953195990} + - {fileID: 1870967368} + m_Father: {fileID: 717916951} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1433704399 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1433704397} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c2fadf230d1919748a9aa21d40f74619, type: 3} + m_Name: + m_EditorClassIdentifier: + m_TrackingType: 0 + m_UpdateType: 0 + m_IgnoreTrackingState: 0 + m_PositionInput: + m_UseReference: 1 + m_Action: + m_Name: Position + m_Type: 0 + m_ExpectedControlType: Vector3 + m_Id: 592c4f08-e368-4386-96f0-b3a9b1238cb2 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 74fbcba6-ca8c-4115-9f82-bbf94710c9e5 + m_Path: {Left Foot}/devicePosition + m_Interactions: + m_Processors: + m_Groups: + m_Action: Position + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: -7151887923126822100, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_RotationInput: + m_UseReference: 1 + m_Action: + m_Name: Rotation + m_Type: 0 + m_ExpectedControlType: Quaternion + m_Id: 20cb4722-623d-4bf3-9681-16e16b04c81f + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: -7151887923126822100, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_TrackingStateInput: + m_UseReference: 0 + m_Action: + m_Name: Tracking State + m_Type: 0 + m_ExpectedControlType: Integer + m_Id: d93b141f-ceee-4f79-be5a-e85c69d0c618 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 0} + m_PositionAction: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_RotationAction: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 +--- !u!1 &1475645607 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1475645610} + - component: {fileID: 1475645609} + - component: {fileID: 1475645611} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1475645609 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1475645607} + 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 &1475645610 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1475645607} + 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!114 &1475645611 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1475645607} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 01614664b831546d2ae94a42149d80ac, type: 3} + m_Name: + m_EditorClassIdentifier: + m_SendPointerHoverToParent: 1 + m_MoveRepeatDelay: 0.5 + m_MoveRepeatRate: 0.1 + m_XRTrackingOrigin: {fileID: 0} + m_ActionsAsset: {fileID: -944628639613478452, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_PointAction: {fileID: -1654692200621890270, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_MoveAction: {fileID: -8784545083839296357, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_SubmitAction: {fileID: 392368643174621059, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_CancelAction: {fileID: 7727032971491509709, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_LeftClickAction: {fileID: 3001919216989983466, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_MiddleClickAction: {fileID: -2185481485913320682, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_RightClickAction: {fileID: -4090225696740746782, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_ScrollWheelAction: {fileID: 6240969308177333660, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_TrackedDevicePositionAction: {fileID: 6564999863303420839, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_TrackedDeviceOrientationAction: {fileID: 7970375526676320489, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_DeselectOnBackgroundClick: 1 + m_PointerBehavior: 0 + m_CursorLockBehavior: 0 + m_ScrollDeltaPerTick: 6 +--- !u!1 &1510791861 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1510791862} + - component: {fileID: 1510791864} + - component: {fileID: 1510791863} + m_Layer: 5 + m_Name: poseName + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1510791862 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1510791861} + m_LocalRotation: {x: 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: 41993660} + 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: 28.6} + m_SizeDelta: {x: 200, y: 50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1510791863 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1510791861} + 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: Keyboard + 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: 12 + m_fontSizeBase: 12 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + 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: 7.7196884, 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 &1510791864 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1510791861} + m_CullTransparentMesh: 1 +--- !u!1 &1535339415 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1535339416} + - component: {fileID: 1535339417} + m_Layer: 0 + m_Name: RightKnee + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1535339416 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1535339415} + 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: 727722012} + - {fileID: 1248406957} + m_Father: {fileID: 717916951} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1535339417 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1535339415} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c2fadf230d1919748a9aa21d40f74619, type: 3} + m_Name: + m_EditorClassIdentifier: + m_TrackingType: 0 + m_UpdateType: 0 + m_IgnoreTrackingState: 0 + m_PositionInput: + m_UseReference: 1 + m_Action: + m_Name: Position + m_Type: 0 + m_ExpectedControlType: Vector3 + m_Id: 592c4f08-e368-4386-96f0-b3a9b1238cb2 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 74fbcba6-ca8c-4115-9f82-bbf94710c9e5 + m_Path: {Left Foot}/devicePosition + m_Interactions: + m_Processors: + m_Groups: + m_Action: Position + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: -6209597690736150043, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_RotationInput: + m_UseReference: 1 + m_Action: + m_Name: Rotation + m_Type: 0 + m_ExpectedControlType: Quaternion + m_Id: 20cb4722-623d-4bf3-9681-16e16b04c81f + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 4066496712178360859, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_TrackingStateInput: + m_UseReference: 0 + m_Action: + m_Name: Tracking State + m_Type: 0 + m_ExpectedControlType: Integer + m_Id: d93b141f-ceee-4f79-be5a-e85c69d0c618 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 0} + m_PositionAction: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_RotationAction: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 +--- !u!1 &1560019821 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1560019822} + - component: {fileID: 1560019825} + - component: {fileID: 1560019824} + - component: {fileID: 1560019823} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1560019822 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1560019821} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.001, y: 0.001, z: 0.001} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 173012301} + m_Father: {fileID: 1055474048} + 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.005} + m_SizeDelta: {x: 682, y: 423} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1560019823 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1560019821} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &1560019824 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1560019821} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 1 +--- !u!223 &1560019825 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1560019821} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 31337757} + 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!1 &1605914984 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1605914985} + - component: {fileID: 1605914988} + - component: {fileID: 1605914987} + - component: {fileID: 1605914986} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1605914985 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1605914984} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.001, y: 0.001, z: 0.001} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1168884415} + m_Father: {fileID: 898240859} + 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.005} + m_SizeDelta: {x: 682, y: 423} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1605914986 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1605914984} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &1605914987 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1605914984} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 1 +--- !u!223 &1605914988 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1605914984} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 31337757} + 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!1 &1644889887 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1644889888} + - component: {fileID: 1644889891} + - component: {fileID: 1644889890} + - component: {fileID: 1644889889} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1644889888 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1644889887} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.001, y: 0.001, z: 0.001} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 524366377} + m_Father: {fileID: 1401000186} + 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.005} + m_SizeDelta: {x: 682, y: 423} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1644889889 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1644889887} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &1644889890 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1644889887} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 1 +--- !u!223 &1644889891 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1644889887} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 31337757} + 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!1 &1729354994 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1729354995} + - component: {fileID: 1729354997} + - component: {fileID: 1729354996} + m_Layer: 5 + m_Name: poseName + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1729354995 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1729354994} + m_LocalRotation: {x: 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: 1420278164} + 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: 28.6} + m_SizeDelta: {x: 200, y: 50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1729354996 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1729354994} + 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: LeftKnee + 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: 12 + m_fontSizeBase: 12 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + 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: 7.7196884, 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 &1729354997 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1729354994} + m_CullTransparentMesh: 1 +--- !u!1 &1731133446 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1731133447} + - component: {fileID: 1731133450} + - component: {fileID: 1731133449} + - component: {fileID: 1731133448} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1731133447 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1731133446} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.001, y: 0.001, z: 0.001} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 644766441} + m_Father: {fileID: 379161718} + 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.005} + m_SizeDelta: {x: 682, y: 423} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1731133448 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1731133446} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &1731133449 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1731133446} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 1 +--- !u!223 &1731133450 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1731133446} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 31337757} + 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!1 &1870967367 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1870967368} + - component: {fileID: 1870967371} + - component: {fileID: 1870967370} + - component: {fileID: 1870967369} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1870967368 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1870967367} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.001, y: 0.001, z: 0.001} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1192686221} + m_Father: {fileID: 1433704398} + 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.005} + m_SizeDelta: {x: 682, y: 423} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1870967369 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1870967367} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &1870967370 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1870967367} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 1 +--- !u!223 &1870967371 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1870967367} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 31337757} + 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!1 &1997540620 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1997540621} + - component: {fileID: 1997540622} + m_Layer: 0 + m_Name: LeftShoulder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1997540621 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1997540620} + 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: 603050962} + - {fileID: 1069218912} + m_Father: {fileID: 717916951} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1997540622 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1997540620} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c2fadf230d1919748a9aa21d40f74619, type: 3} + m_Name: + m_EditorClassIdentifier: + m_TrackingType: 0 + m_UpdateType: 0 + m_IgnoreTrackingState: 0 + m_PositionInput: + m_UseReference: 1 + m_Action: + m_Name: Position + m_Type: 0 + m_ExpectedControlType: Vector3 + m_Id: 592c4f08-e368-4386-96f0-b3a9b1238cb2 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 74fbcba6-ca8c-4115-9f82-bbf94710c9e5 + m_Path: {Left Foot}/devicePosition + m_Interactions: + m_Processors: + m_Groups: + m_Action: Position + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: 4318809089448976402, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_RotationInput: + m_UseReference: 1 + m_Action: + m_Name: Rotation + m_Type: 0 + m_ExpectedControlType: Quaternion + m_Id: 20cb4722-623d-4bf3-9681-16e16b04c81f + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: -4885954112689467514, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_TrackingStateInput: + m_UseReference: 0 + m_Action: + m_Name: Tracking State + m_Type: 0 + m_ExpectedControlType: Integer + m_Id: d93b141f-ceee-4f79-be5a-e85c69d0c618 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 0} + m_PositionAction: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_RotationAction: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 +--- !u!1001 &2004236750 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 379161718} + m_Modifications: + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 919132149155446097, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_Name + value: Vive_UltimateTracker + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 407031a402781d048945abb5156739ad, type: 3} +--- !u!4 &2004236751 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + m_PrefabInstance: {fileID: 2004236750} + m_PrefabAsset: {fileID: 0} +--- !u!1 &2029056770 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2029056771} + - component: {fileID: 2029056772} + m_Layer: 0 + m_Name: RightElbow + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2029056771 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2029056770} + 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: 862595573} + - {fileID: 1359984208} + m_Father: {fileID: 717916951} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &2029056772 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2029056770} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c2fadf230d1919748a9aa21d40f74619, type: 3} + m_Name: + m_EditorClassIdentifier: + m_TrackingType: 0 + m_UpdateType: 0 + m_IgnoreTrackingState: 0 + m_PositionInput: + m_UseReference: 1 + m_Action: + m_Name: Position + m_Type: 0 + m_ExpectedControlType: Vector3 + m_Id: 592c4f08-e368-4386-96f0-b3a9b1238cb2 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 74fbcba6-ca8c-4115-9f82-bbf94710c9e5 + m_Path: {Left Foot}/devicePosition + m_Interactions: + m_Processors: + m_Groups: + m_Action: Position + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: -4449089966263892595, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_RotationInput: + m_UseReference: 1 + m_Action: + m_Name: Rotation + m_Type: 0 + m_ExpectedControlType: Quaternion + m_Id: 20cb4722-623d-4bf3-9681-16e16b04c81f + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 8662731894356481962, guid: 699f4d2073ed2e34ea7f7944795b868c, type: 3} + m_TrackingStateInput: + m_UseReference: 0 + m_Action: + m_Name: Tracking State + m_Type: 0 + m_ExpectedControlType: Integer + m_Id: d93b141f-ceee-4f79-be5a-e85c69d0c618 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 0} + m_PositionAction: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_RotationAction: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 +--- !u!1001 &2037987272 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 985993137} + m_Modifications: + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 919132149155446097, guid: 407031a402781d048945abb5156739ad, type: 3} + propertyPath: m_Name + value: Vive_UltimateTracker + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 407031a402781d048945abb5156739ad, type: 3} +--- !u!4 &2037987273 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: 407031a402781d048945abb5156739ad, type: 3} + m_PrefabInstance: {fileID: 2037987272} + m_PrefabAsset: {fileID: 0} +--- !u!1660057539 &9223372036854775807 +SceneRoots: + m_ObjectHideFlags: 0 + m_Roots: + - {fileID: 31337758} + - {fileID: 641725338} + - {fileID: 717916951} + - {fileID: 1475645610} diff --git a/com.htc.upm.vive.openxr/Samples~/Samples/Samples/ViveTracker/ViveTrackerSample.unity.meta b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/ViveTracker/ViveTrackerSample.unity.meta new file mode 100644 index 0000000..012ad3c --- /dev/null +++ b/com.htc.upm.vive.openxr/Samples~/Samples/Samples/ViveTracker/ViveTrackerSample.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 85d0fa15bce8ea344b3d8305fa729d20 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental).meta b/com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental).meta index c983d28..d2ede40 100644 --- a/com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental).meta +++ b/com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental).meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 6dd2b37427619d249ae9aeaa746c2f6f +guid: d0dd3ca8bf9cb3943b0d5a2f7ca62fca folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo.meta b/com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo.meta index c98fb2f..f714d13 100644 --- a/com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo.meta +++ b/com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 80e642904ff57634e9191ad924cdbc48 +guid: a423222afc8219e4c97562c81067cab7 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Arts/Female1_withAvatarIK.avatar.asset b/com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Arts/Female1_withAvatarIK.avatar.asset deleted file mode 100644 index 4e85d35..0000000 --- a/com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Arts/Female1_withAvatarIK.avatar.asset +++ /dev/null @@ -1,4223 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!90 &9000000 -Avatar: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: Female1_withAvatarIK.avatar - m_AvatarSize: 34144 - m_Avatar: - serializedVersion: 3 - m_AvatarSkeleton: - data: - m_Node: - - m_ParentId: -1 - m_AxesId: -1 - - m_ParentId: 0 - m_AxesId: -1 - - m_ParentId: 0 - m_AxesId: -1 - - m_ParentId: 0 - m_AxesId: -1 - - m_ParentId: 0 - m_AxesId: -1 - - m_ParentId: 4 - m_AxesId: -1 - - m_ParentId: 5 - m_AxesId: -1 - - m_ParentId: 6 - m_AxesId: -1 - - m_ParentId: 7 - m_AxesId: -1 - - m_ParentId: 8 - m_AxesId: -1 - - m_ParentId: 9 - m_AxesId: -1 - - m_ParentId: 10 - m_AxesId: -1 - - m_ParentId: 10 - m_AxesId: -1 - - m_ParentId: 10 - m_AxesId: -1 - - m_ParentId: 13 - m_AxesId: -1 - - m_ParentId: 14 - m_AxesId: -1 - - m_ParentId: 15 - m_AxesId: -1 - - m_ParentId: 16 - m_AxesId: -1 - - m_ParentId: 17 - m_AxesId: -1 - - m_ParentId: 18 - m_AxesId: -1 - - m_ParentId: 10 - m_AxesId: -1 - - m_ParentId: 20 - m_AxesId: -1 - - m_ParentId: 21 - m_AxesId: -1 - - m_ParentId: 22 - m_AxesId: -1 - - m_ParentId: 23 - m_AxesId: -1 - - m_ParentId: 24 - m_AxesId: -1 - - m_ParentId: 10 - m_AxesId: -1 - - m_ParentId: 26 - m_AxesId: -1 - - m_ParentId: 27 - m_AxesId: -1 - - m_ParentId: 28 - m_AxesId: -1 - - m_ParentId: 29 - m_AxesId: -1 - - m_ParentId: 30 - m_AxesId: -1 - - m_ParentId: 10 - m_AxesId: -1 - - m_ParentId: 32 - m_AxesId: -1 - - m_ParentId: 33 - m_AxesId: -1 - - m_ParentId: 34 - m_AxesId: -1 - - m_ParentId: 35 - m_AxesId: -1 - - m_ParentId: 10 - m_AxesId: -1 - - m_ParentId: 37 - m_AxesId: -1 - - m_ParentId: 38 - m_AxesId: -1 - - m_ParentId: 39 - m_AxesId: -1 - - m_ParentId: 40 - m_AxesId: -1 - - m_ParentId: 10 - m_AxesId: -1 - - m_ParentId: 42 - m_AxesId: -1 - - m_ParentId: 43 - m_AxesId: -1 - - m_ParentId: 44 - m_AxesId: -1 - - m_ParentId: 10 - m_AxesId: -1 - - m_ParentId: 46 - m_AxesId: -1 - - m_ParentId: 47 - m_AxesId: -1 - - m_ParentId: 48 - m_AxesId: -1 - - m_ParentId: 10 - m_AxesId: -1 - - m_ParentId: 50 - m_AxesId: -1 - - m_ParentId: 51 - m_AxesId: -1 - - m_ParentId: 52 - m_AxesId: -1 - - m_ParentId: 10 - m_AxesId: -1 - - m_ParentId: 54 - m_AxesId: -1 - - m_ParentId: 55 - m_AxesId: -1 - - m_ParentId: 56 - m_AxesId: -1 - - m_ParentId: 10 - m_AxesId: -1 - - m_ParentId: 58 - m_AxesId: -1 - - m_ParentId: 59 - m_AxesId: -1 - - m_ParentId: 60 - m_AxesId: -1 - - m_ParentId: 10 - m_AxesId: -1 - - m_ParentId: 62 - m_AxesId: -1 - - m_ParentId: 63 - m_AxesId: -1 - - m_ParentId: 64 - m_AxesId: -1 - - m_ParentId: 10 - m_AxesId: -1 - - m_ParentId: 66 - m_AxesId: -1 - - m_ParentId: 67 - m_AxesId: -1 - - m_ParentId: 68 - m_AxesId: -1 - - m_ParentId: 10 - m_AxesId: -1 - - m_ParentId: 70 - m_AxesId: -1 - - m_ParentId: 71 - m_AxesId: -1 - - m_ParentId: 72 - m_AxesId: -1 - - m_ParentId: 10 - m_AxesId: -1 - - m_ParentId: 74 - m_AxesId: -1 - - m_ParentId: 75 - m_AxesId: -1 - - m_ParentId: 76 - m_AxesId: -1 - - m_ParentId: 10 - m_AxesId: -1 - - m_ParentId: 78 - m_AxesId: -1 - - m_ParentId: 79 - m_AxesId: -1 - - m_ParentId: 80 - m_AxesId: -1 - - m_ParentId: 10 - m_AxesId: -1 - - m_ParentId: 82 - m_AxesId: -1 - - m_ParentId: 83 - m_AxesId: -1 - - m_ParentId: 84 - m_AxesId: -1 - - m_ParentId: 10 - m_AxesId: -1 - - m_ParentId: 86 - m_AxesId: -1 - - m_ParentId: 87 - m_AxesId: -1 - - m_ParentId: 88 - m_AxesId: -1 - - m_ParentId: 10 - m_AxesId: -1 - - m_ParentId: 90 - m_AxesId: -1 - - m_ParentId: 91 - m_AxesId: -1 - - m_ParentId: 92 - m_AxesId: -1 - - m_ParentId: 10 - m_AxesId: -1 - - m_ParentId: 94 - m_AxesId: -1 - - m_ParentId: 95 - m_AxesId: -1 - - m_ParentId: 96 - m_AxesId: -1 - - m_ParentId: 8 - m_AxesId: -1 - - m_ParentId: 98 - m_AxesId: -1 - - m_ParentId: 99 - m_AxesId: -1 - - m_ParentId: 100 - m_AxesId: -1 - - m_ParentId: 101 - m_AxesId: -1 - - m_ParentId: 102 - m_AxesId: -1 - - m_ParentId: 103 - m_AxesId: -1 - - m_ParentId: 101 - m_AxesId: -1 - - m_ParentId: 105 - m_AxesId: -1 - - m_ParentId: 106 - m_AxesId: -1 - - m_ParentId: 101 - m_AxesId: -1 - - m_ParentId: 108 - m_AxesId: -1 - - m_ParentId: 109 - m_AxesId: -1 - - m_ParentId: 101 - m_AxesId: -1 - - m_ParentId: 111 - m_AxesId: -1 - - m_ParentId: 112 - m_AxesId: -1 - - m_ParentId: 101 - m_AxesId: -1 - - m_ParentId: 114 - m_AxesId: -1 - - m_ParentId: 115 - m_AxesId: -1 - - m_ParentId: 101 - m_AxesId: -1 - - m_ParentId: 117 - m_AxesId: -1 - - m_ParentId: 118 - m_AxesId: -1 - - m_ParentId: 100 - m_AxesId: -1 - - m_ParentId: 120 - m_AxesId: -1 - - m_ParentId: 121 - m_AxesId: -1 - - m_ParentId: 8 - m_AxesId: -1 - - m_ParentId: 123 - m_AxesId: -1 - - m_ParentId: 124 - m_AxesId: -1 - - m_ParentId: 125 - m_AxesId: -1 - - m_ParentId: 126 - m_AxesId: -1 - - m_ParentId: 127 - m_AxesId: -1 - - m_ParentId: 128 - m_AxesId: -1 - - m_ParentId: 126 - m_AxesId: -1 - - m_ParentId: 130 - m_AxesId: -1 - - m_ParentId: 131 - m_AxesId: -1 - - m_ParentId: 126 - m_AxesId: -1 - - m_ParentId: 133 - m_AxesId: -1 - - m_ParentId: 134 - m_AxesId: -1 - - m_ParentId: 126 - m_AxesId: -1 - - m_ParentId: 136 - m_AxesId: -1 - - m_ParentId: 137 - m_AxesId: -1 - - m_ParentId: 126 - m_AxesId: -1 - - m_ParentId: 139 - m_AxesId: -1 - - m_ParentId: 140 - m_AxesId: -1 - - m_ParentId: 126 - m_AxesId: -1 - - m_ParentId: 142 - m_AxesId: -1 - - m_ParentId: 143 - m_AxesId: -1 - - m_ParentId: 125 - m_AxesId: -1 - - m_ParentId: 145 - m_AxesId: -1 - - m_ParentId: 146 - m_AxesId: -1 - - m_ParentId: 8 - m_AxesId: -1 - - m_ParentId: 148 - m_AxesId: -1 - - m_ParentId: 149 - m_AxesId: -1 - - m_ParentId: 8 - m_AxesId: -1 - - m_ParentId: 151 - m_AxesId: -1 - - m_ParentId: 152 - m_AxesId: -1 - - m_ParentId: 5 - m_AxesId: -1 - - m_ParentId: 154 - m_AxesId: -1 - - m_ParentId: 155 - m_AxesId: -1 - - m_ParentId: 156 - m_AxesId: -1 - - m_ParentId: 154 - m_AxesId: -1 - - m_ParentId: 158 - m_AxesId: -1 - - m_ParentId: 159 - m_AxesId: -1 - - m_ParentId: 160 - m_AxesId: -1 - - m_ParentId: 161 - m_AxesId: -1 - - m_ParentId: 154 - m_AxesId: -1 - - m_ParentId: 163 - m_AxesId: -1 - - m_ParentId: 164 - m_AxesId: -1 - - m_ParentId: 154 - m_AxesId: -1 - - m_ParentId: 166 - m_AxesId: -1 - - m_ParentId: 167 - m_AxesId: -1 - - m_ParentId: 168 - m_AxesId: -1 - - m_ParentId: 169 - m_AxesId: -1 - - m_ParentId: 154 - m_AxesId: -1 - - m_ParentId: 171 - m_AxesId: -1 - - m_ParentId: 172 - m_AxesId: -1 - - m_ParentId: 154 - m_AxesId: -1 - - m_ParentId: 174 - m_AxesId: -1 - - m_ParentId: 175 - m_AxesId: -1 - - m_ParentId: 5 - m_AxesId: -1 - - m_ParentId: 177 - m_AxesId: -1 - - m_ParentId: 178 - m_AxesId: -1 - - m_ParentId: 179 - m_AxesId: -1 - - m_ParentId: 177 - m_AxesId: -1 - - m_ParentId: 181 - m_AxesId: -1 - - m_ParentId: 182 - m_AxesId: -1 - - m_ParentId: 183 - m_AxesId: -1 - - m_ParentId: 184 - m_AxesId: -1 - - m_ParentId: 177 - m_AxesId: -1 - - m_ParentId: 186 - m_AxesId: -1 - - m_ParentId: 187 - m_AxesId: -1 - - m_ParentId: 177 - m_AxesId: -1 - - m_ParentId: 189 - m_AxesId: -1 - - m_ParentId: 190 - m_AxesId: -1 - - m_ParentId: 191 - m_AxesId: -1 - - m_ParentId: 192 - m_AxesId: -1 - - m_ParentId: 177 - m_AxesId: -1 - - m_ParentId: 194 - m_AxesId: -1 - - m_ParentId: 195 - m_AxesId: -1 - - m_ParentId: 177 - m_AxesId: -1 - - m_ParentId: 197 - m_AxesId: -1 - - m_ParentId: 198 - m_AxesId: -1 - - m_ParentId: 5 - m_AxesId: -1 - - m_ParentId: 200 - m_AxesId: -1 - - m_ParentId: 201 - m_AxesId: -1 - - m_ParentId: 202 - m_AxesId: -1 - - m_ParentId: 203 - m_AxesId: -1 - - m_ParentId: 5 - m_AxesId: -1 - - m_ParentId: 205 - m_AxesId: -1 - - m_ParentId: 206 - m_AxesId: -1 - - m_ParentId: 207 - m_AxesId: -1 - - m_ParentId: 208 - m_AxesId: -1 - - m_ParentId: 0 - m_AxesId: -1 - m_ID: 000000008ca49a7b59d426a527cec53c6556c6b6a4345e7f9d79f969db3d7eb5e688f112c7106328fe0c1055b40418bb579d1adfa5298a0edbc94e6670c873c95cdf2a9be54086b369b4a771a605ff451f788397932c8fd64b149a6ad2af99b82ae762166cd4facb894884e0948de00f9d5d12bd977dd8105078eec350029f442adde07e42e07d6c7caa38f6ce4effffaab76f9cbcede709454112b5aae3b0218b9cbe5783f92d0f06bcee900da4d305913f5982cc31b232908ce9e70a05bcdc4776d155032d1a2101915677a17fe9c253d00c14169d02c697a15100a6de861b859984c3d981aad572289660de929c210e7e9c71530c8a50e4189117d933f3f8d83714a69c1022435e49988e91d63248e3ebfd05cd35da77c8799ff996775d9135a275d2022972646becfb67401ac0f2d4555f996f7f2a1efddcfc1047bbaf2b021cd74ea063820d478df5890f5e6e9b39c03eedf1467a39d1bdf2fe08ff0142ef89b63a3e5ad22a40a04d6ea385545cfb2f6b7b2beacacdd6904a19a4243b852d66e3ace4f662de76bf9c7f6f9f9cc8bb0e4b0be42785794ad2d9d9f85d986d34fc2df270b58c17ec8c4e18ed03b0ccd97e0281581491be11ae9ba7b466a4ba5b6962df4f1f354836ad4abf9470919abf6a6b5e251494829997fed487ce5cb27a93826759086475117a05392d0efb462c0e54d1064753ab774ec1b00b9dc239e287df7b7f1ce5ed39dfb7160273009399dd5e3c90143980b6ebdf3565707557be39027499a05a704294a2b677e2515f8eaad68cf48aa3414a02c9b2c001387b998e90f920818c49c177390bbbcace851c3920d497608202b93df7948fdec1e3589948ad21cd9a210c3a692bf966b2ffe417ce8f61c53f1d8b6b5b03d149ddae1ea7a25f4701aeb906d02a39763c0a34bcb5e5794bc1c33af7d6a655e5602c2260310a1df2cf2dbc436247344363737a5c659625a6c24ae842820f4b700082652c042ceb578b0e12baf77ae60e20fe811260a4ee33a1481d8c623e1fc2de8d3de5a18f50d76a4b5de4ec32267cf1b7bb4ed5670a83fe029081a255112fa059b053e7fbb78b61e264fba960641738dce1cab0fe34d0523759b044d0a7291088db41e43223224c3c12a4c875003c7d1937c74034187b63238a1b4475b1a5b912d102e0e9dc3184214e1574531b - m_AxesArray: [] - m_AvatarSkeletonPose: - data: - m_X: - - t: {x: 0, y: 0, z: 0} - q: {x: 0, y: 0, z: 0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: 0.93650174, z: 0.0036878982} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 5.948816e-32, y: 0.050968885, z: 0.012252513} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -2.0149595e-17, y: 0.110621214, z: 0.0029853042} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 2.9083892e-17, y: 0.10536587, z: -0.014336677} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 9.127545e-17, y: 0.1294887, z: -0.03754457} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.000000005196695, y: 0.075594306, z: 0.009783598} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.014784996, y: 0.06125927, z: 0.022221765} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.014784982, y: 0.06125927, z: 0.022221772} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0060543846, y: 0.19155574, z: -0.11623336} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.0032195332, y: -0.09500408, z: -0.029305004} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.003834067, y: -0.09629369, z: -0.024558365} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.0045603532, y: -0.0975678, z: -0.01879552} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.004833374, y: -0.097961664, z: -0.016576946} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.004801523, y: -0.09791851, z: -0.016837388} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.0033789221, y: -0.06890714, z: -0.011848748} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.023998903, y: 0.17999744, z: -0.09226433} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.017848196, y: -0.10116458, z: -0.025196552} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.019145628, y: -0.102164984, z: -0.019412987} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.020202043, y: -0.102792144, z: -0.014479518} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.020311652, y: -0.102844834, z: -0.013952583} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.013444329, y: -0.06807315, z: -0.009235263} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.011216303, y: 0.19704938, z: -0.109584175} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.02504052, y: -0.09843135, z: -0.013009474} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.020819375, y: -0.09838283, z: -0.019334368} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.01747091, y: -0.09802544, z: -0.024187118} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.017163226, y: -0.097975254, z: -0.024624199} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.011724673, y: -0.06692958, z: -0.016821474} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.09034192, y: 0.020739079, z: 0.013131157} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0005200654, y: -0.052738905, z: 0.011005877} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.0051159784, y: -0.045720816, z: 0.02806885} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.017751932, y: -0.034382105, z: 0.036584526} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.023335353, y: -0.045196176, z: 0.04809127} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.09037836, y: 0.018492937, z: 0.0131891295} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.00038973987, y: -0.051941752, z: 0.011532931} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.00504905, y: -0.04497254, z: 0.028033623} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.017956987, y: -0.033681393, z: 0.036034673} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0239464, y: -0.044915557, z: 0.048053756} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0038271134, y: 0.10032368, z: 0.11484787} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.0114425, y: -0.038627625, z: -0.0029882044} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.023252435, y: -0.030773401, z: -0.0087142885} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.04116246, y: -0.05447638, z: -0.015426412} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.09799406, y: 0.07294512, z: 0.038732037} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.008405648, y: -0.035627127, z: 0.0036858395} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.021355107, y: -0.028679848, z: 0.006578073} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.041115865, y: -0.05521846, z: 0.012665033} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.1039162, y: 0.06665754, z: 0.01088972} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.012210831, y: -0.035097122, z: 0.0028314441} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.021619588, y: -0.029940248, z: -0.0024947487} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.04088626, y: -0.05662203, z: -0.0047179908} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.103599615, y: 0.06952298, z: 0.010509707} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.011073269, y: -0.03683269, z: 0.00053985044} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.022228621, y: -0.03105092, z: -0.002774533} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.040639482, y: -0.056768894, z: -0.005072549} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.09720296, y: 0.06601691, z: 0.038295604} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.008842394, y: -0.031521797, z: 0.0020156577} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.019210495, y: -0.025567174, z: 0.0049108267} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.041562013, y: -0.05531466, z: 0.010624602} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.08736309, y: 0.061727047, z: -0.078165144} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0076676607, y: -0.034651995, z: 0.0029347688} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.017155953, y: -0.030285716, z: 0.006837338} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.033854835, y: -0.059764504, z: 0.01349251} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.003668399, y: 0.074970245, z: -0.12469099} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.00081768166, y: -0.04406452, z: 0.00985533} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.008002964, y: -0.039358377, z: 0.020634204} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.012406546, y: -0.06101513, z: 0.031988047} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.092061795, y: 0.06233096, z: -0.07076192} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.006141573, y: -0.036583662, z: 0.006459132} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.012260839, y: -0.03093195, z: 0.017225683} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.022906553, y: -0.057789207, z: 0.032182217} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.038898736, y: -0.019448876, z: -0.040619954} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0060002767, y: -0.018793583, z: -0.0030941814} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0022521075, y: -0.019284606, z: -0.0043754727} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.007920966, y: -0.06782651, z: -0.015389115} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.010106603, y: -0.004513502, z: -0.068655685} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0025522728, y: -0.030941367, z: 0.011916444} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0056611383, y: -0.03245902, z: -0.0000307858} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.01202706, y: -0.068959, z: -0.0000654012} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.04439354, y: -0.011398077, z: -0.0384506} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.0067237467, y: -0.024332285, z: 0.0013642758} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.0070233773, y: -0.021796703, z: -0.011003256} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.019350724, y: -0.060054064, z: -0.030316055} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.06916933, y: 0.09241533, z: 0.08386295} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.00031793863, y: -0.031071424, z: -0.003433995} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.010192722, y: -0.029346943, z: 0.0015152171} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.022939213, y: -0.066046715, z: 0.0034100711} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.030270243, y: 0.11486733, z: 0.109852746} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.03878224, y: -0.035150647, z: -0.012748048} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.040310033, y: -0.00279212, z: -0.033838585} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.053538345, y: -0.0037083626, z: -0.0449432} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.06878384, y: 0.095115304, z: 0.084242165} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.00079639256, y: -0.0322783, z: -0.0035905913} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.013975155, y: -0.027860403, z: 0.006449461} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.030734617, y: -0.06127155, z: 0.014183879} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.020808386, y: 0.1034497, z: -0.02933467} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.06679835, y: -0.0100136995, z: 0.000000014901161} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.21410698, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.19947156, y: 0.0000023841858, z: 0.00036800653} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.060842276, y: 0.007224083, z: 0.019240757} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.030905277, y: 0, z: -0.0006325543} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.019009352, y: -0.0005789995, z: -0.0007722862} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.056770742, y: 0.007224083, z: -0.028558226} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.02921474, y: 0, z: 0.000000014901161} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.016837686, y: 0.00000011920929, z: -0.000000022351742} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.06167108, y: 0.007224202, z: 0.0020036474} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.03443119, y: -0.00000011920929, z: 0.000000007450581} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.021241367, y: 0.00000011920929, z: -0.000000007450581} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.060968697, y: 0.007224083, z: -0.01330054} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.03193912, y: 0, z: -0.000000014901161} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.01843214, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.0032740831, y: -0.0097965, z: 0.01562553} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.032867372, y: -0.0020189285, z: 0.029622039} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.02096486, y: -0.0009496212, z: 0.017276319} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.004469067, y: -0.015556693, z: -0.008071767} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.042382568, y: -0.0041464567, z: -0.0023704246} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.06955972, y: -0.0068053007, z: -0.0038904175} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.09607756, y: -0.019597769, z: 0.0024976358} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.0049577653, y: -0.07610023, z: 0.0052430034} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.0045399964, y: -0.06968737, z: 0.004801186} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.020808386, y: 0.1034497, z: -0.02933467} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.06679835, y: -0.0100136995, z: 0.000000014901161} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.21410698, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.19947156, y: 0.0000023841858, z: 0.00036800653} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.060842276, y: 0.007224083, z: 0.019240757} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.030905277, y: 0, z: -0.0006325543} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.019009352, y: -0.0005789995, z: -0.0007722862} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.056770742, y: 0.007224083, z: -0.028558226} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.02921474, y: 0, z: 0.000000014901161} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.016837686, y: 0.00000011920929, z: -0.000000022351742} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.06167108, y: 0.007224202, z: 0.0020036474} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.03443119, y: -0.00000011920929, z: 0.000000007450581} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.021241367, y: 0.00000011920929, z: -0.000000007450581} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.060968697, y: 0.007224083, z: -0.01330054} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.03193912, y: 0, z: -0.000000014901161} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.01843214, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0032740831, y: -0.0097965, z: 0.01562553} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.032867372, y: -0.0020189285, z: 0.029622039} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.02096486, y: -0.0009496212, z: 0.017276319} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.004469067, y: -0.015556693, z: -0.008071767} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.042382568, y: -0.0041464567, z: -0.0023704246} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.06955972, y: -0.0068053007, z: -0.0038904175} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.09607756, y: -0.019597769, z: 0.0024976358} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0049577653, y: -0.07610023, z: 0.0052430034} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0045399964, y: -0.06968737, z: 0.004801186} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.051190045, y: -0.007102847, z: 0.067519896} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.015037615, y: 0.0036982298, z: 0.030056074} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.031132981, y: 0.0076565742, z: 0.062226303} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.051190045, y: -0.007102847, z: 0.067519896} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.015037615, y: 0.0036982298, z: 0.030056074} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.031132981, y: 0.0076565742, z: 0.062226303} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.07168864, y: -0.03872311, z: -0.0035527977} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.000000014901161, y: -0.3756488, z: -0.010205619} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: -0.4251067, z: -0.023510326} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: -0.0613662, z: 0.09755388} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.00051371753, y: 0.03553772, z: -0.12787059} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.0321839, y: -0.12671971, z: -0.05308689} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.031471446, y: -0.1283117, z: -0.04816988} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.015666068, y: -0.06387186, z: -0.023978308} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.002153173, y: -0.040513754, z: -0.11518712} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.00886596, y: -0.08771938, z: -0.013875127} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.006953582, y: -0.06879842, z: -0.010882273} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0041720867, y: 0.0041890144, z: 0.14196625} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.022604093, y: -0.12880695, z: 0.019534513} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.02736549, y: -0.15725672, z: 0.024203286} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.011865273, y: -0.0681842, z: 0.0104941875} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.00864964, y: -0.05833465, z: 0.12072687} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.008657336, y: -0.096174896, z: -0.0006926805} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.006275624, y: -0.069716334, z: -0.000502117} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.10469708, y: -0.04024589, z: 0.003496936} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.026975378, y: -0.09512514, z: -0.010761733} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.018985301, y: -0.06694919, z: -0.0075741177} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.07168864, y: -0.03872311, z: -0.0035527977} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.000000014901161, y: -0.3756488, z: -0.010205619} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: -0.4251067, z: -0.023510326} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: -0.0613662, z: 0.09755388} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.00051373243, y: 0.03553754, z: -0.12787092} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0321839, y: -0.12671995, z: -0.053086832} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.031471908, y: -0.12831116, z: -0.048169613} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.01566635, y: -0.0638718, z: -0.023978248} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.0021531358, y: -0.040513754, z: -0.11518711} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0068022385, y: -0.0878436, z: -0.01423265} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.005335167, y: -0.0688979, z: -0.011163011} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.0041720644, y: 0.0041888356, z: 0.14196649} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.022604086, y: -0.12880653, z: 0.019534424} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.027364962, y: -0.1572566, z: 0.02420336} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.011865057, y: -0.06818426, z: 0.010494232} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.008878, y: -0.058356643, z: 0.12080709} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.008391716, y: -0.096199274, z: -0.0005996004} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.006083064, y: -0.06973386, z: -0.00043464452} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.10469708, y: -0.04024577, z: 0.0034969351} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.026974961, y: -0.09512484, z: -0.010761726} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.018985078, y: -0.06694925, z: -0.007574144} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.1839734, y: -0.01717341, z: 0.008129962} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.04965982, y: -0.12537038, z: -0.007807067} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.040121317, y: -0.11963594, z: -0.0065027433} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.022227585, y: -0.06627941, z: -0.0036025797} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.18397318, y: -0.017173588, z: 0.008129945} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.049659625, y: -0.12536985, z: -0.0078070783} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.040121317, y: -0.11963624, z: -0.0065027284} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.022227526, y: -0.06627941, z: -0.003602563} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - m_DefaultPose: - data: - m_X: - - t: {x: 0, y: 0, z: 0} - q: {x: 0, y: 0, z: 0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: 0.93650174, z: 0.0036878982} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 5.948816e-32, y: 0.050968885, z: 0.012252513} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -2.0149595e-17, y: 0.110621214, z: 0.0029853042} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 2.9083892e-17, y: 0.10536587, z: -0.014336677} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 9.127545e-17, y: 0.1294887, z: -0.03754457} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.000000005196695, y: 0.075594306, z: 0.009783598} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.014784996, y: 0.06125927, z: 0.022221765} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.014784982, y: 0.06125927, z: 0.022221772} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0060543846, y: 0.19155574, z: -0.11623336} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.0032195332, y: -0.09500408, z: -0.029305004} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.003834067, y: -0.09629369, z: -0.024558365} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.0045603532, y: -0.0975678, z: -0.01879552} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.004833374, y: -0.097961664, z: -0.016576946} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.004801523, y: -0.09791851, z: -0.016837388} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.0033789221, y: -0.06890714, z: -0.011848748} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.023998903, y: 0.17999744, z: -0.09226433} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.017848196, y: -0.10116458, z: -0.025196552} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.019145628, y: -0.102164984, z: -0.019412987} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.020202043, y: -0.102792144, z: -0.014479518} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.020311652, y: -0.102844834, z: -0.013952583} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.013444329, y: -0.06807315, z: -0.009235263} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.011216303, y: 0.19704938, z: -0.109584175} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.02504052, y: -0.09843135, z: -0.013009474} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.020819375, y: -0.09838283, z: -0.019334368} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.01747091, y: -0.09802544, z: -0.024187118} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.017163226, y: -0.097975254, z: -0.024624199} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.011724673, y: -0.06692958, z: -0.016821474} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.09034192, y: 0.020739079, z: 0.013131157} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0005200654, y: -0.052738905, z: 0.011005877} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.0051159784, y: -0.045720816, z: 0.02806885} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.017751932, y: -0.034382105, z: 0.036584526} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.023335353, y: -0.045196176, z: 0.04809127} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.09037836, y: 0.018492937, z: 0.0131891295} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.00038973987, y: -0.051941752, z: 0.011532931} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.00504905, y: -0.04497254, z: 0.028033623} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.017956987, y: -0.033681393, z: 0.036034673} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0239464, y: -0.044915557, z: 0.048053756} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0038271134, y: 0.10032368, z: 0.11484787} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.0114425, y: -0.038627625, z: -0.0029882044} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.023252435, y: -0.030773401, z: -0.0087142885} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.04116246, y: -0.05447638, z: -0.015426412} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.09799406, y: 0.07294512, z: 0.038732037} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.008405648, y: -0.035627127, z: 0.0036858395} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.021355107, y: -0.028679848, z: 0.006578073} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.041115865, y: -0.05521846, z: 0.012665033} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.1039162, y: 0.06665754, z: 0.01088972} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.012210831, y: -0.035097122, z: 0.0028314441} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.021619588, y: -0.029940248, z: -0.0024947487} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.04088626, y: -0.05662203, z: -0.0047179908} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.103599615, y: 0.06952298, z: 0.010509707} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.011073269, y: -0.03683269, z: 0.00053985044} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.022228621, y: -0.03105092, z: -0.002774533} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.040639482, y: -0.056768894, z: -0.005072549} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.09720296, y: 0.06601691, z: 0.038295604} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.008842394, y: -0.031521797, z: 0.0020156577} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.019210495, y: -0.025567174, z: 0.0049108267} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.041562013, y: -0.05531466, z: 0.010624602} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.08736309, y: 0.061727047, z: -0.078165144} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0076676607, y: -0.034651995, z: 0.0029347688} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.017155953, y: -0.030285716, z: 0.006837338} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.033854835, y: -0.059764504, z: 0.01349251} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.003668399, y: 0.074970245, z: -0.12469099} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.00081768166, y: -0.04406452, z: 0.00985533} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.008002964, y: -0.039358377, z: 0.020634204} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.012406546, y: -0.06101513, z: 0.031988047} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.092061795, y: 0.06233096, z: -0.07076192} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.006141573, y: -0.036583662, z: 0.006459132} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.012260839, y: -0.03093195, z: 0.017225683} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.022906553, y: -0.057789207, z: 0.032182217} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.038898736, y: -0.019448876, z: -0.040619954} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0060002767, y: -0.018793583, z: -0.0030941814} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0022521075, y: -0.019284606, z: -0.0043754727} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.007920966, y: -0.06782651, z: -0.015389115} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.010106603, y: -0.004513502, z: -0.068655685} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0025522728, y: -0.030941367, z: 0.011916444} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0056611383, y: -0.03245902, z: -0.0000307858} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.01202706, y: -0.068959, z: -0.0000654012} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.04439354, y: -0.011398077, z: -0.0384506} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.0067237467, y: -0.024332285, z: 0.0013642758} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.0070233773, y: -0.021796703, z: -0.011003256} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.019350724, y: -0.060054064, z: -0.030316055} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.06916933, y: 0.09241533, z: 0.08386295} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.00031793863, y: -0.031071424, z: -0.003433995} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.010192722, y: -0.029346943, z: 0.0015152171} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.022939213, y: -0.066046715, z: 0.0034100711} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.030270243, y: 0.11486733, z: 0.109852746} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.03878224, y: -0.035150647, z: -0.012748048} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.040310033, y: -0.00279212, z: -0.033838585} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.053538345, y: -0.0037083626, z: -0.0449432} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.06878384, y: 0.095115304, z: 0.084242165} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.00079639256, y: -0.0322783, z: -0.0035905913} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.013975155, y: -0.027860403, z: 0.006449461} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.030734617, y: -0.06127155, z: 0.014183879} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.020808386, y: 0.1034497, z: -0.02933467} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.06679835, y: -0.0100136995, z: 0.000000014901161} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.21410698, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.19947156, y: 0.0000023841858, z: 0.00036800653} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.060842276, y: 0.007224083, z: 0.019240757} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.030905277, y: 0, z: -0.0006325543} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.019009352, y: -0.0005789995, z: -0.0007722862} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.056770742, y: 0.007224083, z: -0.028558226} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.02921474, y: 0, z: 0.000000014901161} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.016837686, y: 0.00000011920929, z: -0.000000022351742} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.06167108, y: 0.007224202, z: 0.0020036474} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.03443119, y: -0.00000011920929, z: 0.000000007450581} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.021241367, y: 0.00000011920929, z: -0.000000007450581} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.060968697, y: 0.007224083, z: -0.01330054} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.03193912, y: 0, z: -0.000000014901161} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.01843214, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.0032740831, y: -0.0097965, z: 0.01562553} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.032867372, y: -0.0020189285, z: 0.029622039} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.02096486, y: -0.0009496212, z: 0.017276319} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.004469067, y: -0.015556693, z: -0.008071767} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.042382568, y: -0.0041464567, z: -0.0023704246} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.06955972, y: -0.0068053007, z: -0.0038904175} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.09607756, y: -0.019597769, z: 0.0024976358} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.0049577653, y: -0.07610023, z: 0.0052430034} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.0045399964, y: -0.06968737, z: 0.004801186} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.020808386, y: 0.1034497, z: -0.02933467} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.06679835, y: -0.0100136995, z: 0.000000014901161} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.21410698, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.19947156, y: 0.0000023841858, z: 0.00036800653} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.060842276, y: 0.007224083, z: 0.019240757} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.030905277, y: 0, z: -0.0006325543} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.019009352, y: -0.0005789995, z: -0.0007722862} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.056770742, y: 0.007224083, z: -0.028558226} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.02921474, y: 0, z: 0.000000014901161} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.016837686, y: 0.00000011920929, z: -0.000000022351742} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.06167108, y: 0.007224202, z: 0.0020036474} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.03443119, y: -0.00000011920929, z: 0.000000007450581} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.021241367, y: 0.00000011920929, z: -0.000000007450581} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.060968697, y: 0.007224083, z: -0.01330054} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.03193912, y: 0, z: -0.000000014901161} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.01843214, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0032740831, y: -0.0097965, z: 0.01562553} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.032867372, y: -0.0020189285, z: 0.029622039} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.02096486, y: -0.0009496212, z: 0.017276319} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.004469067, y: -0.015556693, z: -0.008071767} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.042382568, y: -0.0041464567, z: -0.0023704246} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.06955972, y: -0.0068053007, z: -0.0038904175} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.09607756, y: -0.019597769, z: 0.0024976358} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0049577653, y: -0.07610023, z: 0.0052430034} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0045399964, y: -0.06968737, z: 0.004801186} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.051190045, y: -0.007102847, z: 0.067519896} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.015037615, y: 0.0036982298, z: 0.030056074} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.031132981, y: 0.0076565742, z: 0.062226303} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.051190045, y: -0.007102847, z: 0.067519896} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.015037615, y: 0.0036982298, z: 0.030056074} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.031132981, y: 0.0076565742, z: 0.062226303} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.07168864, y: -0.03872311, z: -0.0035527977} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.000000014901161, y: -0.3756488, z: -0.010205619} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: -0.4251067, z: -0.023510326} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: -0.0613662, z: 0.09755388} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.00051371753, y: 0.03553772, z: -0.12787059} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.0321839, y: -0.12671971, z: -0.05308689} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.031471446, y: -0.1283117, z: -0.04816988} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.015666068, y: -0.06387186, z: -0.023978308} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.002153173, y: -0.040513754, z: -0.11518712} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.00886596, y: -0.08771938, z: -0.013875127} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.006953582, y: -0.06879842, z: -0.010882273} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0041720867, y: 0.0041890144, z: 0.14196625} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.022604093, y: -0.12880695, z: 0.019534513} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.02736549, y: -0.15725672, z: 0.024203286} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.011865273, y: -0.0681842, z: 0.0104941875} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.00864964, y: -0.05833465, z: 0.12072687} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.008657336, y: -0.096174896, z: -0.0006926805} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.006275624, y: -0.069716334, z: -0.000502117} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.10469708, y: -0.04024589, z: 0.003496936} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.026975378, y: -0.09512514, z: -0.010761733} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.018985301, y: -0.06694919, z: -0.0075741177} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.07168864, y: -0.03872311, z: -0.0035527977} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.000000014901161, y: -0.3756488, z: -0.010205619} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: -0.4251067, z: -0.023510326} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: -0.0613662, z: 0.09755388} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.00051373243, y: 0.03553754, z: -0.12787092} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0321839, y: -0.12671995, z: -0.053086832} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.031471908, y: -0.12831116, z: -0.048169613} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.01566635, y: -0.0638718, z: -0.023978248} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.0021531358, y: -0.040513754, z: -0.11518711} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0068022385, y: -0.0878436, z: -0.01423265} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.005335167, y: -0.0688979, z: -0.011163011} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.0041720644, y: 0.0041888356, z: 0.14196649} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.022604086, y: -0.12880653, z: 0.019534424} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.027364962, y: -0.1572566, z: 0.02420336} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.011865057, y: -0.06818426, z: 0.010494232} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.008878, y: -0.058356643, z: 0.12080709} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.008391716, y: -0.096199274, z: -0.0005996004} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.006083064, y: -0.06973386, z: -0.00043464452} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.10469708, y: -0.04024577, z: 0.0034969351} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.026974961, y: -0.09512484, z: -0.010761726} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.018985078, y: -0.06694925, z: -0.007574144} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.1839734, y: -0.01717341, z: 0.008129962} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.04965982, y: -0.12537038, z: -0.007807067} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.040121317, y: -0.11963594, z: -0.0065027433} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.022227585, y: -0.06627941, z: -0.0036025797} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.18397318, y: -0.017173588, z: 0.008129945} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.049659625, y: -0.12536985, z: -0.0078070783} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.040121317, y: -0.11963624, z: -0.0065027284} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.022227526, y: -0.06627941, z: -0.003602563} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - m_SkeletonNameIDArray: 000000008ca49a7b59d426a527cec53c6556c6b665a19f95493a2d043167a66d679237d619de6dcbd6fe8f4cede95e8d0e705ce90f862d4be1299859844e24e13d76f37c58114fc4b6befad6c196ad3bb5d724d25b7891c03e1f2d788727fae5e240465df2eb82f223e723a5cd4896b7a82f2a0f1117fd927470412a42c2e2cf8072473b6eddf2290bba4e91b282990ccc1e68b11642404cf8edf55e9d8a49e624b29e7b7c37088cac1349d542bcfcc727db407fb5446dc13a234ea2d48cfbb0b1eb4708056d0dfcab3ef1324591442020f6f898d4fa5d7e3d0ef645d3a14357b6c6ffef64d33d43d887312536288437534f388fb06271854eb73652a0188340c57f3ff8004b11b8f4e63fcb1a498ad97f2e3661d031b1ff62d638bc8c798daee91e31166018d1c2c1435c222fece9304a8b558870c4f17057735b55b9dcee47dcbb52ffc0ed914ded2252cc038de7de66ea5b661097310a7b1255bb95bde0a9f0da5c11a0be5137ea0fea2b04a05f3961c7e381712901b57c3fed5c9290584ef7f7e4f6c1006188da54a6855d538d16c2a5eaf910f8483d2b7a3629912b3fb0071b38c7160bc92dac5ac0b43a6ac7c3bfc047bb05914e2293a1495524439f5a9e1296c3082291b45705a54fed54acd67b64aba1333eb33a4e9af75f7c03f166fd327ce44dce76ed5451061881e5c1bc06e2ea2f99148dc0fb9b94043259074088080ed91e3809aef592cb494fc3c2d0d9f3c5a75c5945dfe6084c4670384b31b7a47e6d0df577f49bc570834e269426f4779dbf62479ac8df579a97dfd47968bd35b404c8fad9220f2e481487405d0501c8a8b5bb99a12ce481e2f0922f4982287e401b296e620c86ad03fb195b64140c83a5d38490275f8def401de888fca5062749b788fcaff624c9e5a4e4527c2ed63601f3cbc7e1534668dbbc230f6704cda0d2162558fd809f167ef445e76864960be47dbb404fcdd0ec7951d21245fe1c486309dd1c64c242ea032de7e079ea6709253bb76851b4d20fed0c3ca0581e14d19071347ee448083b558347788fc40af1a43173a07e7a16c7c2c2f86877d067b8c3794c0725e97f6079cd0a26dbfaabf74e213c8550fc435ccbc9dd7e266b861e8b3ce37937840dd68296b57ccff1dc0c08bcbc999a95d9fe262d3751933f2951f076ccbb09501574531b - m_Human: - data: - serializedVersion: 2 - m_RootX: - t: {x: 0.001946428, y: 0.95183253, z: -0.0076206247} - q: {x: -0.031124543, y: -0, z: -0, w: 0.99951553} - s: {x: 1, y: 1, z: 1} - m_Skeleton: - data: - m_Node: - - m_ParentId: -1 - m_AxesId: -1 - - m_ParentId: 0 - m_AxesId: 0 - - m_ParentId: 1 - m_AxesId: 1 - - m_ParentId: 2 - m_AxesId: 2 - - m_ParentId: 3 - m_AxesId: 3 - - m_ParentId: 4 - m_AxesId: 4 - - m_ParentId: 5 - m_AxesId: 5 - - m_ParentId: 6 - m_AxesId: 6 - - m_ParentId: 6 - m_AxesId: 7 - - m_ParentId: 4 - m_AxesId: 8 - - m_ParentId: 9 - m_AxesId: 9 - - m_ParentId: 10 - m_AxesId: 10 - - m_ParentId: 11 - m_AxesId: 11 - - m_ParentId: 12 - m_AxesId: 12 - - m_ParentId: 13 - m_AxesId: 13 - - m_ParentId: 14 - m_AxesId: 14 - - m_ParentId: 12 - m_AxesId: 15 - - m_ParentId: 16 - m_AxesId: 16 - - m_ParentId: 17 - m_AxesId: 17 - - m_ParentId: 12 - m_AxesId: 18 - - m_ParentId: 19 - m_AxesId: 19 - - m_ParentId: 20 - m_AxesId: 20 - - m_ParentId: 12 - m_AxesId: 21 - - m_ParentId: 22 - m_AxesId: 22 - - m_ParentId: 23 - m_AxesId: 23 - - m_ParentId: 12 - m_AxesId: 24 - - m_ParentId: 25 - m_AxesId: 25 - - m_ParentId: 26 - m_AxesId: 26 - - m_ParentId: 4 - m_AxesId: 27 - - m_ParentId: 28 - m_AxesId: 28 - - m_ParentId: 29 - m_AxesId: 29 - - m_ParentId: 30 - m_AxesId: 30 - - m_ParentId: 31 - m_AxesId: 31 - - m_ParentId: 32 - m_AxesId: 32 - - m_ParentId: 33 - m_AxesId: 33 - - m_ParentId: 31 - m_AxesId: 34 - - m_ParentId: 35 - m_AxesId: 35 - - m_ParentId: 36 - m_AxesId: 36 - - m_ParentId: 31 - m_AxesId: 37 - - m_ParentId: 38 - m_AxesId: 38 - - m_ParentId: 39 - m_AxesId: 39 - - m_ParentId: 31 - m_AxesId: 40 - - m_ParentId: 41 - m_AxesId: 41 - - m_ParentId: 42 - m_AxesId: 42 - - m_ParentId: 31 - m_AxesId: 43 - - m_ParentId: 44 - m_AxesId: 44 - - m_ParentId: 45 - m_AxesId: 45 - - m_ParentId: 1 - m_AxesId: 46 - - m_ParentId: 47 - m_AxesId: 47 - - m_ParentId: 48 - m_AxesId: 48 - - m_ParentId: 49 - m_AxesId: 49 - - m_ParentId: 1 - m_AxesId: 50 - - m_ParentId: 51 - m_AxesId: 51 - - m_ParentId: 52 - m_AxesId: 52 - - m_ParentId: 53 - m_AxesId: 53 - m_ID: 6556c6b6a4345e7f9d79f969db3d7eb5e688f112c7106328fe0c1055b40418bb579d1adf76bf9c7f6f9f9cc8bb0e4b0be42785794ad2d9d9f85d986d34fc2df270b58c17ec8c4e18ed03b0ccd97e0281581491be11ae9ba7b466a4ba5b6962df4f1f354836ad4abf9470919abf6a6b5e2d0efb462c0e54d1064753ab774ec1b00b9dc239e287df7b7f1ce5ed39dfb7160273009399dd5e3c90143980b6ebdf3565707557be39027499a05a704294a2b677e2515f8eaad68cf48aa3410c3a692bf966b2ffe417ce8f61c53f1d578b0e12baf77ae60e20fe811260a4ee - m_AxesArray: - - m_PreQ: {x: -0.4376833, y: -0.55536777, z: 0.4376833, w: 0.55536777} - m_PostQ: {x: -0.4376833, y: -0.55536777, z: 0.4376833, w: 0.55536777} - m_Sgn: {x: 1, y: 1, z: 1} - m_Limit: - m_Min: {x: -0.6981317, y: -0.6981317, z: -0.6981317} - m_Max: {x: 0.6981317, y: 0.6981317, z: 0.6981317} - m_Length: 0.052420907 - m_Type: 1 - - m_PreQ: {x: 0.49320966, y: 0.5066994, z: -0.49320966, w: -0.5066994} - m_PostQ: {x: 0.49320966, y: 0.5066994, z: -0.49320966, w: -0.5066994} - m_Sgn: {x: 1, y: 1, z: 1} - m_Limit: - m_Min: {x: -0.6981317, y: -0.6981317, z: -0.6981317} - m_Max: {x: 0.6981317, y: 0.6981317, z: 0.6981317} - m_Length: 0.11066149 - m_Type: 1 - - m_PreQ: {x: 0.53264046, y: 0.4650744, z: -0.53264046, w: -0.4650744} - m_PostQ: {x: 0.53264046, y: 0.4650744, z: -0.53264046, w: -0.4650744} - m_Sgn: {x: 1, y: 1, z: 1} - m_Limit: - m_Min: {x: -0.6981317, y: -0.6981317, z: -0.6981317} - m_Max: {x: 0.6981317, y: 0.6981317, z: 0.6981317} - m_Length: 0.106336765 - m_Type: 1 - - m_PreQ: {x: 0.56534845, y: 0.424713, z: -0.5653485, w: -0.424713} - m_PostQ: {x: 0.56534845, y: 0.424713, z: -0.5653485, w: -0.424713} - m_Sgn: {x: 1, y: 1, z: 1} - m_Limit: - m_Min: {x: -0.34906584, y: -0.34906584, z: -0.34906584} - m_Max: {x: 0.34906584, y: 0.34906584, z: 0.34906584} - m_Length: 0.1348218 - m_Type: 1 - - m_PreQ: {x: -0.4668105, y: -0.5311195, z: 0.46681046, w: 0.53111964} - m_PostQ: {x: -0.4668105, y: -0.5311195, z: 0.46681046, w: 0.53111964} - m_Sgn: {x: 1, y: 1, z: 1} - m_Limit: - m_Min: {x: -0.6981317, y: -0.6981317, z: -0.6981317} - m_Max: {x: 0.6981317, y: 0.6981317, z: 0.6981317} - m_Length: 0.07622479 - m_Type: 1 - - m_PreQ: {x: -0.5, y: -0.5, z: 0.5, w: 0.5} - m_PostQ: {x: -0.5, y: -0.5, z: 0.5, w: 0.5} - m_Sgn: {x: 1, y: 1, z: 1} - m_Limit: - m_Min: {x: -0.6981317, y: -0.6981317, z: -0.6981317} - m_Max: {x: 0.6981317, y: 0.6981317, z: 0.6981317} - m_Length: 0.07622479 - m_Type: 1 - - m_PreQ: {x: 0.7071068, y: -0, z: 0.7071068, w: 0} - m_PostQ: {x: 0.7071068, y: -0, z: 0.7071068, w: 0} - m_Sgn: {x: 1, y: 1, z: -1} - m_Limit: - m_Min: {x: 0, y: -0.34906584, z: -0.17453292} - m_Max: {x: 0, y: 0.34906584, z: 0.2617994} - m_Length: 0.1 - m_Type: 1 - - m_PreQ: {x: 0.7071068, y: -0, z: 0.7071068, w: 0} - m_PostQ: {x: 0.7071068, y: -0, z: 0.7071068, w: 0} - m_Sgn: {x: 1, y: -1, z: -1} - m_Limit: - m_Min: {x: 0, y: -0.34906584, z: -0.17453292} - m_Max: {x: 0, y: 0.34906584, z: 0.2617994} - m_Length: 0.1 - m_Type: 1 - - m_PreQ: {x: 0.00000011000067, y: 0.000000008199257, z: 0.99723357, w: -0.074332036} - m_PostQ: {x: 0.00000011000067, y: 0.000000008199257, z: 0.99723357, - w: -0.074332036} - m_Sgn: {x: 1, y: 1, z: -1} - m_Limit: - m_Min: {x: 0, y: -0.2617994, z: -0.2617994} - m_Max: {x: 0, y: 0.2617994, z: 0.5235988} - m_Length: 0.06754476 - m_Type: 1 - - m_PreQ: {x: 0.24421027, y: -0, z: 0.91123235, w: -0.33168858} - m_PostQ: {x: -0, y: -0, z: 1, w: 0} - m_Sgn: {x: 1, y: 1, z: -1} - m_Limit: - m_Min: {x: -1.5707964, y: -1.7453293, z: -1.0471976} - m_Max: {x: 1.5707964, y: 1.7453293, z: 1.7453293} - m_Length: 0.21410698 - m_Type: 1 - - m_PreQ: {x: 0.45499057, y: 0.54128516, z: 0.5412797, w: -0.45498413} - m_PostQ: {x: 0.00065649813, y: 0.70710653, z: 0.7071065, w: -0.0006480465} - m_Sgn: {x: 1, y: 1, z: -1} - m_Limit: - m_Min: {x: -1.5707964, y: 0, z: -1.3962634} - m_Max: {x: 1.5707964, y: 0, z: 1.3962634} - m_Length: 0.19947194 - m_Type: 1 - - m_PreQ: {x: 0.00092245237, y: -0.0000000055128093, z: 0.99999964, w: 0.0000059762515} - m_PostQ: {x: 0.00092245237, y: -0.0000000055128093, z: 0.99999964, w: 0.0000059762515} - m_Sgn: {x: 1, y: 1, z: -1} - m_Limit: - m_Min: {x: 0, y: -0.6981317, z: -1.3962634} - m_Max: {x: 0, y: 0.6981317, z: 1.3962634} - m_Length: 0.049867984 - m_Type: 1 - - m_PreQ: {x: 0.06662614, y: -0.0029315962, z: 0.9557585, w: -0.286493} - m_PostQ: {x: -0.010232162, y: -0, z: 0.99994767, w: 0} - m_Sgn: {x: -1, y: -1, z: -1} - m_Limit: - m_Min: {x: 0, y: -0.34906584, z: -0.87266463} - m_Max: {x: 0, y: 0.34906584, z: 0.87266463} - m_Length: 0.03091172 - m_Type: 1 - - m_PreQ: {x: -0.019170221, y: -0.0066514756, z: 0.9445533, w: -0.32773086} - m_PostQ: {x: -0.020289013, y: -0.00030891653, z: 0.99967825, w: -0.015220904} - m_Sgn: {x: -1, y: 1, z: -1} - m_Limit: - m_Min: {x: 0, y: 0, z: -0.7853982} - m_Max: {x: 0, y: 0, z: 0.7853982} - m_Length: 0.019033842 - m_Type: 1 - - m_PreQ: {x: -0.019170223, y: -0.0066514765, z: 0.9445534, w: -0.3277309} - m_PostQ: {x: -0.020289015, y: -0.00030891653, z: 0.9996783, w: -0.015220904} - m_Sgn: {x: -1, y: 1, z: -1} - m_Limit: - m_Min: {x: 0, y: 0, z: -0.7853982} - m_Max: {x: 0, y: 0, z: 0.7853982} - m_Length: 0.0107065365 - m_Type: 1 - - m_PreQ: {x: -0.07640189, y: 0.0000000730676, z: 0.9550267, w: -0.28650802} - m_PostQ: {x: 0.00000025502814, y: -0, z: 1, w: 0} - m_Sgn: {x: -1, y: 1, z: -1} - m_Limit: - m_Min: {x: 0, y: -0.34906584, z: -0.87266463} - m_Max: {x: 0, y: 0.34906584, z: 0.87266463} - m_Length: 0.02921474 - m_Type: 1 - - m_PreQ: {x: -0.00000063030984, y: -0.00000020799976, z: 0.94962984, - w: -0.31337413} - m_PostQ: {x: -0.00000066374264, y: 2.3496229e-12, z: 1, w: 0.0000035399607} - m_Sgn: {x: -1, y: 1, z: -1} - m_Limit: - m_Min: {x: 0, y: 0, z: -0.7853982} - m_Max: {x: 0, y: 0, z: 0.7853982} - m_Length: 0.016837656 - m_Type: 1 - - m_PreQ: {x: -0.00000063030984, y: -0.00000020799976, z: 0.94962984, - w: -0.31337413} - m_PostQ: {x: -0.00000066374264, y: 2.3496229e-12, z: 1, w: 0.0000035399607} - m_Sgn: {x: -1, y: 1, z: -1} - m_Limit: - m_Min: {x: 0, y: 0, z: -0.7853982} - m_Max: {x: 0, y: 0, z: 0.7853982} - m_Length: 0.009471182 - m_Type: 1 - - m_PreQ: {x: 0.03828507, y: -0.00000003520898, z: 0.95712364, w: -0.2871389} - m_PostQ: {x: 0.00000010819532, y: 1.8729965e-13, z: 1, w: -0.0000017311252} - m_Sgn: {x: -1, y: -1, z: -1} - m_Limit: - m_Min: {x: 0, y: -0.1308997, z: -0.87266463} - m_Max: {x: 0, y: 0.1308997, z: 0.87266463} - m_Length: 0.03443116 - m_Type: 1 - - m_PreQ: {x: -0.0000001665451, y: -0.00000005495937, z: 0.9496296, w: -0.31337482} - m_PostQ: {x: -0.00000017537903, y: 4.9212484e-13, z: 1, w: 0.0000028060645} - m_Sgn: {x: -1, y: 1, z: -1} - m_Limit: - m_Min: {x: 0, y: 0, z: -0.7853982} - m_Max: {x: 0, y: 0, z: 0.7853982} - m_Length: 0.021241367 - m_Type: 1 - - m_PreQ: {x: -0.0000001665451, y: -0.00000005495937, z: 0.9496296, w: -0.31337482} - m_PostQ: {x: -0.00000017537903, y: 4.9212484e-13, z: 1, w: 0.0000028060645} - m_Sgn: {x: -1, y: 1, z: -1} - m_Limit: - m_Min: {x: 0, y: 0, z: -0.7853982} - m_Max: {x: 0, y: 0, z: 0.7853982} - m_Length: 0.011948269 - m_Type: 1 - - m_PreQ: {x: -0.03828519, y: -0.00000006698185, z: 0.9571241, w: -0.28713724} - m_PostQ: {x: -0.00000023327468, y: -0, z: 1, w: 0} - m_Sgn: {x: -1, y: 1, z: -1} - m_Limit: - m_Min: {x: 0, y: -0.1308997, z: -0.87266463} - m_Max: {x: 0, y: 0.1308997, z: 0.87266463} - m_Length: 0.03193909 - m_Type: 1 - - m_PreQ: {x: -0, y: -0, z: 0.9496287, w: -0.3133775} - m_PostQ: {x: -0, y: -0, z: 1, w: 0} - m_Sgn: {x: -1, y: 1, z: -1} - m_Limit: - m_Min: {x: 0, y: 0, z: -0.7853982} - m_Max: {x: 0, y: 0, z: 0.7853982} - m_Length: 0.01843214 - m_Type: 1 - - m_PreQ: {x: -0, y: -0, z: 0.9496287, w: -0.3133775} - m_PostQ: {x: -0, y: -0, z: 1, w: 0} - m_Sgn: {x: -1, y: 1, z: -1} - m_Limit: - m_Min: {x: 0, y: 0, z: -0.7853982} - m_Max: {x: 0, y: 0, z: 0.7853982} - m_Length: 0.010368079 - m_Type: 1 - - m_PreQ: {x: 0.23622903, y: 0.64043754, z: 0.5931203, w: -0.42690066} - m_PostQ: {x: 0.23844662, y: 0.6541293, z: 0.66569006, w: -0.26854223} - m_Sgn: {x: -1, y: -1, z: 1} - m_Limit: - m_Min: {x: 0, y: -0.43633232, z: -0.34906584} - m_Max: {x: 0, y: 0.43633232, z: 0.34906584} - m_Length: 0.04429227 - m_Type: 1 - - m_PreQ: {x: 0.091492675, y: 0.6975384, z: 0.7011627, w: -0.11593179} - m_PostQ: {x: 0.22722527, y: 0.6612566, z: 0.6696034, w: -0.250479} - m_Sgn: {x: -1, y: 1, z: 1} - m_Limit: - m_Min: {x: 0, y: 0, z: -0.6981317} - m_Max: {x: 0, y: 0, z: 0.61086524} - m_Length: 0.027182685 - m_Type: 1 - - m_PreQ: {x: 0.091492675, y: 0.6975384, z: 0.7011627, w: -0.11593179} - m_PostQ: {x: 0.22722527, y: 0.6612566, z: 0.6696034, w: -0.250479} - m_Sgn: {x: -1, y: 1, z: 1} - m_Limit: - m_Min: {x: 0, y: 0, z: -0.6981317} - m_Max: {x: 0, y: 0, z: 0.61086524} - m_Length: 0.01529026 - m_Type: 1 - - m_PreQ: {x: -0.000000008199257, y: -0.00000011000067, z: -0.074332036, - w: 0.99723357} - m_PostQ: {x: -0.000000008199257, y: -0.00000011000067, z: -0.074332036, - w: 0.99723357} - m_Sgn: {x: 1, y: 1, z: 1} - m_Limit: - m_Min: {x: 0, y: -0.2617994, z: -0.2617994} - m_Max: {x: 0, y: 0.2617994, z: 0.5235988} - m_Length: 0.06754476 - m_Type: 1 - - m_PreQ: {x: -0, y: -0.24421027, z: -0.33168858, w: 0.91123235} - m_PostQ: {x: -0, y: -0, z: -0, w: 1} - m_Sgn: {x: -1, y: 1, z: 1} - m_Limit: - m_Min: {x: -1.5707964, y: -1.7453293, z: -1.0471976} - m_Max: {x: 1.5707964, y: 1.7453293, z: 1.7453293} - m_Length: 0.21410698 - m_Type: 1 - - m_PreQ: {x: 0.54128516, y: 0.45499057, z: 0.45498413, w: -0.5412797} - m_PostQ: {x: 0.70710653, y: 0.00065649813, z: 0.0006480465, w: -0.7071065} - m_Sgn: {x: -1, y: 1, z: 1} - m_Limit: - m_Min: {x: -1.5707964, y: 0, z: -1.3962634} - m_Max: {x: 1.5707964, y: 0, z: 1.3962634} - m_Length: 0.19947194 - m_Type: 1 - - m_PreQ: {x: 0.0000000055128093, y: -0.00092245237, z: 0.0000059762515, - w: 0.99999964} - m_PostQ: {x: 0.0000000055128093, y: -0.00092245237, z: 0.0000059762515, - w: 0.99999964} - m_Sgn: {x: 1, y: 1, z: 1} - m_Limit: - m_Min: {x: 0, y: -0.6981317, z: -1.3962634} - m_Max: {x: 0, y: 0.6981317, z: 1.3962634} - m_Length: 0.049867984 - m_Type: 1 - - m_PreQ: {x: -0.0029315962, y: 0.06662614, z: 0.286493, w: -0.9557585} - m_PostQ: {x: -0, y: 0.010232162, z: -0, w: 0.99994767} - m_Sgn: {x: 1, y: -1, z: 1} - m_Limit: - m_Min: {x: 0, y: -0.34906584, z: -0.87266463} - m_Max: {x: 0, y: 0.34906584, z: 0.87266463} - m_Length: 0.03091172 - m_Type: 1 - - m_PreQ: {x: -0.0066514756, y: -0.019170221, z: 0.32773086, w: -0.9445533} - m_PostQ: {x: 0.00030891653, y: 0.020289013, z: -0.015220904, w: 0.99967825} - m_Sgn: {x: 1, y: 1, z: 1} - m_Limit: - m_Min: {x: 0, y: 0, z: -0.7853982} - m_Max: {x: 0, y: 0, z: 0.7853982} - m_Length: 0.019033842 - m_Type: 1 - - m_PreQ: {x: -0.0066514765, y: -0.019170223, z: 0.3277309, w: -0.9445534} - m_PostQ: {x: 0.00030891655, y: 0.020289013, z: -0.015220906, w: 0.9996782} - m_Sgn: {x: 1, y: 1, z: 1} - m_Limit: - m_Min: {x: 0, y: 0, z: -0.7853982} - m_Max: {x: 0, y: 0, z: 0.7853982} - m_Length: 0.0107065365 - m_Type: 1 - - m_PreQ: {x: 0.0000000730676, y: -0.07640189, z: 0.28650802, w: -0.9550267} - m_PostQ: {x: 0, y: -0.00000025502814, z: -0, w: 1} - m_Sgn: {x: 1, y: 1, z: 1} - m_Limit: - m_Min: {x: 0, y: -0.34906584, z: -0.87266463} - m_Max: {x: 0, y: 0.34906584, z: 0.87266463} - m_Length: 0.02921474 - m_Type: 1 - - m_PreQ: {x: -0.00000020799976, y: -0.00000063030984, z: 0.31337413, - w: -0.94962984} - m_PostQ: {x: -2.3496229e-12, y: 0.00000066374264, z: 0.0000035399607, - w: 1} - m_Sgn: {x: 1, y: 1, z: 1} - m_Limit: - m_Min: {x: 0, y: 0, z: -0.7853982} - m_Max: {x: 0, y: 0, z: 0.7853982} - m_Length: 0.016837656 - m_Type: 1 - - m_PreQ: {x: -0.00000020799976, y: -0.00000063030984, z: 0.31337413, - w: -0.94962984} - m_PostQ: {x: -2.3496229e-12, y: 0.00000066374264, z: 0.0000035399607, - w: 1} - m_Sgn: {x: 1, y: 1, z: 1} - m_Limit: - m_Min: {x: 0, y: 0, z: -0.7853982} - m_Max: {x: 0, y: 0, z: 0.7853982} - m_Length: 0.009471182 - m_Type: 1 - - m_PreQ: {x: -0.00000003520898, y: 0.03828507, z: 0.2871389, w: -0.95712364} - m_PostQ: {x: -1.8729965e-13, y: -0.00000010819532, z: -0.0000017311252, - w: 1} - m_Sgn: {x: 1, y: -1, z: 1} - m_Limit: - m_Min: {x: 0, y: -0.1308997, z: -0.87266463} - m_Max: {x: 0, y: 0.1308997, z: 0.87266463} - m_Length: 0.03443116 - m_Type: 1 - - m_PreQ: {x: -0.00000005495937, y: -0.0000001665451, z: 0.31337482, w: -0.9496296} - m_PostQ: {x: -4.9212484e-13, y: 0.00000017537903, z: 0.0000028060645, - w: 1} - m_Sgn: {x: 1, y: 1, z: 1} - m_Limit: - m_Min: {x: 0, y: 0, z: -0.7853982} - m_Max: {x: 0, y: 0, z: 0.7853982} - m_Length: 0.021241367 - m_Type: 1 - - m_PreQ: {x: -0.00000005495937, y: -0.0000001665451, z: 0.31337482, w: -0.9496296} - m_PostQ: {x: -4.9212484e-13, y: 0.00000017537903, z: 0.0000028060645, - w: 1} - m_Sgn: {x: 1, y: 1, z: 1} - m_Limit: - m_Min: {x: 0, y: 0, z: -0.7853982} - m_Max: {x: 0, y: 0, z: 0.7853982} - m_Length: 0.011948269 - m_Type: 1 - - m_PreQ: {x: -0.00000006698185, y: -0.03828519, z: 0.28713724, w: -0.9571241} - m_PostQ: {x: -0, y: 0.00000023327468, z: -0, w: 1} - m_Sgn: {x: 1, y: 1, z: 1} - m_Limit: - m_Min: {x: 0, y: -0.1308997, z: -0.87266463} - m_Max: {x: 0, y: 0.1308997, z: 0.87266463} - m_Length: 0.03193909 - m_Type: 1 - - m_PreQ: {x: -0, y: -0, z: 0.3133775, w: -0.9496287} - m_PostQ: {x: -0, y: -0, z: -0, w: 1} - m_Sgn: {x: 1, y: 1, z: 1} - m_Limit: - m_Min: {x: 0, y: 0, z: -0.7853982} - m_Max: {x: 0, y: 0, z: 0.7853982} - m_Length: 0.01843214 - m_Type: 1 - - m_PreQ: {x: -0, y: -0, z: 0.3133775, w: -0.9496287} - m_PostQ: {x: -0, y: -0, z: -0, w: 1} - m_Sgn: {x: 1, y: 1, z: 1} - m_Limit: - m_Min: {x: 0, y: 0, z: -0.7853982} - m_Max: {x: 0, y: 0, z: 0.7853982} - m_Length: 0.010368079 - m_Type: 1 - - m_PreQ: {x: 0.64043754, y: 0.23622905, z: 0.42690068, w: -0.5931203} - m_PostQ: {x: -0.6541293, y: -0.23844662, z: -0.26854223, w: 0.66569006} - m_Sgn: {x: 1, y: -1, z: -1} - m_Limit: - m_Min: {x: 0, y: -0.43633232, z: -0.34906584} - m_Max: {x: 0, y: 0.43633232, z: 0.34906584} - m_Length: 0.04429227 - m_Type: 1 - - m_PreQ: {x: 0.69753844, y: 0.091492675, z: 0.11593179, w: -0.70116264} - m_PostQ: {x: -0.6612566, y: -0.22722527, z: -0.250479, w: 0.6696034} - m_Sgn: {x: 1, y: 1, z: -1} - m_Limit: - m_Min: {x: 0, y: 0, z: -0.6981317} - m_Max: {x: 0, y: 0, z: 0.61086524} - m_Length: 0.027182685 - m_Type: 1 - - m_PreQ: {x: 0.69753844, y: 0.091492675, z: 0.11593179, w: -0.70116264} - m_PostQ: {x: -0.6612566, y: -0.22722527, z: -0.250479, w: 0.6696034} - m_Sgn: {x: 1, y: 1, z: -1} - m_Limit: - m_Min: {x: 0, y: 0, z: -0.6981317} - m_Max: {x: 0, y: 0, z: 0.61086524} - m_Length: 0.01529026 - m_Type: 1 - - m_PreQ: {x: -0.60753185, y: 0.36180818, z: -0.60753185, w: 0.36180818} - m_PostQ: {x: -0.49316382, y: 0.506744, z: -0.4931638, w: 0.506744} - m_Sgn: {x: 1, y: 1, z: 1} - m_Limit: - m_Min: {x: -1.0471976, y: -1.0471976, z: -1.5707964} - m_Max: {x: 1.0471976, y: 1.0471976, z: 0.87266463} - m_Length: 0.3757874 - m_Type: 1 - - m_PreQ: {x: -0.042189814, y: 0.7058472, z: -0.04218977, w: 0.70584714} - m_PostQ: {x: -0.48599896, y: 0.5136196, z: -0.48599896, w: 0.51361954} - m_Sgn: {x: 1, y: 1, z: -1} - m_Limit: - m_Min: {x: -1.5707964, y: 0, z: -1.3962634} - m_Max: {x: 1.5707964, y: 0, z: 1.3962634} - m_Length: 0.4257563 - m_Type: 1 - - m_PreQ: {x: -0.5, y: 0.5, z: -0.5, w: 0.5} - m_PostQ: {x: -0.5, y: 0.5, z: -0.5, w: 0.5} - m_Sgn: {x: 1, y: 1, z: 1} - m_Limit: - m_Min: {x: 0, y: -0.5235988, z: -0.87266463} - m_Max: {x: 0, y: 0.5235988, z: 0.87266463} - m_Length: 0.09702313 - m_Type: 1 - - m_PreQ: {x: 0.7071068, y: -0, z: 0.7071068, w: 0} - m_PostQ: {x: 0.7071068, y: -0, z: 0.7071068, w: 0} - m_Sgn: {x: 1, y: 1, z: 1} - m_Limit: - m_Min: {x: 0, y: 0, z: -0.87266463} - m_Max: {x: 0, y: 0, z: 0.87266463} - m_Length: 0.028812509 - m_Type: 1 - - m_PreQ: {x: -0.60753185, y: 0.36180818, z: -0.60753185, w: 0.36180818} - m_PostQ: {x: -0.4931638, y: 0.506744, z: -0.49316382, w: 0.506744} - m_Sgn: {x: -1, y: -1, z: 1} - m_Limit: - m_Min: {x: -1.0471976, y: -1.0471976, z: -1.5707964} - m_Max: {x: 1.0471976, y: 1.0471976, z: 0.87266463} - m_Length: 0.3757874 - m_Type: 1 - - m_PreQ: {x: -0.042189814, y: 0.7058472, z: -0.04218977, w: 0.70584714} - m_PostQ: {x: -0.48599896, y: 0.5136196, z: -0.48599896, w: 0.51361954} - m_Sgn: {x: -1, y: 1, z: -1} - m_Limit: - m_Min: {x: -1.5707964, y: 0, z: -1.3962634} - m_Max: {x: 1.5707964, y: 0, z: 1.3962634} - m_Length: 0.4257563 - m_Type: 1 - - m_PreQ: {x: -0.5, y: 0.5, z: -0.5, w: 0.5} - m_PostQ: {x: -0.5, y: 0.5, z: -0.5, w: 0.5} - m_Sgn: {x: 1, y: -1, z: 1} - m_Limit: - m_Min: {x: 0, y: -0.5235988, z: -0.87266463} - m_Max: {x: 0, y: 0.5235988, z: 0.87266463} - m_Length: 0.09702313 - m_Type: 1 - - m_PreQ: {x: 0.7071068, y: -0, z: 0.7071068, w: 0} - m_PostQ: {x: 0.7071068, y: -0, z: 0.7071068, w: 0} - m_Sgn: {x: 1, y: 1, z: 1} - m_Limit: - m_Min: {x: 0, y: 0, z: -0.87266463} - m_Max: {x: 0, y: 0, z: 0.87266463} - m_Length: 0.028812509 - m_Type: 1 - m_SkeletonPose: - data: - m_X: - - t: {x: 0, y: 0, z: 0} - q: {x: 0, y: 0, z: 0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: 0.93650174, z: 0.0036878982} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 5.948816e-32, y: 0.050968885, z: 0.012252513} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -2.0149595e-17, y: 0.110621214, z: 0.0029853042} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 2.9083892e-17, y: 0.10536587, z: -0.014336677} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 9.127545e-17, y: 0.1294887, z: -0.03754457} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.000000005196695, y: 0.075594306, z: 0.009783598} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.014784996, y: 0.06125927, z: 0.022221765} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.014784982, y: 0.06125927, z: 0.022221772} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.020808386, y: 0.1034497, z: -0.02933467} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.06679835, y: -0.0100136995, z: 0.000000014901161} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.21410698, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.1994716, y: 0.0000023841858, z: 0.00036800653} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.060842276, y: 0.007224083, z: 0.019240757} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.030905247, y: 0, z: -0.0006325543} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.019009352, y: -0.0005789995, z: -0.0007722862} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.056770742, y: 0.007224083, z: -0.028558228} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.02921474, y: 0, z: 0.000000014901161} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.016837656, y: 0.00000011920929, z: -0.000000022351742} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.06167108, y: 0.007224202, z: 0.0020036474} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.03443116, y: -0.00000011920929, z: 0.000000007450581} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.021241367, y: 0.00000011920929, z: -0.000000007450581} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.060968697, y: 0.007224083, z: -0.013300542} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.03193909, y: 0, z: -0.000000014901161} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.01843214, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.0032740831, y: -0.0097965, z: 0.01562553} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.032867372, y: -0.0020189285, z: 0.029622039} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.02096486, y: -0.0009496212, z: 0.01727632} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.020808386, y: 0.1034497, z: -0.02933467} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.06679835, y: -0.0100136995, z: 0.000000014901161} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.21410698, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.1994716, y: 0.0000023841858, z: 0.00036800653} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.060842276, y: 0.007224083, z: 0.019240757} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.030905247, y: 0, z: -0.0006325543} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.019009352, y: -0.0005789995, z: -0.0007722862} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.056770742, y: 0.007224083, z: -0.028558228} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.02921474, y: 0, z: 0.000000014901161} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.016837656, y: 0.00000011920929, z: -0.000000022351742} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.06167108, y: 0.007224202, z: 0.0020036474} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.03443116, y: -0.00000011920929, z: 0.000000007450581} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.021241367, y: 0.00000011920929, z: -0.000000007450581} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.060968697, y: 0.007224083, z: -0.013300542} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.03193909, y: 0, z: -0.000000014901161} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.01843214, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0032740831, y: -0.0097965, z: 0.01562553} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.032867372, y: -0.0020189285, z: 0.029622039} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.02096486, y: -0.0009496212, z: 0.01727632} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.07168864, y: -0.03872311, z: -0.0035527977} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.000000014901161, y: -0.3756488, z: -0.010205619} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: -0.4251067, z: -0.023510326} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: -0.0613662, z: 0.09755388} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.07168864, y: -0.03872311, z: -0.0035527977} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.000000014901161, y: -0.3756488, z: -0.010205619} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: -0.4251067, z: -0.023510326} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: -0.0613662, z: 0.09755388} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - m_LeftHand: - data: - m_HandBoneIndex: 190000001a0000001b0000000d0000000e0000000f000000130000001400000015000000160000001700000018000000100000001100000012000000 - m_RightHand: - data: - m_HandBoneIndex: 2c0000002d0000002e000000200000002100000022000000260000002700000028000000290000002a0000002b000000230000002400000025000000 - m_HumanBoneIndex: 010000002f00000033000000300000003400000031000000350000000200000003000000040000000500000006000000090000001c0000000a0000001d0000000b0000001e0000000c0000001f00000032000000360000000700000008000000ffffffff - m_HumanBoneMass: - - 0.14545456 - - 0.12121213 - - 0.12121213 - - 0.048484854 - - 0.048484854 - - 0.009696971 - - 0.009696971 - - 0.030303033 - - 0.14545456 - - 0.14545456 - - 0.012121214 - - 0.048484854 - - 0.006060607 - - 0.006060607 - - 0.024242427 - - 0.024242427 - - 0.01818182 - - 0.01818182 - - 0.006060607 - - 0.006060607 - - 0.0024242427 - - 0.0024242427 - - 0 - - 0 - - 0 - m_Scale: 0.95183253 - m_ArmTwist: 0.5 - m_ForeArmTwist: 0.5 - m_UpperLegTwist: 0.5 - m_LegTwist: 0.5 - m_ArmStretch: 0.05 - m_LegStretch: 0.05 - m_FeetSpacing: 0 - m_HasLeftHand: 1 - m_HasRightHand: 1 - m_HasTDoF: 0 - m_HumanSkeletonIndexArray: 0400000005000000060000000700000008000000090000000a0000000b0000000c00000062000000630000006400000065000000660000006700000068000000690000006a0000006b0000006c0000006d0000006e0000006f00000070000000710000007200000073000000740000007b0000007c0000007d0000007e0000007f000000800000008100000082000000830000008400000085000000860000008700000088000000890000008a0000008b0000008c0000008d0000009a0000009b0000009c0000009d000000b1000000b2000000b3000000b4000000 - m_HumanSkeletonReverseIndexArray: ffffffffffffffffffffffffffffffff000000000100000002000000030000000400000005000000060000000700000008000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff090000000a0000000b0000000c0000000d0000000e0000000f000000100000001100000012000000130000001400000015000000160000001700000018000000190000001a0000001b000000ffffffffffffffffffffffffffffffffffffffffffffffff1c0000001d0000001e0000001f000000200000002100000022000000230000002400000025000000260000002700000028000000290000002a0000002b0000002c0000002d0000002e000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2f000000300000003100000032000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff33000000340000003500000036000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - m_RootMotionBoneIndex: -1 - m_RootMotionBoneX: - t: {x: 0, y: 0, z: 0} - q: {x: 0, y: 0, z: 0, w: 1} - s: {x: 1, y: 1, z: 1} - m_RootMotionSkeleton: - data: - m_Node: [] - m_ID: - m_AxesArray: [] - m_RootMotionSkeletonPose: - data: - m_X: [] - m_RootMotionSkeletonIndexArray: - m_TOS: - 285007101: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_15 - 2128665898: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_04 - 1906816105: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_01/J_Sec_Hair2_01/J_Sec_Hair3_01/J_Sec_Hair4_01/J_Sec_Hair5_01/J_Sec_Hair6_01 - 491299123: Root/J_Bip_C_Hips/J_Bip_R_UpperLeg/J_Sec_R_SkirtBack0_01 - 524182156: Root/J_Bip_C_Hips/J_Bip_R_UpperLeg/J_Sec_R_SkirtBack0_01/J_Sec_R_SkirtBack1_01 - 3980312633: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_16/J_Sec_Hair2_16/J_Sec_Hair3_16 - 1744563307: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_14 - 1838702072: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_L_Clavicle/J_Bip_L_UpperArm/J_Bip_L_LowerArm/J_Bip_L_Hand/J_Bip_L_Index1/J_Bip_L_Index2 - 1685203202: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_13/J_Sec_Hair2_13/J_Sec_Hair3_13/J_Sec_Hair3_13_end - 3287185488: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_03/J_Sec_Hair2_03/J_Sec_Hair3_03/J_Sec_Hair4_03/J_Sec_Hair5_03 - 2070622203: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_18/J_Sec_Hair2_18/J_Sec_Hair3_18 - 2466280194: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_R_Clavicle/J_Bip_R_UpperArm/J_Bip_R_LowerArm/J_Bip_R_Hand/J_Bip_R_Little1/J_Bip_R_Little2 - 3866818490: Root/J_Bip_C_Hips/J_Bip_R_UpperLeg/J_Bip_R_LowerLeg - 2933737937: Root/J_Bip_C_Hips/J_Bip_L_UpperLeg/J_Sec_L_SkirtBack0_01/J_Sec_L_SkirtBack1_01 - 1884987545: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_R_Clavicle/J_Bip_R_UpperArm/J_Bip_R_LowerArm/J_Bip_R_Hand/J_Bip_R_Ring1/J_Bip_R_Ring2 - 1946302910: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_R_Clavicle/J_Bip_R_UpperArm/J_Bip_R_LowerArm/J_Bip_R_Hand/J_Bip_R_Ring1 - 458454037: secondary - 3037872453: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_05/J_Sec_Hair2_05 - 2078246882: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_R_Clavicle/J_Bip_R_UpperArm/J_Bip_R_LowerArm/J_Bip_R_Hand/J_Bip_R_Index1/J_Bip_R_Index2 - 969055499: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_R_Clavicle/J_Bip_R_UpperArm/J_Bip_R_LowerArm/J_Bip_R_Hand/J_Bip_R_Index1 - 3584721369: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_09/J_Sec_Hair2_09/J_Sec_Hair3_09/J_Sec_Hair3_09_end - 903867318: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_R_Clavicle/J_Bip_R_UpperArm/J_Bip_R_LowerArm/J_Bip_R_Hand/J_Bip_R_Middle1/J_Bip_R_Middle2 - 266374548: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_03/J_Sec_Hair2_03 - 3897213606: Root/J_Bip_C_Hips/J_Bip_L_UpperLeg/J_Sec_L_SkirtFront_01/J_Sec_L_SkirtFront_end_01/J_Sec_L_SkirtFront_end_01_end - 290824833: Root/J_Bip_C_Hips/J_Bip_R_UpperLeg/J_Sec_R_SkirtFront0_01/J_Sec_R_SkirtFront1_01 - 2038769636: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_L_Clavicle/J_Bip_L_UpperArm/J_Bip_L_LowerArm/J_Bip_L_Hand - 2010789325: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_12/J_Sec_Hair2_12/J_Sec_Hair3_12/J_Sec_Hair3_12_end - 590537793: Root/J_Bip_C_Hips/J_Sec_L_SkirtSide0_01 - 1472109707: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_05/J_Sec_Hair2_05/J_Sec_Hair3_05/J_Sec_Hair4_05 - 1565223639: Root/J_Bip_C_Hips/J_Bip_R_UpperLeg/J_Sec_R_SkirtBack0_01/J_Sec_R_SkirtBack1_01/J_Sec_R_SkirtBack2_01/J_Sec_R_SkirtBack2_end_01/J_Sec_R_SkirtBack2_end_01_end - 1032707778: Root/J_Bip_C_Hips/J_Bip_R_UpperLeg/J_Sec_R_SkirtBack0_01/J_Sec_R_SkirtBack1_01/J_Sec_R_SkirtBack2_01 - 1969490009: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_L_Clavicle/J_Bip_L_UpperArm/J_Bip_L_LowerArm/J_Sec_L_LowerSleeve_01/J_Sec_L_LowerSleeve_end_01 - 2140979062: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_L_Clavicle - 3434087405: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_L_Clavicle/J_Bip_L_UpperArm/J_Bip_L_LowerArm/J_Bip_L_Hand/J_Bip_L_Little1/J_Bip_L_Little2/J_Bip_L_Little3 - 5349783: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_09 - 2999517770: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_R_Clavicle/J_Bip_R_UpperArm/J_Bip_R_LowerArm/J_Bip_R_Hand/J_Sec_R_TipSleeve_01 - 850538956: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_06/J_Sec_Hair2_06/J_Sec_Hair3_06/J_Sec_Hair3_06_end - 3821133455: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Sec_R_Bust1 - 1436997367: Root/J_Bip_C_Hips/J_Bip_L_UpperLeg/J_Sec_L_SkirtFront0_01 - 1126305948: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_11/J_Sec_Hair2_11/J_Sec_Hair3_11/J_Sec_Hair3_11_end - 3086739283: Root/J_Bip_C_Hips/J_Bip_R_UpperLeg/J_Sec_R_SkirtFront0_01/J_Sec_R_SkirtFront1_01/J_Sec_R_SkirtFront2_01/J_Sec_R_SkirtFront2_end_01 - 3172097437: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_03/J_Sec_Hair2_03/J_Sec_Hair3_03 - 877093443: Root/J_Bip_C_Hips/J_Bip_L_UpperLeg/J_Sec_L_SkirtFront0_01/J_Sec_L_SkirtFront1_01/J_Sec_L_SkirtFront2_01/J_Sec_L_SkirtFront2_end_01/J_Sec_L_SkirtFront2_end_01_end - 7719076: Root/J_Bip_C_Hips/J_Sec_L_SkirtSide0_01/J_Sec_L_SkirtSide1_01/J_Sec_L_SkirtSide2_01 - 3654931018: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_L_Clavicle/J_Bip_L_UpperArm/J_Bip_L_LowerArm/J_Bip_L_Hand/J_Bip_L_Index1 - 254671235: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_05/J_Sec_Hair2_05/J_Sec_Hair3_05/J_Sec_Hair4_05/J_Sec_Hair4_05_end - 1107427080: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_17/J_Sec_Hair2_17 - 1467314277: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_R_Clavicle/J_Bip_R_UpperArm/J_Bip_R_LowerArm/J_Bip_R_Hand/J_Bip_R_Middle1/J_Bip_R_Middle2/J_Bip_R_Middle3 - 2992426631: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_L_Clavicle/J_Bip_L_UpperArm/J_Bip_L_LowerArm/J_Bip_L_Hand/J_Sec_L_TipSleeve_01/J_Sec_L_TipSleeve_end_01/J_Sec_L_TipSleeve_end_01_end - 3530924597: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_13/J_Sec_Hair2_13/J_Sec_Hair3_13 - 424317142: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_19 - 3131336372: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_L_Clavicle/J_Bip_L_UpperArm/J_Bip_L_LowerArm/J_Bip_L_Hand/J_Bip_L_Ring1 - 4187000473: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_R_Clavicle/J_Bip_R_UpperArm/J_Bip_R_LowerArm/J_Bip_R_Hand/J_Sec_R_TipSleeve_01/J_Sec_R_TipSleeve_end_01/J_Sec_R_TipSleeve_end_01_end - 189468347: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_L_Clavicle/J_Bip_L_UpperArm/J_Bip_L_LowerArm - 924417340: Root/J_Bip_C_Hips/J_Sec_L_SkirtSide0_01/J_Sec_L_SkirtSide1_01/J_Sec_L_SkirtSide2_01/J_Sec_L_SkirtSide2_end_01 - 4176688089: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_11/J_Sec_Hair2_11 - 3115188551: Root/J_Bip_C_Hips/J_Bip_L_UpperLeg/J_Sec_L_SkirtBack0_01/J_Sec_L_SkirtBack1_01/J_Sec_L_SkirtBack2_01/J_Sec_L_SkirtBack2_end_01 - 1427115262: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head - 3599707283: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_02/J_Sec_Hair2_02 - 956660241: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_L_Clavicle/J_Bip_L_UpperArm/J_Bip_L_LowerArm/J_Sec_L_LowerSleeve_01/J_Sec_L_LowerSleeve_end_01/J_Sec_L_LowerSleeve_end_01_end - 2151224464: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_R_Clavicle/J_Bip_R_UpperArm/J_Bip_R_LowerArm/J_Bip_R_Hand/J_Bip_R_Middle1 - 4289881849: Root/J_Bip_C_Hips/J_Bip_L_UpperLeg/J_Bip_L_LowerLeg - 1716439515: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_01/J_Sec_Hair2_01 - 2603278172: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_01/J_Sec_Hair2_01/J_Sec_Hair3_01/J_Sec_Hair4_01 - 3890842768: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_07 - 4063099956: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_L_Clavicle/J_Bip_L_UpperArm/J_Bip_L_LowerArm/J_Bip_L_Hand/J_Bip_L_Index1/J_Bip_L_Index2/J_Bip_L_Index3 - 282623383: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_03/J_Sec_Hair2_03/J_Sec_Hair3_03/J_Sec_Hair4_03 - 1101236980: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_R_Clavicle/J_Bip_R_UpperArm/J_Bip_R_LowerArm/J_Bip_R_Hand/J_Bip_R_Thumb1/J_Bip_R_Thumb2/J_Bip_R_Thumb3 - 1019596327: Hair - 3379808368: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_01/J_Sec_Hair2_01/J_Sec_Hair3_01 - 1151271504: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_03/J_Sec_Hair2_03/J_Sec_Hair3_03/J_Sec_Hair4_03/J_Sec_Hair5_03/J_Sec_Hair5_03_end - 1604495134: Root/J_Bip_C_Hips/J_Bip_L_UpperLeg/J_Sec_L_SkirtBack0_01/J_Sec_L_SkirtBack1_01/J_Sec_L_SkirtBack2_01 - 3511946796: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_R_Clavicle/J_Bip_R_UpperArm - 3945530412: Root/J_Bip_C_Hips/J_Bip_L_UpperLeg/J_Sec_L_SkirtSide_01/J_Sec_L_SkirtSide_end_01/J_Sec_L_SkirtSide_end_01_end - 3766765705: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_03 - 2811997713: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_L_Clavicle/J_Bip_L_UpperArm/J_Bip_L_LowerArm/J_Bip_L_Hand/J_Bip_L_Middle1/J_Bip_L_Middle2/J_Bip_L_Middle3 - 3703309578: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_07/J_Sec_Hair2_07 - 2002161921: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_08 - 2593222804: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_L_Clavicle/J_Bip_L_UpperArm/J_Bip_L_LowerArm/J_Bip_L_Hand/J_Bip_L_Thumb1/J_Bip_L_Thumb2 - 3789305879: Root/J_Bip_C_Hips/J_Bip_R_UpperLeg/J_Sec_R_SkirtFront_01/J_Sec_R_SkirtFront_end_01 - 1703018608: Root/J_Bip_C_Hips/J_Bip_L_UpperLeg/J_Sec_L_SkirtSide_01/J_Sec_L_SkirtSide_end_01 - 3066451557: Root - 3064108098: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_R_Clavicle/J_Bip_R_UpperArm/J_Bip_R_LowerArm/J_Bip_R_Hand/J_Bip_R_Ring1/J_Bip_R_Ring2/J_Bip_R_Ring3 - 381148985: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_R_Clavicle/J_Bip_R_UpperArm/J_Bip_R_LowerArm/J_Bip_R_Hand/J_Bip_R_Little1 - 336384083: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_08/J_Sec_Hair2_08/J_Sec_Hair3_08 - 1351224403: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_10/J_Sec_Hair2_10/J_Sec_Hair3_10/J_Sec_Hair3_10_end - 2815444144: Root/J_Bip_C_Hips/J_Bip_R_UpperLeg/J_Sec_R_SkirtSide_01/J_Sec_R_SkirtSide_end_01 - 174576974: Root/J_Bip_C_Hips/J_Bip_R_UpperLeg/J_Sec_R_SkirtBack_01/J_Sec_R_SkirtBack_end_01/J_Sec_R_SkirtBack_end_01_end - 395385060: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_11 - 985907531: Root/J_Bip_C_Hips/J_Bip_L_UpperLeg/J_Sec_L_SkirtBack_01/J_Sec_L_SkirtBack_end_01/J_Sec_L_SkirtBack_end_01_end - 3157118962: Root/J_Bip_C_Hips/J_Bip_L_UpperLeg/J_Sec_L_SkirtFront0_01/J_Sec_L_SkirtFront1_01/J_Sec_L_SkirtFront2_01/J_Sec_L_SkirtFront2_end_01 - 3706314754: Root/J_Bip_C_Hips/J_Sec_R_SkirtSide0_01/J_Sec_R_SkirtSide1_01/J_Sec_R_SkirtSide2_01/J_Sec_R_SkirtSide2_end_01 - 3209342262: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_L_Clavicle/J_Bip_L_UpperArm/J_Bip_L_LowerArm/J_Bip_L_Hand/J_Bip_L_Thumb1 - 1259307586: Root/J_Bip_C_Hips/J_Bip_L_UpperLeg/J_Sec_L_SkirtSide_01 - 2073732236: Body - 2362878606: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_R_Clavicle/J_Bip_R_UpperArm/J_Bip_R_LowerArm/J_Bip_R_Hand/J_Bip_R_Thumb1/J_Bip_R_Thumb2 - 2190742565: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_L_Clavicle/J_Bip_L_UpperArm/J_Bip_L_LowerArm/J_Bip_L_Hand/J_Sec_L_TipSleeve_01 - 302943063: Root/J_Bip_C_Hips/J_Bip_R_UpperLeg - 4277321169: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_17 - 2186887057: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_06/J_Sec_Hair2_06/J_Sec_Hair3_06 - 1684056571: Root/J_Bip_C_Hips/J_Bip_R_UpperLeg/J_Sec_R_SkirtFront_01 - 2164424409: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_L_Clavicle/J_Bip_L_UpperArm/J_Bip_L_LowerArm/J_Bip_L_Hand/J_Bip_L_Middle1 - 1310819377: Root/J_Bip_C_Hips/J_Sec_R_SkirtSide0_01/J_Sec_R_SkirtSide1_01/J_Sec_R_SkirtSide2_01/J_Sec_R_SkirtSide2_end_01/J_Sec_R_SkirtSide2_end_01_end - 1322720258: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_15/J_Sec_Hair2_15/J_Sec_Hair3_15 - 406077639: Root/J_Bip_C_Hips/J_Sec_L_SkirtSide0_01/J_Sec_L_SkirtSide1_01/J_Sec_L_SkirtSide2_01/J_Sec_L_SkirtSide2_end_01/J_Sec_L_SkirtSide2_end_01_end - 3731027684: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_19/J_Sec_Hair2_19/J_Sec_Hair3_19/J_Sec_Hair3_19_end - 2907216216: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Sec_R_Bust1/J_Sec_R_Bust2 - 2438821782: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_13/J_Sec_Hair2_13 - 2067268032: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_R_Clavicle/J_Bip_R_UpperArm/J_Bip_R_LowerArm/J_Bip_R_Hand/J_Sec_R_TipSleeve_01/J_Sec_R_TipSleeve_end_01 - 565240746: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_05/J_Sec_Hair2_05/J_Sec_Hair3_05 - 226648992: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_15/J_Sec_Hair2_15/J_Sec_Hair3_15/J_Sec_Hair3_15_end - 2624567210: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_04/J_Sec_Hair2_04/J_Sec_Hair3_04/J_Sec_Hair4_04/J_Sec_Hair4_04_end - 188315585: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_R_Clavicle/J_Bip_R_UpperArm/J_Bip_R_LowerArm/J_Sec_R_LowerSleeve_01/J_Sec_R_LowerSleeve_end_01 - 2541975583: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_02 - 2412648420: Root/J_Bip_C_Hips/J_Bip_L_UpperLeg/J_Bip_L_LowerLeg/J_Bip_L_Foot - 959107078: Root/J_Bip_C_Hips/J_Bip_L_UpperLeg/J_Sec_L_SkirtBack0_01/J_Sec_L_SkirtBack1_01/J_Sec_L_SkirtBack2_01/J_Sec_L_SkirtBack2_end_01/J_Sec_L_SkirtBack2_end_01_end - 2235245732: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_19/J_Sec_Hair2_19 - 873086070: Root/J_Bip_C_Hips/J_Bip_L_UpperLeg/J_Sec_L_SkirtBack_01 - 1211291281: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_12/J_Sec_Hair2_12 - 2244922043: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_R_Clavicle/J_Bip_R_UpperArm/J_Bip_R_LowerArm/J_Sec_R_LowerSleeve_01/J_Sec_R_LowerSleeve_end_01/J_Sec_R_LowerSleeve_end_01_end - 3422213228: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_02/J_Sec_Hair2_02/J_Sec_Hair3_02/J_Sec_Hair4_02/J_Sec_Hair5_02/J_Sec_Hair5_02_end - 2965458551: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_R_Clavicle/J_Bip_R_UpperArm/J_Bip_R_LowerArm/J_Bip_R_Hand - 3558881564: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Sec_L_Bust1 - 3097079762: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_02/J_Sec_Hair2_02/J_Sec_Hair3_02/J_Sec_Hair4_02 - 2499231161: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Sec_L_Bust1/J_Sec_L_Bust2/J_Sec_L_Bust2_end - 4072675904: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_14/J_Sec_Hair2_14 - 1692557707: Root/J_Bip_C_Hips/J_Bip_R_UpperLeg/J_Sec_R_SkirtFront0_01/J_Sec_R_SkirtFront1_01/J_Sec_R_SkirtFront2_01/J_Sec_R_SkirtFront2_end_01/J_Sec_R_SkirtFront2_end_01_end - 3270082465: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_08/J_Sec_Hair2_08 - 2054382403: Root/J_Bip_C_Hips/J_Bip_L_UpperLeg/J_Sec_L_SkirtFront_01 - 563909342: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_10/J_Sec_Hair2_10 - 1190858285: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_R_Clavicle - 1174341030: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_01/J_Sec_Hair2_01/J_Sec_Hair3_01/J_Sec_Hair4_01/J_Sec_Hair5_01/J_Sec_Hair6_01/J_Sec_Hair6_01_end - 2136880292: Root/J_Bip_C_Hips - 461823654: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_09/J_Sec_Hair2_09 - 573333733: Root/J_Bip_C_Hips/J_Bip_L_UpperLeg/J_Sec_L_SkirtFront0_01/J_Sec_L_SkirtFront1_01 - 1820188738: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_04/J_Sec_Hair2_04 - 4130908796: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_04/J_Sec_Hair2_04/J_Sec_Hair3_04 - 2900583981: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_19/J_Sec_Hair2_19/J_Sec_Hair3_19 - 2770785369: Face - 3197178968: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_L_Clavicle/J_Bip_L_UpperArm/J_Bip_L_LowerArm/J_Bip_L_Hand/J_Bip_L_Middle1/J_Bip_L_Middle2 - 640871652: Root/J_Bip_C_Hips/J_Bip_R_UpperLeg/J_Sec_R_SkirtBack_01 - 3322060054: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_08/J_Sec_Hair2_08/J_Sec_Hair3_08/J_Sec_Hair3_08_end - 166194620: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_05 - 1850581056: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_18 - 3507665317: Root/J_Bip_C_Hips/J_Sec_R_SkirtSide0_01/J_Sec_R_SkirtSide1_01/J_Sec_R_SkirtSide2_01 - 0: - 2416115331: Root/J_Bip_C_Hips/J_Bip_R_UpperLeg/J_Sec_R_SkirtFront0_01 - 100527075: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_12/J_Sec_Hair2_12/J_Sec_Hair3_12 - 3011920101: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_01/J_Sec_Hair2_01/J_Sec_Hair3_01/J_Sec_Hair4_01/J_Sec_Hair5_01 - 317819110: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest - 1211440975: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_L_Clavicle/J_Bip_L_UpperArm/J_Bip_L_LowerArm/J_Bip_L_Hand/J_Bip_L_Ring1/J_Bip_L_Ring2/J_Bip_L_Ring3 - 395097456: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_L_Clavicle/J_Bip_L_UpperArm/J_Bip_L_LowerArm/J_Bip_L_Hand/J_Bip_L_Little1 - 1736610682: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_L_Clavicle/J_Bip_L_UpperArm/J_Bip_L_LowerArm/J_Sec_L_LowerSleeve_01 - 1496797904: Root/J_Bip_C_Hips/J_Bip_R_UpperLeg/J_Sec_R_SkirtSide_01 - 56322955: Root/J_Bip_C_Hips/J_Bip_L_UpperLeg/J_Sec_L_SkirtBack0_01 - 2180915214: Root/J_Bip_C_Hips/J_Bip_R_UpperLeg/J_Bip_R_LowerLeg/J_Bip_R_Foot - 1233944864: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_R_Clavicle/J_Bip_R_UpperArm/J_Bip_R_LowerArm/J_Sec_R_LowerSleeve_01 - 375580458: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_02/J_Sec_Hair2_02/J_Sec_Hair3_02/J_Sec_Hair4_02/J_Sec_Hair5_02 - 3452627499: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_18/J_Sec_Hair2_18/J_Sec_Hair3_18/J_Sec_Hair3_18_end - 3138913460: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Adj_L_FaceEye - 1620453490: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_10 - 1549043107: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_18/J_Sec_Hair2_18 - 1351590373: Root/J_Bip_C_Hips/J_Bip_R_UpperLeg/J_Sec_R_SkirtBack0_01/J_Sec_R_SkirtBack1_01/J_Sec_R_SkirtBack2_01/J_Sec_R_SkirtBack2_end_01 - 1439790663: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_07/J_Sec_Hair2_07/J_Sec_Hair3_07 - 3743063383: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Adj_R_FaceEye - 985041391: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_17/J_Sec_Hair2_17/J_Sec_Hair3_17 - 1012850073: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_R_Clavicle/J_Bip_R_UpperArm/J_Bip_R_LowerArm/J_Bip_R_Hand/J_Bip_R_Little1/J_Bip_R_Little2/J_Bip_R_Little3 - 1788482635: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_02/J_Sec_Hair2_02/J_Sec_Hair3_02 - 964314865: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_16/J_Sec_Hair2_16/J_Sec_Hair3_16/J_Sec_Hair3_16_end - 4003749906: Root/J_Bip_C_Hips/J_Bip_R_UpperLeg/J_Bip_R_LowerLeg/J_Bip_R_Foot/J_Bip_R_ToeBase - 3683127337: Root/J_Bip_C_Hips/J_Bip_R_UpperLeg/J_Sec_R_SkirtSide_01/J_Sec_R_SkirtSide_end_01/J_Sec_R_SkirtSide_end_01_end - 1584097983: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_L_Clavicle/J_Bip_L_UpperArm/J_Bip_L_LowerArm/J_Bip_L_Hand/J_Bip_L_Thumb1/J_Bip_L_Thumb2/J_Bip_L_Thumb3 - 42098839: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Sec_L_Bust1/J_Sec_L_Bust2 - 3044949467: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest - 889106634: Root/J_Bip_C_Hips/J_Bip_R_UpperLeg/J_Sec_R_SkirtFront_01/J_Sec_R_SkirtFront_end_01/J_Sec_R_SkirtFront_end_01_end - 3573454745: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_L_Clavicle/J_Bip_L_UpperArm/J_Bip_L_LowerArm/J_Bip_L_Hand/J_Sec_L_TipSleeve_01/J_Sec_L_TipSleeve_end_01 - 487207264: Root/J_Bip_C_Hips/J_Bip_L_UpperLeg/J_Sec_L_SkirtFront0_01/J_Sec_L_SkirtFront1_01/J_Sec_L_SkirtFront2_01 - 555363587: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_07/J_Sec_Hair2_07/J_Sec_Hair3_07/J_Sec_Hair3_07_end - 2573161940: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_14/J_Sec_Hair2_14/J_Sec_Hair3_14 - 563793185: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Sec_R_Bust1/J_Sec_R_Bust2/J_Sec_R_Bust2_end - 1599201911: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_R_Clavicle/J_Bip_R_UpperArm/J_Bip_R_LowerArm/J_Bip_R_Hand/J_Bip_R_Thumb1 - 2314571079: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_16 - 3280247173: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_09/J_Sec_Hair2_09/J_Sec_Hair3_09 - 728316428: Root/J_Bip_C_Hips/J_Bip_L_UpperLeg - 305941538: Root/J_Bip_C_Hips/J_Sec_L_SkirtSide0_01/J_Sec_L_SkirtSide1_01 - 4294921934: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_04/J_Sec_Hair2_04/J_Sec_Hair3_04/J_Sec_Hair4_04 - 3747768667: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_L_Clavicle/J_Bip_L_UpperArm/J_Bip_L_LowerArm/J_Bip_L_Hand/J_Bip_L_Ring1/J_Bip_L_Ring2 - 506101615: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_14/J_Sec_Hair2_14/J_Sec_Hair3_14/J_Sec_Hair3_14_end - 407801068: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_L_Clavicle/J_Bip_L_UpperArm/J_Bip_L_LowerArm/J_Bip_L_Hand/J_Bip_L_Little1/J_Bip_L_Little2 - 2874361606: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_R_Clavicle/J_Bip_R_UpperArm/J_Bip_R_LowerArm - 2045097404: Root/J_Bip_C_Hips/J_Bip_L_UpperLeg/J_Sec_L_SkirtBack_01/J_Sec_L_SkirtBack_end_01 - 630613340: Root/J_Bip_C_Hips/J_Bip_L_UpperLeg/J_Sec_L_SkirtFront_01/J_Sec_L_SkirtFront_end_01 - 2786342872: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_11/J_Sec_Hair2_11/J_Sec_Hair3_11 - 718428734: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_17/J_Sec_Hair2_17/J_Sec_Hair3_17/J_Sec_Hair3_17_end - 2317575035: Root/J_Bip_C_Hips/J_Sec_R_SkirtSide0_01 - 732937031: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_15/J_Sec_Hair2_15 - 490718561: Root/J_Bip_C_Hips/J_Bip_L_UpperLeg/J_Bip_L_LowerLeg/J_Bip_L_Foot/J_Bip_L_ToeBase - 4187978184: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_13 - 1777957277: Root/J_Bip_C_Hips/J_Bip_C_Spine - 1906081294: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_10/J_Sec_Hair2_10/J_Sec_Hair3_10 - 2607701519: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_16/J_Sec_Hair2_16 - 3365707631: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_L_Clavicle/J_Bip_L_UpperArm - 2431564806: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_06 - 2392344926: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_12 - 3991215231: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_R_Clavicle/J_Bip_R_UpperArm/J_Bip_R_LowerArm/J_Bip_R_Hand/J_Bip_R_Index1/J_Bip_R_Index2/J_Bip_R_Index3 - 243935653: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_01 - 677580999: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck - 97756173: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_06/J_Sec_Hair2_06 - 2958663727: Root/J_Bip_C_Hips/J_Bip_R_UpperLeg/J_Sec_R_SkirtFront0_01/J_Sec_R_SkirtFront1_01/J_Sec_R_SkirtFront2_01 - 3149394300: Root/J_Bip_C_Hips/J_Bip_R_UpperLeg/J_Sec_R_SkirtBack_01/J_Sec_R_SkirtBack_end_01 - 2977252379: Root/J_Bip_C_Hips/J_Sec_R_SkirtSide0_01/J_Sec_R_SkirtSide1_01 - m_HumanDescription: - serializedVersion: 3 - m_Human: - - m_BoneName: J_Bip_C_Hips - m_HumanName: Hips - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_L_UpperLeg - m_HumanName: LeftUpperLeg - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_R_UpperLeg - m_HumanName: RightUpperLeg - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_L_LowerLeg - m_HumanName: LeftLowerLeg - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_R_LowerLeg - m_HumanName: RightLowerLeg - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_L_Foot - m_HumanName: LeftFoot - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_R_Foot - m_HumanName: RightFoot - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_L_ToeBase - m_HumanName: LeftToes - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_R_ToeBase - m_HumanName: RightToes - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_C_Spine - m_HumanName: Spine - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_C_Chest - m_HumanName: Chest - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_C_UpperChest - m_HumanName: UpperChest - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_C_Neck - m_HumanName: Neck - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_C_Head - m_HumanName: Head - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Adj_L_FaceEye - m_HumanName: LeftEye - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Adj_R_FaceEye - m_HumanName: RightEye - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_L_Clavicle - m_HumanName: LeftShoulder - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_R_Clavicle - m_HumanName: RightShoulder - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_L_UpperArm - m_HumanName: LeftUpperArm - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_R_UpperArm - m_HumanName: RightUpperArm - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_L_LowerArm - m_HumanName: LeftLowerArm - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_R_LowerArm - m_HumanName: RightLowerArm - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_L_Hand - m_HumanName: LeftHand - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_R_Hand - m_HumanName: RightHand - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_L_Thumb1 - m_HumanName: Left Thumb Proximal - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_L_Thumb2 - m_HumanName: Left Thumb Intermediate - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_L_Thumb3 - m_HumanName: Left Thumb Distal - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_L_Index1 - m_HumanName: Left Index Proximal - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_L_Index2 - m_HumanName: Left Index Intermediate - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_L_Index3 - m_HumanName: Left Index Distal - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_L_Middle1 - m_HumanName: Left Middle Proximal - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_L_Middle2 - m_HumanName: Left Middle Intermediate - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_L_Middle3 - m_HumanName: Left Middle Distal - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_L_Ring1 - m_HumanName: Left Ring Proximal - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_L_Ring2 - m_HumanName: Left Ring Intermediate - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_L_Ring3 - m_HumanName: Left Ring Distal - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_L_Little1 - m_HumanName: Left Little Proximal - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_L_Little2 - m_HumanName: Left Little Intermediate - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_L_Little3 - m_HumanName: Left Little Distal - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_R_Thumb1 - m_HumanName: Right Thumb Proximal - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_R_Thumb2 - m_HumanName: Right Thumb Intermediate - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_R_Thumb3 - m_HumanName: Right Thumb Distal - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_R_Index1 - m_HumanName: Right Index Proximal - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_R_Index2 - m_HumanName: Right Index Intermediate - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_R_Index3 - m_HumanName: Right Index Distal - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_R_Middle1 - m_HumanName: Right Middle Proximal - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_R_Middle2 - m_HumanName: Right Middle Intermediate - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_R_Middle3 - m_HumanName: Right Middle Distal - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_R_Ring1 - m_HumanName: Right Ring Proximal - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_R_Ring2 - m_HumanName: Right Ring Intermediate - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_R_Ring3 - m_HumanName: Right Ring Distal - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_R_Little1 - m_HumanName: Right Little Proximal - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_R_Little2 - m_HumanName: Right Little Intermediate - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_R_Little3 - m_HumanName: Right Little Distal - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - m_Skeleton: - - m_Name: Female1_withAvatarIK - m_ParentName: - m_Position: {x: 0, y: 0, z: 0} - m_Rotation: {x: 0, y: 0, z: 0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: Body - m_ParentName: - m_Position: {x: 0, y: 0, z: 0} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: Face - m_ParentName: - m_Position: {x: 0, y: 0, z: 0} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: Hair - m_ParentName: - m_Position: {x: 0, y: 0, z: 0} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: Root - m_ParentName: - m_Position: {x: 0, y: 0, z: 0} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_C_Hips - m_ParentName: - m_Position: {x: 0, y: 0.93650174, z: 0.0036878982} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_C_Spine - m_ParentName: - m_Position: {x: 5.948816e-32, y: 0.050968885, z: 0.012252513} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_C_Chest - m_ParentName: - m_Position: {x: -2.0149595e-17, y: 0.110621214, z: 0.0029853042} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_C_UpperChest - m_ParentName: - m_Position: {x: 2.9083892e-17, y: 0.10536587, z: -0.014336677} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_C_Neck - m_ParentName: - m_Position: {x: 9.127545e-17, y: 0.1294887, z: -0.03754457} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_C_Head - m_ParentName: - m_Position: {x: 0.000000005196695, y: 0.075594306, z: 0.009783598} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Adj_L_FaceEye - m_ParentName: - m_Position: {x: -0.014784996, y: 0.06125927, z: 0.022221765} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Adj_R_FaceEye - m_ParentName: - m_Position: {x: 0.014784982, y: 0.06125927, z: 0.022221772} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair1_01 - m_ParentName: - m_Position: {x: 0.0060543846, y: 0.19155574, z: -0.11623336} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair2_01 - m_ParentName: - m_Position: {x: -0.0032195332, y: -0.09500408, z: -0.029305004} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_01 - m_ParentName: - m_Position: {x: -0.003834067, y: -0.09629369, z: -0.024558365} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair4_01 - m_ParentName: - m_Position: {x: -0.0045603532, y: -0.0975678, z: -0.01879552} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair5_01 - m_ParentName: - m_Position: {x: -0.004833374, y: -0.097961664, z: -0.016576946} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair6_01 - m_ParentName: - m_Position: {x: -0.004801523, y: -0.09791851, z: -0.016837388} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair6_01_end - m_ParentName: - m_Position: {x: -0.0033789221, y: -0.06890714, z: -0.011848748} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair1_02 - m_ParentName: - m_Position: {x: -0.023998903, y: 0.17999744, z: -0.09226433} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair2_02 - m_ParentName: - m_Position: {x: -0.017848196, y: -0.10116458, z: -0.025196552} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_02 - m_ParentName: - m_Position: {x: -0.019145628, y: -0.102164984, z: -0.019412987} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair4_02 - m_ParentName: - m_Position: {x: -0.020202043, y: -0.102792144, z: -0.014479518} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair5_02 - m_ParentName: - m_Position: {x: -0.020311652, y: -0.102844834, z: -0.013952583} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair5_02_end - m_ParentName: - m_Position: {x: -0.013444329, y: -0.06807315, z: -0.009235263} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair1_03 - m_ParentName: - m_Position: {x: 0.011216303, y: 0.19704938, z: -0.109584175} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair2_03 - m_ParentName: - m_Position: {x: 0.02504052, y: -0.09843135, z: -0.013009474} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_03 - m_ParentName: - m_Position: {x: 0.020819375, y: -0.09838283, z: -0.019334368} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair4_03 - m_ParentName: - m_Position: {x: 0.01747091, y: -0.09802544, z: -0.024187118} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair5_03 - m_ParentName: - m_Position: {x: 0.017163226, y: -0.097975254, z: -0.024624199} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair5_03_end - m_ParentName: - m_Position: {x: 0.011724673, y: -0.06692958, z: -0.016821474} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair1_04 - m_ParentName: - m_Position: {x: 0.09034192, y: 0.020739079, z: 0.013131157} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair2_04 - m_ParentName: - m_Position: {x: 0.0005200654, y: -0.052738905, z: 0.011005877} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_04 - m_ParentName: - m_Position: {x: -0.0051159784, y: -0.045720816, z: 0.02806885} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair4_04 - m_ParentName: - m_Position: {x: -0.017751932, y: -0.034382105, z: 0.036584526} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair4_04_end - m_ParentName: - m_Position: {x: -0.023335353, y: -0.045196176, z: 0.04809127} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair1_05 - m_ParentName: - m_Position: {x: -0.09037836, y: 0.018492937, z: 0.0131891295} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair2_05 - m_ParentName: - m_Position: {x: -0.00038973987, y: -0.051941752, z: 0.011532931} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_05 - m_ParentName: - m_Position: {x: 0.00504905, y: -0.04497254, z: 0.028033623} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair4_05 - m_ParentName: - m_Position: {x: 0.017956987, y: -0.033681393, z: 0.036034673} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair4_05_end - m_ParentName: - m_Position: {x: 0.0239464, y: -0.044915557, z: 0.048053756} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair1_06 - m_ParentName: - m_Position: {x: 0.0038271134, y: 0.10032368, z: 0.11484787} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair2_06 - m_ParentName: - m_Position: {x: -0.0114425, y: -0.038627625, z: -0.0029882044} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_06 - m_ParentName: - m_Position: {x: -0.023252435, y: -0.030773401, z: -0.0087142885} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_06_end - m_ParentName: - m_Position: {x: -0.04116246, y: -0.05447638, z: -0.015426412} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair1_07 - m_ParentName: - m_Position: {x: 0.09799406, y: 0.07294512, z: 0.038732037} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair2_07 - m_ParentName: - m_Position: {x: -0.008405648, y: -0.035627127, z: 0.0036858395} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_07 - m_ParentName: - m_Position: {x: -0.021355107, y: -0.028679848, z: 0.006578073} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_07_end - m_ParentName: - m_Position: {x: -0.041115865, y: -0.05521846, z: 0.012665033} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair1_08 - m_ParentName: - m_Position: {x: 0.1039162, y: 0.06665754, z: 0.01088972} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair2_08 - m_ParentName: - m_Position: {x: -0.012210831, y: -0.035097122, z: 0.0028314441} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_08 - m_ParentName: - m_Position: {x: -0.021619588, y: -0.029940248, z: -0.0024947487} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_08_end - m_ParentName: - m_Position: {x: -0.04088626, y: -0.05662203, z: -0.0047179908} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair1_09 - m_ParentName: - m_Position: {x: -0.103599615, y: 0.06952298, z: 0.010509707} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair2_09 - m_ParentName: - m_Position: {x: 0.011073269, y: -0.03683269, z: 0.00053985044} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_09 - m_ParentName: - m_Position: {x: 0.022228621, y: -0.03105092, z: -0.002774533} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_09_end - m_ParentName: - m_Position: {x: 0.040639482, y: -0.056768894, z: -0.005072549} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair1_10 - m_ParentName: - m_Position: {x: -0.09720296, y: 0.06601691, z: 0.038295604} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair2_10 - m_ParentName: - m_Position: {x: 0.008842394, y: -0.031521797, z: 0.0020156577} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_10 - m_ParentName: - m_Position: {x: 0.019210495, y: -0.025567174, z: 0.0049108267} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_10_end - m_ParentName: - m_Position: {x: 0.041562013, y: -0.05531466, z: 0.010624602} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair1_11 - m_ParentName: - m_Position: {x: -0.08736309, y: 0.061727047, z: -0.078165144} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair2_11 - m_ParentName: - m_Position: {x: 0.0076676607, y: -0.034651995, z: 0.0029347688} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_11 - m_ParentName: - m_Position: {x: 0.017155953, y: -0.030285716, z: 0.006837338} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_11_end - m_ParentName: - m_Position: {x: 0.033854835, y: -0.059764504, z: 0.01349251} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair1_12 - m_ParentName: - m_Position: {x: 0.003668399, y: 0.074970245, z: -0.12469099} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair2_12 - m_ParentName: - m_Position: {x: 0.00081768166, y: -0.04406452, z: 0.00985533} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_12 - m_ParentName: - m_Position: {x: 0.008002964, y: -0.039358377, z: 0.020634204} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_12_end - m_ParentName: - m_Position: {x: 0.012406546, y: -0.06101513, z: 0.031988047} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair1_13 - m_ParentName: - m_Position: {x: 0.092061795, y: 0.06233096, z: -0.07076192} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair2_13 - m_ParentName: - m_Position: {x: -0.006141573, y: -0.036583662, z: 0.006459132} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_13 - m_ParentName: - m_Position: {x: -0.012260839, y: -0.03093195, z: 0.017225683} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_13_end - m_ParentName: - m_Position: {x: -0.022906553, y: -0.057789207, z: 0.032182217} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair1_14 - m_ParentName: - m_Position: {x: -0.038898736, y: -0.019448876, z: -0.040619954} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair2_14 - m_ParentName: - m_Position: {x: 0.0060002767, y: -0.018793583, z: -0.0030941814} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_14 - m_ParentName: - m_Position: {x: 0.0022521075, y: -0.019284606, z: -0.0043754727} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_14_end - m_ParentName: - m_Position: {x: 0.007920966, y: -0.06782651, z: -0.015389115} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair1_15 - m_ParentName: - m_Position: {x: -0.010106603, y: -0.004513502, z: -0.068655685} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair2_15 - m_ParentName: - m_Position: {x: 0.0025522728, y: -0.030941367, z: 0.011916444} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_15 - m_ParentName: - m_Position: {x: 0.0056611383, y: -0.03245902, z: -0.0000307858} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_15_end - m_ParentName: - m_Position: {x: 0.01202706, y: -0.068959, z: -0.0000654012} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair1_16 - m_ParentName: - m_Position: {x: 0.04439354, y: -0.011398077, z: -0.0384506} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair2_16 - m_ParentName: - m_Position: {x: -0.0067237467, y: -0.024332285, z: 0.0013642758} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_16 - m_ParentName: - m_Position: {x: -0.0070233773, y: -0.021796703, z: -0.011003256} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_16_end - m_ParentName: - m_Position: {x: -0.019350724, y: -0.060054064, z: -0.030316055} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair1_17 - m_ParentName: - m_Position: {x: 0.06916933, y: 0.09241533, z: 0.08386295} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair2_17 - m_ParentName: - m_Position: {x: 0.00031793863, y: -0.031071424, z: -0.003433995} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_17 - m_ParentName: - m_Position: {x: -0.010192722, y: -0.029346943, z: 0.0015152171} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_17_end - m_ParentName: - m_Position: {x: -0.022939213, y: -0.066046715, z: 0.0034100711} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair1_18 - m_ParentName: - m_Position: {x: -0.030270243, y: 0.11486733, z: 0.109852746} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair2_18 - m_ParentName: - m_Position: {x: -0.03878224, y: -0.035150647, z: -0.012748048} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_18 - m_ParentName: - m_Position: {x: -0.040310033, y: -0.00279212, z: -0.033838585} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_18_end - m_ParentName: - m_Position: {x: -0.053538345, y: -0.0037083626, z: -0.0449432} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair1_19 - m_ParentName: - m_Position: {x: -0.06878384, y: 0.095115304, z: 0.084242165} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair2_19 - m_ParentName: - m_Position: {x: -0.00079639256, y: -0.0322783, z: -0.0035905913} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_19 - m_ParentName: - m_Position: {x: 0.013975155, y: -0.027860403, z: 0.006449461} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_19_end - m_ParentName: - m_Position: {x: 0.030734617, y: -0.06127155, z: 0.014183879} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_L_Clavicle - m_ParentName: - m_Position: {x: -0.020808386, y: 0.1034497, z: -0.02933467} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_L_UpperArm - m_ParentName: - m_Position: {x: -0.06679835, y: -0.0100136995, z: 0.000000014901161} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_L_LowerArm - m_ParentName: - m_Position: {x: -0.21410698, y: 0, z: 0} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_L_Hand - m_ParentName: - m_Position: {x: -0.19947156, y: 0.0000023841858, z: 0.00036800653} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_L_Index1 - m_ParentName: - m_Position: {x: -0.060842276, y: 0.007224083, z: 0.019240757} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_L_Index2 - m_ParentName: - m_Position: {x: -0.030905277, y: 0, z: -0.0006325543} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_L_Index3 - m_ParentName: - m_Position: {x: -0.019009352, y: -0.0005789995, z: -0.0007722862} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_L_Little1 - m_ParentName: - m_Position: {x: -0.056770742, y: 0.007224083, z: -0.028558226} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_L_Little2 - m_ParentName: - m_Position: {x: -0.02921474, y: 0, z: 0.000000014901161} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_L_Little3 - m_ParentName: - m_Position: {x: -0.016837686, y: 0.00000011920929, z: -0.000000022351742} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_L_Middle1 - m_ParentName: - m_Position: {x: -0.06167108, y: 0.007224202, z: 0.0020036474} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_L_Middle2 - m_ParentName: - m_Position: {x: -0.03443119, y: -0.00000011920929, z: 0.000000007450581} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_L_Middle3 - m_ParentName: - m_Position: {x: -0.021241367, y: 0.00000011920929, z: -0.000000007450581} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_L_Ring1 - m_ParentName: - m_Position: {x: -0.060968697, y: 0.007224083, z: -0.01330054} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_L_Ring2 - m_ParentName: - m_Position: {x: -0.03193912, y: 0, z: -0.000000014901161} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_L_Ring3 - m_ParentName: - m_Position: {x: -0.01843214, y: 0, z: 0} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_L_Thumb1 - m_ParentName: - m_Position: {x: -0.0032740831, y: -0.0097965, z: 0.01562553} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_L_Thumb2 - m_ParentName: - m_Position: {x: -0.032867372, y: -0.0020189285, z: 0.029622039} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_L_Thumb3 - m_ParentName: - m_Position: {x: -0.02096486, y: -0.0009496212, z: 0.017276319} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_TipSleeve_01 - m_ParentName: - m_Position: {x: 0.004469067, y: -0.015556693, z: -0.008071767} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_TipSleeve_end_01 - m_ParentName: - m_Position: {x: -0.042382568, y: -0.0041464567, z: -0.0023704246} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_TipSleeve_end_01_end - m_ParentName: - m_Position: {x: -0.06955972, y: -0.0068053007, z: -0.0038904175} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_LowerSleeve_01 - m_ParentName: - m_Position: {x: -0.09607756, y: -0.019597769, z: 0.0024976358} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_LowerSleeve_end_01 - m_ParentName: - m_Position: {x: -0.0049577653, y: -0.07610023, z: 0.0052430034} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_LowerSleeve_end_01_end - m_ParentName: - m_Position: {x: -0.0045399964, y: -0.06968737, z: 0.004801186} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_R_Clavicle - m_ParentName: - m_Position: {x: 0.020808386, y: 0.1034497, z: -0.02933467} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_R_UpperArm - m_ParentName: - m_Position: {x: 0.06679835, y: -0.0100136995, z: 0.000000014901161} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_R_LowerArm - m_ParentName: - m_Position: {x: 0.21410698, y: 0, z: 0} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_R_Hand - m_ParentName: - m_Position: {x: 0.19947156, y: 0.0000023841858, z: 0.00036800653} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_R_Index1 - m_ParentName: - m_Position: {x: 0.060842276, y: 0.007224083, z: 0.019240757} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_R_Index2 - m_ParentName: - m_Position: {x: 0.030905277, y: 0, z: -0.0006325543} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_R_Index3 - m_ParentName: - m_Position: {x: 0.019009352, y: -0.0005789995, z: -0.0007722862} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_R_Little1 - m_ParentName: - m_Position: {x: 0.056770742, y: 0.007224083, z: -0.028558226} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_R_Little2 - m_ParentName: - m_Position: {x: 0.02921474, y: 0, z: 0.000000014901161} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_R_Little3 - m_ParentName: - m_Position: {x: 0.016837686, y: 0.00000011920929, z: -0.000000022351742} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_R_Middle1 - m_ParentName: - m_Position: {x: 0.06167108, y: 0.007224202, z: 0.0020036474} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_R_Middle2 - m_ParentName: - m_Position: {x: 0.03443119, y: -0.00000011920929, z: 0.000000007450581} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_R_Middle3 - m_ParentName: - m_Position: {x: 0.021241367, y: 0.00000011920929, z: -0.000000007450581} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_R_Ring1 - m_ParentName: - m_Position: {x: 0.060968697, y: 0.007224083, z: -0.01330054} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_R_Ring2 - m_ParentName: - m_Position: {x: 0.03193912, y: 0, z: -0.000000014901161} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_R_Ring3 - m_ParentName: - m_Position: {x: 0.01843214, y: 0, z: 0} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_R_Thumb1 - m_ParentName: - m_Position: {x: 0.0032740831, y: -0.0097965, z: 0.01562553} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_R_Thumb2 - m_ParentName: - m_Position: {x: 0.032867372, y: -0.0020189285, z: 0.029622039} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_R_Thumb3 - m_ParentName: - m_Position: {x: 0.02096486, y: -0.0009496212, z: 0.017276319} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_TipSleeve_01 - m_ParentName: - m_Position: {x: -0.004469067, y: -0.015556693, z: -0.008071767} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_TipSleeve_end_01 - m_ParentName: - m_Position: {x: 0.042382568, y: -0.0041464567, z: -0.0023704246} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_TipSleeve_end_01_end - m_ParentName: - m_Position: {x: 0.06955972, y: -0.0068053007, z: -0.0038904175} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_LowerSleeve_01 - m_ParentName: - m_Position: {x: 0.09607756, y: -0.019597769, z: 0.0024976358} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_LowerSleeve_end_01 - m_ParentName: - m_Position: {x: 0.0049577653, y: -0.07610023, z: 0.0052430034} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_LowerSleeve_end_01_end - m_ParentName: - m_Position: {x: 0.0045399964, y: -0.06968737, z: 0.004801186} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_Bust1 - m_ParentName: - m_Position: {x: -0.051190045, y: -0.007102847, z: 0.067519896} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_Bust2 - m_ParentName: - m_Position: {x: -0.015037615, y: 0.0036982298, z: 0.030056074} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_Bust2_end - m_ParentName: - m_Position: {x: -0.031132981, y: 0.0076565742, z: 0.062226303} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_Bust1 - m_ParentName: - m_Position: {x: 0.051190045, y: -0.007102847, z: 0.067519896} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_Bust2 - m_ParentName: - m_Position: {x: 0.015037615, y: 0.0036982298, z: 0.030056074} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_Bust2_end - m_ParentName: - m_Position: {x: 0.031132981, y: 0.0076565742, z: 0.062226303} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_L_UpperLeg - m_ParentName: - m_Position: {x: -0.07168864, y: -0.03872311, z: -0.0035527977} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_L_LowerLeg - m_ParentName: - m_Position: {x: 0.000000014901161, y: -0.3756488, z: -0.010205619} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_L_Foot - m_ParentName: - m_Position: {x: 0, y: -0.4251067, z: -0.023510326} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_L_ToeBase - m_ParentName: - m_Position: {x: 0, y: -0.0613662, z: 0.09755388} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_SkirtBack0_01 - m_ParentName: - m_Position: {x: -0.00051371753, y: 0.03553772, z: -0.12787059} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_SkirtBack1_01 - m_ParentName: - m_Position: {x: 0, y: 0, z: 0} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_SkirtBack2_01 - m_ParentName: - m_Position: {x: -0.0321839, y: -0.12671971, z: -0.05308689} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_SkirtBack2_end_01 - m_ParentName: - m_Position: {x: -0.031471446, y: -0.1283117, z: -0.04816988} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_SkirtBack2_end_01_end - m_ParentName: - m_Position: {x: -0.015666068, y: -0.06387186, z: -0.023978308} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_SkirtBack_01 - m_ParentName: - m_Position: {x: 0.002153173, y: -0.040513754, z: -0.11518712} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_SkirtBack_end_01 - m_ParentName: - m_Position: {x: -0.00886596, y: -0.08771938, z: -0.013875127} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_SkirtBack_end_01_end - m_ParentName: - m_Position: {x: -0.006953582, y: -0.06879842, z: -0.010882273} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_SkirtFront0_01 - m_ParentName: - m_Position: {x: 0.0041720867, y: 0.0041890144, z: 0.14196625} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_SkirtFront1_01 - m_ParentName: - m_Position: {x: 0, y: 0, z: 0} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_SkirtFront2_01 - m_ParentName: - m_Position: {x: -0.022604093, y: -0.12880695, z: 0.019534513} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_SkirtFront2_end_01 - m_ParentName: - m_Position: {x: -0.02736549, y: -0.15725672, z: 0.024203286} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_SkirtFront2_end_01_end - m_ParentName: - m_Position: {x: -0.011865273, y: -0.0681842, z: 0.0104941875} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_SkirtFront_01 - m_ParentName: - m_Position: {x: 0.00864964, y: -0.05833465, z: 0.12072687} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_SkirtFront_end_01 - m_ParentName: - m_Position: {x: -0.008657336, y: -0.096174896, z: -0.0006926805} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_SkirtFront_end_01_end - m_ParentName: - m_Position: {x: -0.006275624, y: -0.069716334, z: -0.000502117} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_SkirtSide_01 - m_ParentName: - m_Position: {x: -0.10469708, y: -0.04024589, z: 0.003496936} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_SkirtSide_end_01 - m_ParentName: - m_Position: {x: -0.026975378, y: -0.09512514, z: -0.010761733} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_SkirtSide_end_01_end - m_ParentName: - m_Position: {x: -0.018985301, y: -0.06694919, z: -0.0075741177} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_R_UpperLeg - m_ParentName: - m_Position: {x: 0.07168864, y: -0.03872311, z: -0.0035527977} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_R_LowerLeg - m_ParentName: - m_Position: {x: -0.000000014901161, y: -0.3756488, z: -0.010205619} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_R_Foot - m_ParentName: - m_Position: {x: 0, y: -0.4251067, z: -0.023510326} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_R_ToeBase - m_ParentName: - m_Position: {x: 0, y: -0.0613662, z: 0.09755388} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_SkirtBack0_01 - m_ParentName: - m_Position: {x: 0.00051373243, y: 0.03553754, z: -0.12787092} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_SkirtBack1_01 - m_ParentName: - m_Position: {x: 0, y: 0, z: 0} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_SkirtBack2_01 - m_ParentName: - m_Position: {x: 0.0321839, y: -0.12671995, z: -0.053086832} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_SkirtBack2_end_01 - m_ParentName: - m_Position: {x: 0.031471908, y: -0.12831116, z: -0.048169613} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_SkirtBack2_end_01_end - m_ParentName: - m_Position: {x: 0.01566635, y: -0.0638718, z: -0.023978248} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_SkirtBack_01 - m_ParentName: - m_Position: {x: -0.0021531358, y: -0.040513754, z: -0.11518711} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_SkirtBack_end_01 - m_ParentName: - m_Position: {x: 0.0068022385, y: -0.0878436, z: -0.01423265} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_SkirtBack_end_01_end - m_ParentName: - m_Position: {x: 0.005335167, y: -0.0688979, z: -0.011163011} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_SkirtFront0_01 - m_ParentName: - m_Position: {x: -0.0041720644, y: 0.0041888356, z: 0.14196649} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_SkirtFront1_01 - m_ParentName: - m_Position: {x: 0, y: 0, z: 0} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_SkirtFront2_01 - m_ParentName: - m_Position: {x: 0.022604086, y: -0.12880653, z: 0.019534424} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_SkirtFront2_end_01 - m_ParentName: - m_Position: {x: 0.027364962, y: -0.1572566, z: 0.02420336} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_SkirtFront2_end_01_end - m_ParentName: - m_Position: {x: 0.011865057, y: -0.06818426, z: 0.010494232} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_SkirtFront_01 - m_ParentName: - m_Position: {x: -0.008878, y: -0.058356643, z: 0.12080709} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_SkirtFront_end_01 - m_ParentName: - m_Position: {x: 0.008391716, y: -0.096199274, z: -0.0005996004} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_SkirtFront_end_01_end - m_ParentName: - m_Position: {x: 0.006083064, y: -0.06973386, z: -0.00043464452} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_SkirtSide_01 - m_ParentName: - m_Position: {x: 0.10469708, y: -0.04024577, z: 0.0034969351} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_SkirtSide_end_01 - m_ParentName: - m_Position: {x: 0.026974961, y: -0.09512484, z: -0.010761726} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_SkirtSide_end_01_end - m_ParentName: - m_Position: {x: 0.018985078, y: -0.06694925, z: -0.007574144} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_SkirtSide0_01 - m_ParentName: - m_Position: {x: -0.1839734, y: -0.01717341, z: 0.008129962} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_SkirtSide1_01 - m_ParentName: - m_Position: {x: 0, y: 0, z: 0} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_SkirtSide2_01 - m_ParentName: - m_Position: {x: -0.04965982, y: -0.12537038, z: -0.007807067} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_SkirtSide2_end_01 - m_ParentName: - m_Position: {x: -0.040121317, y: -0.11963594, z: -0.0065027433} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_SkirtSide2_end_01_end - m_ParentName: - m_Position: {x: -0.022227585, y: -0.06627941, z: -0.0036025797} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_SkirtSide0_01 - m_ParentName: - m_Position: {x: 0.18397318, y: -0.017173588, z: 0.008129945} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_SkirtSide1_01 - m_ParentName: - m_Position: {x: 0, y: 0, z: 0} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_SkirtSide2_01 - m_ParentName: - m_Position: {x: 0.049659625, y: -0.12536985, z: -0.0078070783} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_SkirtSide2_end_01 - m_ParentName: - m_Position: {x: 0.040121317, y: -0.11963624, z: -0.0065027284} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_SkirtSide2_end_01_end - m_ParentName: - m_Position: {x: 0.022227526, y: -0.06627941, z: -0.003602563} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: secondary - m_ParentName: - m_Position: {x: 0, y: 0, z: 0} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - m_ArmTwist: 0.5 - m_ForeArmTwist: 0.5 - m_UpperLegTwist: 0.5 - m_LegTwist: 0.5 - m_ArmStretch: 0.05 - m_LegStretch: 0.05 - m_FeetSpacing: 0 - m_GlobalScale: 0 - m_RootMotionBoneName: - m_HasTranslationDoF: 0 - m_HasExtraRoot: 0 - m_SkeletonHasParents: 0 diff --git a/com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Arts/Female1_withBodyTracking.avatar.asset b/com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Arts/Female1_withBodyTracking.avatar.asset deleted file mode 100644 index f6c41ff..0000000 --- a/com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Arts/Female1_withBodyTracking.avatar.asset +++ /dev/null @@ -1,4223 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!90 &9000000 -Avatar: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: Female1_withBodyTracking.avatar - m_AvatarSize: 34144 - m_Avatar: - serializedVersion: 3 - m_AvatarSkeleton: - data: - m_Node: - - m_ParentId: -1 - m_AxesId: -1 - - m_ParentId: 0 - m_AxesId: -1 - - m_ParentId: 0 - m_AxesId: -1 - - m_ParentId: 0 - m_AxesId: -1 - - m_ParentId: 0 - m_AxesId: -1 - - m_ParentId: 4 - m_AxesId: -1 - - m_ParentId: 5 - m_AxesId: -1 - - m_ParentId: 6 - m_AxesId: -1 - - m_ParentId: 7 - m_AxesId: -1 - - m_ParentId: 8 - m_AxesId: -1 - - m_ParentId: 9 - m_AxesId: -1 - - m_ParentId: 10 - m_AxesId: -1 - - m_ParentId: 10 - m_AxesId: -1 - - m_ParentId: 10 - m_AxesId: -1 - - m_ParentId: 13 - m_AxesId: -1 - - m_ParentId: 14 - m_AxesId: -1 - - m_ParentId: 15 - m_AxesId: -1 - - m_ParentId: 16 - m_AxesId: -1 - - m_ParentId: 17 - m_AxesId: -1 - - m_ParentId: 18 - m_AxesId: -1 - - m_ParentId: 10 - m_AxesId: -1 - - m_ParentId: 20 - m_AxesId: -1 - - m_ParentId: 21 - m_AxesId: -1 - - m_ParentId: 22 - m_AxesId: -1 - - m_ParentId: 23 - m_AxesId: -1 - - m_ParentId: 24 - m_AxesId: -1 - - m_ParentId: 10 - m_AxesId: -1 - - m_ParentId: 26 - m_AxesId: -1 - - m_ParentId: 27 - m_AxesId: -1 - - m_ParentId: 28 - m_AxesId: -1 - - m_ParentId: 29 - m_AxesId: -1 - - m_ParentId: 30 - m_AxesId: -1 - - m_ParentId: 10 - m_AxesId: -1 - - m_ParentId: 32 - m_AxesId: -1 - - m_ParentId: 33 - m_AxesId: -1 - - m_ParentId: 34 - m_AxesId: -1 - - m_ParentId: 35 - m_AxesId: -1 - - m_ParentId: 10 - m_AxesId: -1 - - m_ParentId: 37 - m_AxesId: -1 - - m_ParentId: 38 - m_AxesId: -1 - - m_ParentId: 39 - m_AxesId: -1 - - m_ParentId: 40 - m_AxesId: -1 - - m_ParentId: 10 - m_AxesId: -1 - - m_ParentId: 42 - m_AxesId: -1 - - m_ParentId: 43 - m_AxesId: -1 - - m_ParentId: 44 - m_AxesId: -1 - - m_ParentId: 10 - m_AxesId: -1 - - m_ParentId: 46 - m_AxesId: -1 - - m_ParentId: 47 - m_AxesId: -1 - - m_ParentId: 48 - m_AxesId: -1 - - m_ParentId: 10 - m_AxesId: -1 - - m_ParentId: 50 - m_AxesId: -1 - - m_ParentId: 51 - m_AxesId: -1 - - m_ParentId: 52 - m_AxesId: -1 - - m_ParentId: 10 - m_AxesId: -1 - - m_ParentId: 54 - m_AxesId: -1 - - m_ParentId: 55 - m_AxesId: -1 - - m_ParentId: 56 - m_AxesId: -1 - - m_ParentId: 10 - m_AxesId: -1 - - m_ParentId: 58 - m_AxesId: -1 - - m_ParentId: 59 - m_AxesId: -1 - - m_ParentId: 60 - m_AxesId: -1 - - m_ParentId: 10 - m_AxesId: -1 - - m_ParentId: 62 - m_AxesId: -1 - - m_ParentId: 63 - m_AxesId: -1 - - m_ParentId: 64 - m_AxesId: -1 - - m_ParentId: 10 - m_AxesId: -1 - - m_ParentId: 66 - m_AxesId: -1 - - m_ParentId: 67 - m_AxesId: -1 - - m_ParentId: 68 - m_AxesId: -1 - - m_ParentId: 10 - m_AxesId: -1 - - m_ParentId: 70 - m_AxesId: -1 - - m_ParentId: 71 - m_AxesId: -1 - - m_ParentId: 72 - m_AxesId: -1 - - m_ParentId: 10 - m_AxesId: -1 - - m_ParentId: 74 - m_AxesId: -1 - - m_ParentId: 75 - m_AxesId: -1 - - m_ParentId: 76 - m_AxesId: -1 - - m_ParentId: 10 - m_AxesId: -1 - - m_ParentId: 78 - m_AxesId: -1 - - m_ParentId: 79 - m_AxesId: -1 - - m_ParentId: 80 - m_AxesId: -1 - - m_ParentId: 10 - m_AxesId: -1 - - m_ParentId: 82 - m_AxesId: -1 - - m_ParentId: 83 - m_AxesId: -1 - - m_ParentId: 84 - m_AxesId: -1 - - m_ParentId: 10 - m_AxesId: -1 - - m_ParentId: 86 - m_AxesId: -1 - - m_ParentId: 87 - m_AxesId: -1 - - m_ParentId: 88 - m_AxesId: -1 - - m_ParentId: 10 - m_AxesId: -1 - - m_ParentId: 90 - m_AxesId: -1 - - m_ParentId: 91 - m_AxesId: -1 - - m_ParentId: 92 - m_AxesId: -1 - - m_ParentId: 10 - m_AxesId: -1 - - m_ParentId: 94 - m_AxesId: -1 - - m_ParentId: 95 - m_AxesId: -1 - - m_ParentId: 96 - m_AxesId: -1 - - m_ParentId: 8 - m_AxesId: -1 - - m_ParentId: 98 - m_AxesId: -1 - - m_ParentId: 99 - m_AxesId: -1 - - m_ParentId: 100 - m_AxesId: -1 - - m_ParentId: 101 - m_AxesId: -1 - - m_ParentId: 102 - m_AxesId: -1 - - m_ParentId: 103 - m_AxesId: -1 - - m_ParentId: 101 - m_AxesId: -1 - - m_ParentId: 105 - m_AxesId: -1 - - m_ParentId: 106 - m_AxesId: -1 - - m_ParentId: 101 - m_AxesId: -1 - - m_ParentId: 108 - m_AxesId: -1 - - m_ParentId: 109 - m_AxesId: -1 - - m_ParentId: 101 - m_AxesId: -1 - - m_ParentId: 111 - m_AxesId: -1 - - m_ParentId: 112 - m_AxesId: -1 - - m_ParentId: 101 - m_AxesId: -1 - - m_ParentId: 114 - m_AxesId: -1 - - m_ParentId: 115 - m_AxesId: -1 - - m_ParentId: 101 - m_AxesId: -1 - - m_ParentId: 117 - m_AxesId: -1 - - m_ParentId: 118 - m_AxesId: -1 - - m_ParentId: 100 - m_AxesId: -1 - - m_ParentId: 120 - m_AxesId: -1 - - m_ParentId: 121 - m_AxesId: -1 - - m_ParentId: 8 - m_AxesId: -1 - - m_ParentId: 123 - m_AxesId: -1 - - m_ParentId: 124 - m_AxesId: -1 - - m_ParentId: 125 - m_AxesId: -1 - - m_ParentId: 126 - m_AxesId: -1 - - m_ParentId: 127 - m_AxesId: -1 - - m_ParentId: 128 - m_AxesId: -1 - - m_ParentId: 126 - m_AxesId: -1 - - m_ParentId: 130 - m_AxesId: -1 - - m_ParentId: 131 - m_AxesId: -1 - - m_ParentId: 126 - m_AxesId: -1 - - m_ParentId: 133 - m_AxesId: -1 - - m_ParentId: 134 - m_AxesId: -1 - - m_ParentId: 126 - m_AxesId: -1 - - m_ParentId: 136 - m_AxesId: -1 - - m_ParentId: 137 - m_AxesId: -1 - - m_ParentId: 126 - m_AxesId: -1 - - m_ParentId: 139 - m_AxesId: -1 - - m_ParentId: 140 - m_AxesId: -1 - - m_ParentId: 126 - m_AxesId: -1 - - m_ParentId: 142 - m_AxesId: -1 - - m_ParentId: 143 - m_AxesId: -1 - - m_ParentId: 125 - m_AxesId: -1 - - m_ParentId: 145 - m_AxesId: -1 - - m_ParentId: 146 - m_AxesId: -1 - - m_ParentId: 8 - m_AxesId: -1 - - m_ParentId: 148 - m_AxesId: -1 - - m_ParentId: 149 - m_AxesId: -1 - - m_ParentId: 8 - m_AxesId: -1 - - m_ParentId: 151 - m_AxesId: -1 - - m_ParentId: 152 - m_AxesId: -1 - - m_ParentId: 5 - m_AxesId: -1 - - m_ParentId: 154 - m_AxesId: -1 - - m_ParentId: 155 - m_AxesId: -1 - - m_ParentId: 156 - m_AxesId: -1 - - m_ParentId: 154 - m_AxesId: -1 - - m_ParentId: 158 - m_AxesId: -1 - - m_ParentId: 159 - m_AxesId: -1 - - m_ParentId: 160 - m_AxesId: -1 - - m_ParentId: 161 - m_AxesId: -1 - - m_ParentId: 154 - m_AxesId: -1 - - m_ParentId: 163 - m_AxesId: -1 - - m_ParentId: 164 - m_AxesId: -1 - - m_ParentId: 154 - m_AxesId: -1 - - m_ParentId: 166 - m_AxesId: -1 - - m_ParentId: 167 - m_AxesId: -1 - - m_ParentId: 168 - m_AxesId: -1 - - m_ParentId: 169 - m_AxesId: -1 - - m_ParentId: 154 - m_AxesId: -1 - - m_ParentId: 171 - m_AxesId: -1 - - m_ParentId: 172 - m_AxesId: -1 - - m_ParentId: 154 - m_AxesId: -1 - - m_ParentId: 174 - m_AxesId: -1 - - m_ParentId: 175 - m_AxesId: -1 - - m_ParentId: 5 - m_AxesId: -1 - - m_ParentId: 177 - m_AxesId: -1 - - m_ParentId: 178 - m_AxesId: -1 - - m_ParentId: 179 - m_AxesId: -1 - - m_ParentId: 177 - m_AxesId: -1 - - m_ParentId: 181 - m_AxesId: -1 - - m_ParentId: 182 - m_AxesId: -1 - - m_ParentId: 183 - m_AxesId: -1 - - m_ParentId: 184 - m_AxesId: -1 - - m_ParentId: 177 - m_AxesId: -1 - - m_ParentId: 186 - m_AxesId: -1 - - m_ParentId: 187 - m_AxesId: -1 - - m_ParentId: 177 - m_AxesId: -1 - - m_ParentId: 189 - m_AxesId: -1 - - m_ParentId: 190 - m_AxesId: -1 - - m_ParentId: 191 - m_AxesId: -1 - - m_ParentId: 192 - m_AxesId: -1 - - m_ParentId: 177 - m_AxesId: -1 - - m_ParentId: 194 - m_AxesId: -1 - - m_ParentId: 195 - m_AxesId: -1 - - m_ParentId: 177 - m_AxesId: -1 - - m_ParentId: 197 - m_AxesId: -1 - - m_ParentId: 198 - m_AxesId: -1 - - m_ParentId: 5 - m_AxesId: -1 - - m_ParentId: 200 - m_AxesId: -1 - - m_ParentId: 201 - m_AxesId: -1 - - m_ParentId: 202 - m_AxesId: -1 - - m_ParentId: 203 - m_AxesId: -1 - - m_ParentId: 5 - m_AxesId: -1 - - m_ParentId: 205 - m_AxesId: -1 - - m_ParentId: 206 - m_AxesId: -1 - - m_ParentId: 207 - m_AxesId: -1 - - m_ParentId: 208 - m_AxesId: -1 - - m_ParentId: 0 - m_AxesId: -1 - m_ID: 000000008ca49a7b59d426a527cec53c6556c6b6a4345e7f9d79f969db3d7eb5e688f112c7106328fe0c1055b40418bb579d1adfa5298a0edbc94e6670c873c95cdf2a9be54086b369b4a771a605ff451f788397932c8fd64b149a6ad2af99b82ae762166cd4facb894884e0948de00f9d5d12bd977dd8105078eec350029f442adde07e42e07d6c7caa38f6ce4effffaab76f9cbcede709454112b5aae3b0218b9cbe5783f92d0f06bcee900da4d305913f5982cc31b232908ce9e70a05bcdc4776d155032d1a2101915677a17fe9c253d00c14169d02c697a15100a6de861b859984c3d981aad572289660de929c210e7e9c71530c8a50e4189117d933f3f8d83714a69c1022435e49988e91d63248e3ebfd05cd35da77c8799ff996775d9135a275d2022972646becfb67401ac0f2d4555f996f7f2a1efddcfc1047bbaf2b021cd74ea063820d478df5890f5e6e9b39c03eedf1467a39d1bdf2fe08ff0142ef89b63a3e5ad22a40a04d6ea385545cfb2f6b7b2beacacdd6904a19a4243b852d66e3ace4f662de76bf9c7f6f9f9cc8bb0e4b0be42785794ad2d9d9f85d986d34fc2df270b58c17ec8c4e18ed03b0ccd97e0281581491be11ae9ba7b466a4ba5b6962df4f1f354836ad4abf9470919abf6a6b5e251494829997fed487ce5cb27a93826759086475117a05392d0efb462c0e54d1064753ab774ec1b00b9dc239e287df7b7f1ce5ed39dfb7160273009399dd5e3c90143980b6ebdf3565707557be39027499a05a704294a2b677e2515f8eaad68cf48aa3414a02c9b2c001387b998e90f920818c49c177390bbbcace851c3920d497608202b93df7948fdec1e3589948ad21cd9a210c3a692bf966b2ffe417ce8f61c53f1d8b6b5b03d149ddae1ea7a25f4701aeb906d02a39763c0a34bcb5e5794bc1c33af7d6a655e5602c2260310a1df2cf2dbc436247344363737a5c659625a6c24ae842820f4b700082652c042ceb578b0e12baf77ae60e20fe811260a4ee33a1481d8c623e1fc2de8d3de5a18f50d76a4b5de4ec32267cf1b7bb4ed5670a83fe029081a255112fa059b053e7fbb78b61e264fba960641738dce1cab0fe34d0523759b044d0a7291088db41e43223224c3c12a4c875003c7d1937c74034187b63238a1b4475b1a5b912d102e0e9dc3184214e1574531b - m_AxesArray: [] - m_AvatarSkeletonPose: - data: - m_X: - - t: {x: 0, y: 0, z: 0} - q: {x: 0, y: 0, z: 0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: 0.93650174, z: 0.0036878982} - q: {x: 0, y: 0, z: 0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 5.948816e-32, y: 0.050968885, z: 0.012252513} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -2.0149595e-17, y: 0.110621214, z: 0.0029853042} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 2.9083892e-17, y: 0.10536587, z: -0.014336677} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 9.127545e-17, y: 0.1294887, z: -0.03754457} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.000000005196695, y: 0.075594306, z: 0.009783598} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.014784996, y: 0.06125927, z: 0.022221765} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.014784982, y: 0.06125927, z: 0.022221772} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0060543846, y: 0.19155574, z: -0.11623336} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.0032195332, y: -0.09500408, z: -0.029305004} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.003834067, y: -0.09629369, z: -0.024558365} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.0045603532, y: -0.0975678, z: -0.01879552} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.004833374, y: -0.097961664, z: -0.016576946} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.004801523, y: -0.09791851, z: -0.016837388} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.0033789221, y: -0.06890714, z: -0.011848748} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.023998903, y: 0.17999744, z: -0.09226433} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.017848196, y: -0.10116458, z: -0.025196552} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.019145628, y: -0.102164984, z: -0.019412987} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.020202043, y: -0.102792144, z: -0.014479518} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.020311652, y: -0.102844834, z: -0.013952583} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.013444329, y: -0.06807315, z: -0.009235263} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.011216303, y: 0.19704938, z: -0.109584175} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.02504052, y: -0.09843135, z: -0.013009474} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.020819375, y: -0.09838283, z: -0.019334368} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.01747091, y: -0.09802544, z: -0.024187118} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.017163226, y: -0.097975254, z: -0.024624199} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.011724673, y: -0.06692958, z: -0.016821474} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.09034192, y: 0.020739079, z: 0.013131157} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0005200654, y: -0.052738905, z: 0.011005877} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.0051159784, y: -0.045720816, z: 0.02806885} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.017751932, y: -0.034382105, z: 0.036584526} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.023335353, y: -0.045196176, z: 0.04809127} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.09037836, y: 0.018492937, z: 0.0131891295} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.00038973987, y: -0.051941752, z: 0.011532931} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.00504905, y: -0.04497254, z: 0.028033623} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.017956987, y: -0.033681393, z: 0.036034673} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0239464, y: -0.044915557, z: 0.048053756} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0038271134, y: 0.10032368, z: 0.11484787} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.0114425, y: -0.038627625, z: -0.0029882044} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.023252435, y: -0.030773401, z: -0.0087142885} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.04116246, y: -0.05447638, z: -0.015426412} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.09799406, y: 0.07294512, z: 0.038732037} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.008405648, y: -0.035627127, z: 0.0036858395} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.021355107, y: -0.028679848, z: 0.006578073} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.041115865, y: -0.05521846, z: 0.012665033} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.1039162, y: 0.06665754, z: 0.01088972} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.012210831, y: -0.035097122, z: 0.0028314441} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.021619588, y: -0.029940248, z: -0.0024947487} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.04088626, y: -0.05662203, z: -0.0047179908} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.103599615, y: 0.06952298, z: 0.010509707} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.011073269, y: -0.03683269, z: 0.00053985044} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.022228621, y: -0.03105092, z: -0.002774533} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.040639482, y: -0.056768894, z: -0.005072549} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.09720296, y: 0.06601691, z: 0.038295604} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.008842394, y: -0.031521797, z: 0.0020156577} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.019210495, y: -0.025567174, z: 0.0049108267} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.041562013, y: -0.05531466, z: 0.010624602} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.08736309, y: 0.061727047, z: -0.078165144} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0076676607, y: -0.034651995, z: 0.0029347688} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.017155953, y: -0.030285716, z: 0.006837338} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.033854835, y: -0.059764504, z: 0.01349251} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.003668399, y: 0.074970245, z: -0.12469099} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.00081768166, y: -0.04406452, z: 0.00985533} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.008002964, y: -0.039358377, z: 0.020634204} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.012406546, y: -0.06101513, z: 0.031988047} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.092061795, y: 0.06233096, z: -0.07076192} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.006141573, y: -0.036583662, z: 0.006459132} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.012260839, y: -0.03093195, z: 0.017225683} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.022906553, y: -0.057789207, z: 0.032182217} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.038898736, y: -0.019448876, z: -0.040619954} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0060002767, y: -0.018793583, z: -0.0030941814} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0022521075, y: -0.019284606, z: -0.0043754727} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.007920966, y: -0.06782651, z: -0.015389115} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.010106603, y: -0.004513502, z: -0.068655685} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0025522728, y: -0.030941367, z: 0.011916444} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0056611383, y: -0.03245902, z: -0.0000307858} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.01202706, y: -0.068959, z: -0.0000654012} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.04439354, y: -0.011398077, z: -0.0384506} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.0067237467, y: -0.024332285, z: 0.0013642758} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.0070233773, y: -0.021796703, z: -0.011003256} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.019350724, y: -0.060054064, z: -0.030316055} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.06916933, y: 0.09241533, z: 0.08386295} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.00031793863, y: -0.031071424, z: -0.003433995} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.010192722, y: -0.029346943, z: 0.0015152171} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.022939213, y: -0.066046715, z: 0.0034100711} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.030270243, y: 0.11486733, z: 0.109852746} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.03878224, y: -0.035150647, z: -0.012748048} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.040310033, y: -0.00279212, z: -0.033838585} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.053538345, y: -0.0037083626, z: -0.0449432} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.06878384, y: 0.095115304, z: 0.084242165} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.00079639256, y: -0.0322783, z: -0.0035905913} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.013975155, y: -0.027860403, z: 0.006449461} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.030734617, y: -0.06127155, z: 0.014183879} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.020808386, y: 0.1034497, z: -0.02933467} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.06679835, y: -0.0100136995, z: 0.000000014901161} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.21410698, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.19947156, y: 0.0000023841858, z: 0.00036800653} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.060842276, y: 0.007224083, z: 0.019240757} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.030905277, y: 0, z: -0.0006325543} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.019009352, y: -0.0005789995, z: -0.0007722862} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.056770742, y: 0.007224083, z: -0.028558226} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.02921474, y: 0, z: 0.000000014901161} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.016837686, y: 0.00000011920929, z: -0.000000022351742} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.06167108, y: 0.007224202, z: 0.0020036474} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.03443119, y: -0.00000011920929, z: 0.000000007450581} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.021241367, y: 0.00000011920929, z: -0.000000007450581} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.060968697, y: 0.007224083, z: -0.01330054} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.03193912, y: 0, z: -0.000000014901161} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.01843214, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.0032740831, y: -0.0097965, z: 0.01562553} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.032867372, y: -0.0020189285, z: 0.029622039} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.02096486, y: -0.0009496212, z: 0.017276319} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.004469067, y: -0.015556693, z: -0.008071767} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.042382568, y: -0.0041464567, z: -0.0023704246} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.06955972, y: -0.0068053007, z: -0.0038904175} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.09607756, y: -0.019597769, z: 0.0024976358} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.0049577653, y: -0.07610023, z: 0.0052430034} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.0045399964, y: -0.06968737, z: 0.004801186} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.020808386, y: 0.1034497, z: -0.02933467} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.06679835, y: -0.0100136995, z: 0.000000014901161} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.21410698, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.19947156, y: 0.0000023841858, z: 0.00036800653} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.060842276, y: 0.007224083, z: 0.019240757} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.030905277, y: 0, z: -0.0006325543} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.019009352, y: -0.0005789995, z: -0.0007722862} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.056770742, y: 0.007224083, z: -0.028558226} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.02921474, y: 0, z: 0.000000014901161} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.016837686, y: 0.00000011920929, z: -0.000000022351742} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.06167108, y: 0.007224202, z: 0.0020036474} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.03443119, y: -0.00000011920929, z: 0.000000007450581} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.021241367, y: 0.00000011920929, z: -0.000000007450581} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.060968697, y: 0.007224083, z: -0.01330054} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.03193912, y: 0, z: -0.000000014901161} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.01843214, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0032740831, y: -0.0097965, z: 0.01562553} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.032867372, y: -0.0020189285, z: 0.029622039} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.02096486, y: -0.0009496212, z: 0.017276319} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.004469067, y: -0.015556693, z: -0.008071767} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.042382568, y: -0.0041464567, z: -0.0023704246} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.06955972, y: -0.0068053007, z: -0.0038904175} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.09607756, y: -0.019597769, z: 0.0024976358} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0049577653, y: -0.07610023, z: 0.0052430034} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0045399964, y: -0.06968737, z: 0.004801186} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.051190045, y: -0.007102847, z: 0.067519896} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.015037615, y: 0.0036982298, z: 0.030056074} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.031132981, y: 0.0076565742, z: 0.062226303} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.051190045, y: -0.007102847, z: 0.067519896} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.015037615, y: 0.0036982298, z: 0.030056074} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.031132981, y: 0.0076565742, z: 0.062226303} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.07168864, y: -0.03872311, z: -0.0035527977} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.000000014901161, y: -0.3756488, z: -0.010205619} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: -0.4251067, z: -0.023510326} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: -0.0613662, z: 0.09755388} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.00051371753, y: 0.03553772, z: -0.12787059} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.0321839, y: -0.12671971, z: -0.05308689} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.031471446, y: -0.1283117, z: -0.04816988} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.015666068, y: -0.06387186, z: -0.023978308} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.002153173, y: -0.040513754, z: -0.11518712} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.00886596, y: -0.08771938, z: -0.013875127} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.006953582, y: -0.06879842, z: -0.010882273} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0041720867, y: 0.0041890144, z: 0.14196625} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.022604093, y: -0.12880695, z: 0.019534513} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.02736549, y: -0.15725672, z: 0.024203286} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.011865273, y: -0.0681842, z: 0.0104941875} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.00864964, y: -0.05833465, z: 0.12072687} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.008657336, y: -0.096174896, z: -0.0006926805} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.006275624, y: -0.069716334, z: -0.000502117} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.10469708, y: -0.04024589, z: 0.003496936} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.026975378, y: -0.09512514, z: -0.010761733} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.018985301, y: -0.06694919, z: -0.0075741177} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.07168864, y: -0.03872311, z: -0.0035527977} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.000000014901161, y: -0.3756488, z: -0.010205619} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: -0.4251067, z: -0.023510326} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: -0.0613662, z: 0.09755388} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.00051373243, y: 0.03553754, z: -0.12787092} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0321839, y: -0.12671995, z: -0.053086832} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.031471908, y: -0.12831116, z: -0.048169613} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.01566635, y: -0.0638718, z: -0.023978248} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.0021531358, y: -0.040513754, z: -0.11518711} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0068022385, y: -0.0878436, z: -0.01423265} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.005335167, y: -0.0688979, z: -0.011163011} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.0041720644, y: 0.0041888356, z: 0.14196649} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.022604086, y: -0.12880653, z: 0.019534424} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.027364962, y: -0.1572566, z: 0.02420336} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.011865057, y: -0.06818426, z: 0.010494232} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.008878, y: -0.058356643, z: 0.12080709} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.008391716, y: -0.096199274, z: -0.0005996004} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.006083064, y: -0.06973386, z: -0.00043464452} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.10469708, y: -0.04024577, z: 0.0034969351} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.026974961, y: -0.09512484, z: -0.010761726} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.018985078, y: -0.06694925, z: -0.007574144} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.1839734, y: -0.01717341, z: 0.008129962} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.04965982, y: -0.12537038, z: -0.007807067} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.040121317, y: -0.11963594, z: -0.0065027433} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.022227585, y: -0.06627941, z: -0.0036025797} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.18397318, y: -0.017173588, z: 0.008129945} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.049659625, y: -0.12536985, z: -0.0078070783} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.040121317, y: -0.11963624, z: -0.0065027284} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.022227526, y: -0.06627941, z: -0.003602563} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - m_DefaultPose: - data: - m_X: - - t: {x: 0, y: 0, z: 0} - q: {x: 0, y: 0, z: 0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: 0.93650174, z: 0.0036878982} - q: {x: 0, y: 0, z: 0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 5.948816e-32, y: 0.050968885, z: 0.012252513} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -2.0149595e-17, y: 0.110621214, z: 0.0029853042} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 2.9083892e-17, y: 0.10536587, z: -0.014336677} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 9.127545e-17, y: 0.1294887, z: -0.03754457} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.000000005196695, y: 0.075594306, z: 0.009783598} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.014784996, y: 0.06125927, z: 0.022221765} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.014784982, y: 0.06125927, z: 0.022221772} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0060543846, y: 0.19155574, z: -0.11623336} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.0032195332, y: -0.09500408, z: -0.029305004} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.003834067, y: -0.09629369, z: -0.024558365} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.0045603532, y: -0.0975678, z: -0.01879552} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.004833374, y: -0.097961664, z: -0.016576946} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.004801523, y: -0.09791851, z: -0.016837388} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.0033789221, y: -0.06890714, z: -0.011848748} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.023998903, y: 0.17999744, z: -0.09226433} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.017848196, y: -0.10116458, z: -0.025196552} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.019145628, y: -0.102164984, z: -0.019412987} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.020202043, y: -0.102792144, z: -0.014479518} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.020311652, y: -0.102844834, z: -0.013952583} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.013444329, y: -0.06807315, z: -0.009235263} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.011216303, y: 0.19704938, z: -0.109584175} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.02504052, y: -0.09843135, z: -0.013009474} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.020819375, y: -0.09838283, z: -0.019334368} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.01747091, y: -0.09802544, z: -0.024187118} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.017163226, y: -0.097975254, z: -0.024624199} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.011724673, y: -0.06692958, z: -0.016821474} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.09034192, y: 0.020739079, z: 0.013131157} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0005200654, y: -0.052738905, z: 0.011005877} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.0051159784, y: -0.045720816, z: 0.02806885} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.017751932, y: -0.034382105, z: 0.036584526} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.023335353, y: -0.045196176, z: 0.04809127} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.09037836, y: 0.018492937, z: 0.0131891295} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.00038973987, y: -0.051941752, z: 0.011532931} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.00504905, y: -0.04497254, z: 0.028033623} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.017956987, y: -0.033681393, z: 0.036034673} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0239464, y: -0.044915557, z: 0.048053756} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0038271134, y: 0.10032368, z: 0.11484787} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.0114425, y: -0.038627625, z: -0.0029882044} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.023252435, y: -0.030773401, z: -0.0087142885} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.04116246, y: -0.05447638, z: -0.015426412} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.09799406, y: 0.07294512, z: 0.038732037} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.008405648, y: -0.035627127, z: 0.0036858395} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.021355107, y: -0.028679848, z: 0.006578073} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.041115865, y: -0.05521846, z: 0.012665033} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.1039162, y: 0.06665754, z: 0.01088972} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.012210831, y: -0.035097122, z: 0.0028314441} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.021619588, y: -0.029940248, z: -0.0024947487} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.04088626, y: -0.05662203, z: -0.0047179908} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.103599615, y: 0.06952298, z: 0.010509707} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.011073269, y: -0.03683269, z: 0.00053985044} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.022228621, y: -0.03105092, z: -0.002774533} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.040639482, y: -0.056768894, z: -0.005072549} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.09720296, y: 0.06601691, z: 0.038295604} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.008842394, y: -0.031521797, z: 0.0020156577} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.019210495, y: -0.025567174, z: 0.0049108267} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.041562013, y: -0.05531466, z: 0.010624602} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.08736309, y: 0.061727047, z: -0.078165144} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0076676607, y: -0.034651995, z: 0.0029347688} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.017155953, y: -0.030285716, z: 0.006837338} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.033854835, y: -0.059764504, z: 0.01349251} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.003668399, y: 0.074970245, z: -0.12469099} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.00081768166, y: -0.04406452, z: 0.00985533} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.008002964, y: -0.039358377, z: 0.020634204} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.012406546, y: -0.06101513, z: 0.031988047} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.092061795, y: 0.06233096, z: -0.07076192} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.006141573, y: -0.036583662, z: 0.006459132} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.012260839, y: -0.03093195, z: 0.017225683} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.022906553, y: -0.057789207, z: 0.032182217} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.038898736, y: -0.019448876, z: -0.040619954} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0060002767, y: -0.018793583, z: -0.0030941814} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0022521075, y: -0.019284606, z: -0.0043754727} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.007920966, y: -0.06782651, z: -0.015389115} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.010106603, y: -0.004513502, z: -0.068655685} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0025522728, y: -0.030941367, z: 0.011916444} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0056611383, y: -0.03245902, z: -0.0000307858} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.01202706, y: -0.068959, z: -0.0000654012} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.04439354, y: -0.011398077, z: -0.0384506} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.0067237467, y: -0.024332285, z: 0.0013642758} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.0070233773, y: -0.021796703, z: -0.011003256} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.019350724, y: -0.060054064, z: -0.030316055} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.06916933, y: 0.09241533, z: 0.08386295} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.00031793863, y: -0.031071424, z: -0.003433995} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.010192722, y: -0.029346943, z: 0.0015152171} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.022939213, y: -0.066046715, z: 0.0034100711} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.030270243, y: 0.11486733, z: 0.109852746} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.03878224, y: -0.035150647, z: -0.012748048} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.040310033, y: -0.00279212, z: -0.033838585} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.053538345, y: -0.0037083626, z: -0.0449432} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.06878384, y: 0.095115304, z: 0.084242165} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.00079639256, y: -0.0322783, z: -0.0035905913} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.013975155, y: -0.027860403, z: 0.006449461} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.030734617, y: -0.06127155, z: 0.014183879} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.020808386, y: 0.1034497, z: -0.02933467} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.06679835, y: -0.0100136995, z: 0.000000014901161} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.21410698, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.19947156, y: 0.0000023841858, z: 0.00036800653} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.060842276, y: 0.007224083, z: 0.019240757} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.030905277, y: 0, z: -0.0006325543} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.019009352, y: -0.0005789995, z: -0.0007722862} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.056770742, y: 0.007224083, z: -0.028558226} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.02921474, y: 0, z: 0.000000014901161} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.016837686, y: 0.00000011920929, z: -0.000000022351742} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.06167108, y: 0.007224202, z: 0.0020036474} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.03443119, y: -0.00000011920929, z: 0.000000007450581} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.021241367, y: 0.00000011920929, z: -0.000000007450581} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.060968697, y: 0.007224083, z: -0.01330054} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.03193912, y: 0, z: -0.000000014901161} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.01843214, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.0032740831, y: -0.0097965, z: 0.01562553} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.032867372, y: -0.0020189285, z: 0.029622039} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.02096486, y: -0.0009496212, z: 0.017276319} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.004469067, y: -0.015556693, z: -0.008071767} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.042382568, y: -0.0041464567, z: -0.0023704246} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.06955972, y: -0.0068053007, z: -0.0038904175} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.09607756, y: -0.019597769, z: 0.0024976358} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.0049577653, y: -0.07610023, z: 0.0052430034} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.0045399964, y: -0.06968737, z: 0.004801186} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.020808386, y: 0.1034497, z: -0.02933467} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.06679835, y: -0.0100136995, z: 0.000000014901161} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.21410698, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.19947156, y: 0.0000023841858, z: 0.00036800653} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.060842276, y: 0.007224083, z: 0.019240757} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.030905277, y: 0, z: -0.0006325543} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.019009352, y: -0.0005789995, z: -0.0007722862} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.056770742, y: 0.007224083, z: -0.028558226} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.02921474, y: 0, z: 0.000000014901161} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.016837686, y: 0.00000011920929, z: -0.000000022351742} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.06167108, y: 0.007224202, z: 0.0020036474} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.03443119, y: -0.00000011920929, z: 0.000000007450581} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.021241367, y: 0.00000011920929, z: -0.000000007450581} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.060968697, y: 0.007224083, z: -0.01330054} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.03193912, y: 0, z: -0.000000014901161} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.01843214, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0032740831, y: -0.0097965, z: 0.01562553} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.032867372, y: -0.0020189285, z: 0.029622039} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.02096486, y: -0.0009496212, z: 0.017276319} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.004469067, y: -0.015556693, z: -0.008071767} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.042382568, y: -0.0041464567, z: -0.0023704246} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.06955972, y: -0.0068053007, z: -0.0038904175} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.09607756, y: -0.019597769, z: 0.0024976358} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0049577653, y: -0.07610023, z: 0.0052430034} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0045399964, y: -0.06968737, z: 0.004801186} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.051190045, y: -0.007102847, z: 0.067519896} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.015037615, y: 0.0036982298, z: 0.030056074} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.031132981, y: 0.0076565742, z: 0.062226303} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.051190045, y: -0.007102847, z: 0.067519896} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.015037615, y: 0.0036982298, z: 0.030056074} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.031132981, y: 0.0076565742, z: 0.062226303} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.07168864, y: -0.03872311, z: -0.0035527977} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.000000014901161, y: -0.3756488, z: -0.010205619} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: -0.4251067, z: -0.023510326} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: -0.0613662, z: 0.09755388} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.00051371753, y: 0.03553772, z: -0.12787059} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.0321839, y: -0.12671971, z: -0.05308689} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.031471446, y: -0.1283117, z: -0.04816988} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.015666068, y: -0.06387186, z: -0.023978308} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.002153173, y: -0.040513754, z: -0.11518712} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.00886596, y: -0.08771938, z: -0.013875127} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.006953582, y: -0.06879842, z: -0.010882273} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0041720867, y: 0.0041890144, z: 0.14196625} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.022604093, y: -0.12880695, z: 0.019534513} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.02736549, y: -0.15725672, z: 0.024203286} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.011865273, y: -0.0681842, z: 0.0104941875} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.00864964, y: -0.05833465, z: 0.12072687} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.008657336, y: -0.096174896, z: -0.0006926805} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.006275624, y: -0.069716334, z: -0.000502117} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.10469708, y: -0.04024589, z: 0.003496936} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.026975378, y: -0.09512514, z: -0.010761733} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.018985301, y: -0.06694919, z: -0.0075741177} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.07168864, y: -0.03872311, z: -0.0035527977} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.000000014901161, y: -0.3756488, z: -0.010205619} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: -0.4251067, z: -0.023510326} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: -0.0613662, z: 0.09755388} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.00051373243, y: 0.03553754, z: -0.12787092} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0321839, y: -0.12671995, z: -0.053086832} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.031471908, y: -0.12831116, z: -0.048169613} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.01566635, y: -0.0638718, z: -0.023978248} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.0021531358, y: -0.040513754, z: -0.11518711} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0068022385, y: -0.0878436, z: -0.01423265} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.005335167, y: -0.0688979, z: -0.011163011} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.0041720644, y: 0.0041888356, z: 0.14196649} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.022604086, y: -0.12880653, z: 0.019534424} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.027364962, y: -0.1572566, z: 0.02420336} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.011865057, y: -0.06818426, z: 0.010494232} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.008878, y: -0.058356643, z: 0.12080709} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.008391716, y: -0.096199274, z: -0.0005996004} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.006083064, y: -0.06973386, z: -0.00043464452} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.10469708, y: -0.04024577, z: 0.0034969351} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.026974961, y: -0.09512484, z: -0.010761726} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.018985078, y: -0.06694925, z: -0.007574144} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.1839734, y: -0.01717341, z: 0.008129962} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.04965982, y: -0.12537038, z: -0.007807067} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.040121317, y: -0.11963594, z: -0.0065027433} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.022227585, y: -0.06627941, z: -0.0036025797} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.18397318, y: -0.017173588, z: 0.008129945} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.049659625, y: -0.12536985, z: -0.0078070783} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.040121317, y: -0.11963624, z: -0.0065027284} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.022227526, y: -0.06627941, z: -0.003602563} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - m_SkeletonNameIDArray: 000000008ca49a7b59d426a527cec53c6556c6b665a19f95493a2d043167a66d679237d619de6dcbd6fe8f4cede95e8d0e705ce90f862d4be1299859844e24e13d76f37c58114fc4b6befad6c196ad3bb5d724d25b7891c03e1f2d788727fae5e240465df2eb82f223e723a5cd4896b7a82f2a0f1117fd927470412a42c2e2cf8072473b6eddf2290bba4e91b282990ccc1e68b11642404cf8edf55e9d8a49e624b29e7b7c37088cac1349d542bcfcc727db407fb5446dc13a234ea2d48cfbb0b1eb4708056d0dfcab3ef1324591442020f6f898d4fa5d7e3d0ef645d3a14357b6c6ffef64d33d43d887312536288437534f388fb06271854eb73652a0188340c57f3ff8004b11b8f4e63fcb1a498ad97f2e3661d031b1ff62d638bc8c798daee91e31166018d1c2c1435c222fece9304a8b558870c4f17057735b55b9dcee47dcbb52ffc0ed914ded2252cc038de7de66ea5b661097310a7b1255bb95bde0a9f0da5c11a0be5137ea0fea2b04a05f3961c7e381712901b57c3fed5c9290584ef7f7e4f6c1006188da54a6855d538d16c2a5eaf910f8483d2b7a3629912b3fb0071b38c7160bc92dac5ac0b43a6ac7c3bfc047bb05914e2293a1495524439f5a9e1296c3082291b45705a54fed54acd67b64aba1333eb33a4e9af75f7c03f166fd327ce44dce76ed5451061881e5c1bc06e2ea2f99148dc0fb9b94043259074088080ed91e3809aef592cb494fc3c2d0d9f3c5a75c5945dfe6084c4670384b31b7a47e6d0df577f49bc570834e269426f4779dbf62479ac8df579a97dfd47968bd35b404c8fad9220f2e481487405d0501c8a8b5bb99a12ce481e2f0922f4982287e401b296e620c86ad03fb195b64140c83a5d38490275f8def401de888fca5062749b788fcaff624c9e5a4e4527c2ed63601f3cbc7e1534668dbbc230f6704cda0d2162558fd809f167ef445e76864960be47dbb404fcdd0ec7951d21245fe1c486309dd1c64c242ea032de7e079ea6709253bb76851b4d20fed0c3ca0581e14d19071347ee448083b558347788fc40af1a43173a07e7a16c7c2c2f86877d067b8c3794c0725e97f6079cd0a26dbfaabf74e213c8550fc435ccbc9dd7e266b861e8b3ce37937840dd68296b57ccff1dc0c08bcbc999a95d9fe262d3751933f2951f076ccbb09501574531b - m_Human: - data: - serializedVersion: 2 - m_RootX: - t: {x: 0.001946428, y: 0.95183253, z: -0.0076206247} - q: {x: -0.031124543, y: -0, z: -0, w: 0.99951553} - s: {x: 1, y: 1, z: 1} - m_Skeleton: - data: - m_Node: - - m_ParentId: -1 - m_AxesId: -1 - - m_ParentId: 0 - m_AxesId: 0 - - m_ParentId: 1 - m_AxesId: 1 - - m_ParentId: 2 - m_AxesId: 2 - - m_ParentId: 3 - m_AxesId: 3 - - m_ParentId: 4 - m_AxesId: 4 - - m_ParentId: 5 - m_AxesId: 5 - - m_ParentId: 6 - m_AxesId: 6 - - m_ParentId: 6 - m_AxesId: 7 - - m_ParentId: 4 - m_AxesId: 8 - - m_ParentId: 9 - m_AxesId: 9 - - m_ParentId: 10 - m_AxesId: 10 - - m_ParentId: 11 - m_AxesId: 11 - - m_ParentId: 12 - m_AxesId: 12 - - m_ParentId: 13 - m_AxesId: 13 - - m_ParentId: 14 - m_AxesId: 14 - - m_ParentId: 12 - m_AxesId: 15 - - m_ParentId: 16 - m_AxesId: 16 - - m_ParentId: 17 - m_AxesId: 17 - - m_ParentId: 12 - m_AxesId: 18 - - m_ParentId: 19 - m_AxesId: 19 - - m_ParentId: 20 - m_AxesId: 20 - - m_ParentId: 12 - m_AxesId: 21 - - m_ParentId: 22 - m_AxesId: 22 - - m_ParentId: 23 - m_AxesId: 23 - - m_ParentId: 12 - m_AxesId: 24 - - m_ParentId: 25 - m_AxesId: 25 - - m_ParentId: 26 - m_AxesId: 26 - - m_ParentId: 4 - m_AxesId: 27 - - m_ParentId: 28 - m_AxesId: 28 - - m_ParentId: 29 - m_AxesId: 29 - - m_ParentId: 30 - m_AxesId: 30 - - m_ParentId: 31 - m_AxesId: 31 - - m_ParentId: 32 - m_AxesId: 32 - - m_ParentId: 33 - m_AxesId: 33 - - m_ParentId: 31 - m_AxesId: 34 - - m_ParentId: 35 - m_AxesId: 35 - - m_ParentId: 36 - m_AxesId: 36 - - m_ParentId: 31 - m_AxesId: 37 - - m_ParentId: 38 - m_AxesId: 38 - - m_ParentId: 39 - m_AxesId: 39 - - m_ParentId: 31 - m_AxesId: 40 - - m_ParentId: 41 - m_AxesId: 41 - - m_ParentId: 42 - m_AxesId: 42 - - m_ParentId: 31 - m_AxesId: 43 - - m_ParentId: 44 - m_AxesId: 44 - - m_ParentId: 45 - m_AxesId: 45 - - m_ParentId: 1 - m_AxesId: 46 - - m_ParentId: 47 - m_AxesId: 47 - - m_ParentId: 48 - m_AxesId: 48 - - m_ParentId: 49 - m_AxesId: 49 - - m_ParentId: 1 - m_AxesId: 50 - - m_ParentId: 51 - m_AxesId: 51 - - m_ParentId: 52 - m_AxesId: 52 - - m_ParentId: 53 - m_AxesId: 53 - m_ID: 6556c6b6a4345e7f9d79f969db3d7eb5e688f112c7106328fe0c1055b40418bb579d1adf76bf9c7f6f9f9cc8bb0e4b0be42785794ad2d9d9f85d986d34fc2df270b58c17ec8c4e18ed03b0ccd97e0281581491be11ae9ba7b466a4ba5b6962df4f1f354836ad4abf9470919abf6a6b5e2d0efb462c0e54d1064753ab774ec1b00b9dc239e287df7b7f1ce5ed39dfb7160273009399dd5e3c90143980b6ebdf3565707557be39027499a05a704294a2b677e2515f8eaad68cf48aa3410c3a692bf966b2ffe417ce8f61c53f1d578b0e12baf77ae60e20fe811260a4ee - m_AxesArray: - - m_PreQ: {x: -0.4376833, y: -0.55536777, z: 0.4376833, w: 0.55536777} - m_PostQ: {x: -0.4376833, y: -0.55536777, z: 0.4376833, w: 0.55536777} - m_Sgn: {x: 1, y: 1, z: 1} - m_Limit: - m_Min: {x: -0.6981317, y: -0.6981317, z: -0.6981317} - m_Max: {x: 0.6981317, y: 0.6981317, z: 0.6981317} - m_Length: 0.052420907 - m_Type: 1 - - m_PreQ: {x: 0.49320966, y: 0.5066994, z: -0.49320966, w: -0.5066994} - m_PostQ: {x: 0.49320966, y: 0.5066994, z: -0.49320966, w: -0.5066994} - m_Sgn: {x: 1, y: 1, z: 1} - m_Limit: - m_Min: {x: -0.6981317, y: -0.6981317, z: -0.6981317} - m_Max: {x: 0.6981317, y: 0.6981317, z: 0.6981317} - m_Length: 0.11066149 - m_Type: 1 - - m_PreQ: {x: 0.53264046, y: 0.4650744, z: -0.53264046, w: -0.4650744} - m_PostQ: {x: 0.53264046, y: 0.4650744, z: -0.53264046, w: -0.4650744} - m_Sgn: {x: 1, y: 1, z: 1} - m_Limit: - m_Min: {x: -0.6981317, y: -0.6981317, z: -0.6981317} - m_Max: {x: 0.6981317, y: 0.6981317, z: 0.6981317} - m_Length: 0.106336765 - m_Type: 1 - - m_PreQ: {x: 0.56534845, y: 0.424713, z: -0.5653485, w: -0.424713} - m_PostQ: {x: 0.56534845, y: 0.424713, z: -0.5653485, w: -0.424713} - m_Sgn: {x: 1, y: 1, z: 1} - m_Limit: - m_Min: {x: -0.34906584, y: -0.34906584, z: -0.34906584} - m_Max: {x: 0.34906584, y: 0.34906584, z: 0.34906584} - m_Length: 0.1348218 - m_Type: 1 - - m_PreQ: {x: -0.4668105, y: -0.5311195, z: 0.46681046, w: 0.53111964} - m_PostQ: {x: -0.4668105, y: -0.5311195, z: 0.46681046, w: 0.53111964} - m_Sgn: {x: 1, y: 1, z: 1} - m_Limit: - m_Min: {x: -0.6981317, y: -0.6981317, z: -0.6981317} - m_Max: {x: 0.6981317, y: 0.6981317, z: 0.6981317} - m_Length: 0.07622479 - m_Type: 1 - - m_PreQ: {x: -0.5, y: -0.5, z: 0.5, w: 0.5} - m_PostQ: {x: -0.5, y: -0.5, z: 0.5, w: 0.5} - m_Sgn: {x: 1, y: 1, z: 1} - m_Limit: - m_Min: {x: -0.6981317, y: -0.6981317, z: -0.6981317} - m_Max: {x: 0.6981317, y: 0.6981317, z: 0.6981317} - m_Length: 0.07622479 - m_Type: 1 - - m_PreQ: {x: 0.7071068, y: -0, z: 0.7071068, w: 0} - m_PostQ: {x: 0.7071068, y: -0, z: 0.7071068, w: 0} - m_Sgn: {x: 1, y: 1, z: -1} - m_Limit: - m_Min: {x: 0, y: -0.34906584, z: -0.17453292} - m_Max: {x: 0, y: 0.34906584, z: 0.2617994} - m_Length: 0.1 - m_Type: 1 - - m_PreQ: {x: 0.7071068, y: -0, z: 0.7071068, w: 0} - m_PostQ: {x: 0.7071068, y: -0, z: 0.7071068, w: 0} - m_Sgn: {x: 1, y: -1, z: -1} - m_Limit: - m_Min: {x: 0, y: -0.34906584, z: -0.17453292} - m_Max: {x: 0, y: 0.34906584, z: 0.2617994} - m_Length: 0.1 - m_Type: 1 - - m_PreQ: {x: 0.00000011000067, y: 0.000000008199257, z: 0.99723357, w: -0.074332036} - m_PostQ: {x: 0.00000011000067, y: 0.000000008199257, z: 0.99723357, - w: -0.074332036} - m_Sgn: {x: 1, y: 1, z: -1} - m_Limit: - m_Min: {x: 0, y: -0.2617994, z: -0.2617994} - m_Max: {x: 0, y: 0.2617994, z: 0.5235988} - m_Length: 0.06754476 - m_Type: 1 - - m_PreQ: {x: 0.24421027, y: -0, z: 0.91123235, w: -0.33168858} - m_PostQ: {x: -0, y: -0, z: 1, w: 0} - m_Sgn: {x: 1, y: 1, z: -1} - m_Limit: - m_Min: {x: -1.5707964, y: -1.7453293, z: -1.0471976} - m_Max: {x: 1.5707964, y: 1.7453293, z: 1.7453293} - m_Length: 0.21410698 - m_Type: 1 - - m_PreQ: {x: 0.45499057, y: 0.54128516, z: 0.5412797, w: -0.45498413} - m_PostQ: {x: 0.00065649813, y: 0.70710653, z: 0.7071065, w: -0.0006480465} - m_Sgn: {x: 1, y: 1, z: -1} - m_Limit: - m_Min: {x: -1.5707964, y: 0, z: -1.3962634} - m_Max: {x: 1.5707964, y: 0, z: 1.3962634} - m_Length: 0.19947194 - m_Type: 1 - - m_PreQ: {x: 0.00092245237, y: -0.0000000055128093, z: 0.99999964, w: 0.0000059762515} - m_PostQ: {x: 0.00092245237, y: -0.0000000055128093, z: 0.99999964, w: 0.0000059762515} - m_Sgn: {x: 1, y: 1, z: -1} - m_Limit: - m_Min: {x: 0, y: -0.6981317, z: -1.3962634} - m_Max: {x: 0, y: 0.6981317, z: 1.3962634} - m_Length: 0.049867984 - m_Type: 1 - - m_PreQ: {x: 0.06662614, y: -0.0029315962, z: 0.9557585, w: -0.286493} - m_PostQ: {x: -0.010232162, y: -0, z: 0.99994767, w: 0} - m_Sgn: {x: -1, y: -1, z: -1} - m_Limit: - m_Min: {x: 0, y: -0.34906584, z: -0.87266463} - m_Max: {x: 0, y: 0.34906584, z: 0.87266463} - m_Length: 0.03091172 - m_Type: 1 - - m_PreQ: {x: -0.019170221, y: -0.0066514756, z: 0.9445533, w: -0.32773086} - m_PostQ: {x: -0.020289013, y: -0.00030891653, z: 0.99967825, w: -0.015220904} - m_Sgn: {x: -1, y: 1, z: -1} - m_Limit: - m_Min: {x: 0, y: 0, z: -0.7853982} - m_Max: {x: 0, y: 0, z: 0.7853982} - m_Length: 0.019033842 - m_Type: 1 - - m_PreQ: {x: -0.019170223, y: -0.0066514765, z: 0.9445534, w: -0.3277309} - m_PostQ: {x: -0.020289015, y: -0.00030891653, z: 0.9996783, w: -0.015220904} - m_Sgn: {x: -1, y: 1, z: -1} - m_Limit: - m_Min: {x: 0, y: 0, z: -0.7853982} - m_Max: {x: 0, y: 0, z: 0.7853982} - m_Length: 0.0107065365 - m_Type: 1 - - m_PreQ: {x: -0.07640189, y: 0.0000000730676, z: 0.9550267, w: -0.28650802} - m_PostQ: {x: 0.00000025502814, y: -0, z: 1, w: 0} - m_Sgn: {x: -1, y: 1, z: -1} - m_Limit: - m_Min: {x: 0, y: -0.34906584, z: -0.87266463} - m_Max: {x: 0, y: 0.34906584, z: 0.87266463} - m_Length: 0.02921474 - m_Type: 1 - - m_PreQ: {x: -0.00000063030984, y: -0.00000020799976, z: 0.94962984, - w: -0.31337413} - m_PostQ: {x: -0.00000066374264, y: 2.3496229e-12, z: 1, w: 0.0000035399607} - m_Sgn: {x: -1, y: 1, z: -1} - m_Limit: - m_Min: {x: 0, y: 0, z: -0.7853982} - m_Max: {x: 0, y: 0, z: 0.7853982} - m_Length: 0.016837656 - m_Type: 1 - - m_PreQ: {x: -0.00000063030984, y: -0.00000020799976, z: 0.94962984, - w: -0.31337413} - m_PostQ: {x: -0.00000066374264, y: 2.3496229e-12, z: 1, w: 0.0000035399607} - m_Sgn: {x: -1, y: 1, z: -1} - m_Limit: - m_Min: {x: 0, y: 0, z: -0.7853982} - m_Max: {x: 0, y: 0, z: 0.7853982} - m_Length: 0.009471182 - m_Type: 1 - - m_PreQ: {x: 0.03828507, y: -0.00000003520898, z: 0.95712364, w: -0.2871389} - m_PostQ: {x: 0.00000010819532, y: 1.8729965e-13, z: 1, w: -0.0000017311252} - m_Sgn: {x: -1, y: -1, z: -1} - m_Limit: - m_Min: {x: 0, y: -0.1308997, z: -0.87266463} - m_Max: {x: 0, y: 0.1308997, z: 0.87266463} - m_Length: 0.03443116 - m_Type: 1 - - m_PreQ: {x: -0.0000001665451, y: -0.00000005495937, z: 0.9496296, w: -0.31337482} - m_PostQ: {x: -0.00000017537903, y: 4.9212484e-13, z: 1, w: 0.0000028060645} - m_Sgn: {x: -1, y: 1, z: -1} - m_Limit: - m_Min: {x: 0, y: 0, z: -0.7853982} - m_Max: {x: 0, y: 0, z: 0.7853982} - m_Length: 0.021241367 - m_Type: 1 - - m_PreQ: {x: -0.0000001665451, y: -0.00000005495937, z: 0.9496296, w: -0.31337482} - m_PostQ: {x: -0.00000017537903, y: 4.9212484e-13, z: 1, w: 0.0000028060645} - m_Sgn: {x: -1, y: 1, z: -1} - m_Limit: - m_Min: {x: 0, y: 0, z: -0.7853982} - m_Max: {x: 0, y: 0, z: 0.7853982} - m_Length: 0.011948269 - m_Type: 1 - - m_PreQ: {x: -0.03828519, y: -0.00000006698185, z: 0.9571241, w: -0.28713724} - m_PostQ: {x: -0.00000023327468, y: -0, z: 1, w: 0} - m_Sgn: {x: -1, y: 1, z: -1} - m_Limit: - m_Min: {x: 0, y: -0.1308997, z: -0.87266463} - m_Max: {x: 0, y: 0.1308997, z: 0.87266463} - m_Length: 0.03193909 - m_Type: 1 - - m_PreQ: {x: -0, y: -0, z: 0.9496287, w: -0.3133775} - m_PostQ: {x: -0, y: -0, z: 1, w: 0} - m_Sgn: {x: -1, y: 1, z: -1} - m_Limit: - m_Min: {x: 0, y: 0, z: -0.7853982} - m_Max: {x: 0, y: 0, z: 0.7853982} - m_Length: 0.01843214 - m_Type: 1 - - m_PreQ: {x: -0, y: -0, z: 0.9496287, w: -0.3133775} - m_PostQ: {x: -0, y: -0, z: 1, w: 0} - m_Sgn: {x: -1, y: 1, z: -1} - m_Limit: - m_Min: {x: 0, y: 0, z: -0.7853982} - m_Max: {x: 0, y: 0, z: 0.7853982} - m_Length: 0.010368079 - m_Type: 1 - - m_PreQ: {x: 0.23622903, y: 0.64043754, z: 0.5931203, w: -0.42690066} - m_PostQ: {x: 0.23844662, y: 0.6541293, z: 0.66569006, w: -0.26854223} - m_Sgn: {x: -1, y: -1, z: 1} - m_Limit: - m_Min: {x: 0, y: -0.43633232, z: -0.34906584} - m_Max: {x: 0, y: 0.43633232, z: 0.34906584} - m_Length: 0.04429227 - m_Type: 1 - - m_PreQ: {x: 0.091492675, y: 0.6975384, z: 0.7011627, w: -0.11593179} - m_PostQ: {x: 0.22722527, y: 0.6612566, z: 0.6696034, w: -0.250479} - m_Sgn: {x: -1, y: 1, z: 1} - m_Limit: - m_Min: {x: 0, y: 0, z: -0.6981317} - m_Max: {x: 0, y: 0, z: 0.61086524} - m_Length: 0.027182685 - m_Type: 1 - - m_PreQ: {x: 0.091492675, y: 0.6975384, z: 0.7011627, w: -0.11593179} - m_PostQ: {x: 0.22722527, y: 0.6612566, z: 0.6696034, w: -0.250479} - m_Sgn: {x: -1, y: 1, z: 1} - m_Limit: - m_Min: {x: 0, y: 0, z: -0.6981317} - m_Max: {x: 0, y: 0, z: 0.61086524} - m_Length: 0.01529026 - m_Type: 1 - - m_PreQ: {x: -0.000000008199257, y: -0.00000011000067, z: -0.074332036, - w: 0.99723357} - m_PostQ: {x: -0.000000008199257, y: -0.00000011000067, z: -0.074332036, - w: 0.99723357} - m_Sgn: {x: 1, y: 1, z: 1} - m_Limit: - m_Min: {x: 0, y: -0.2617994, z: -0.2617994} - m_Max: {x: 0, y: 0.2617994, z: 0.5235988} - m_Length: 0.06754476 - m_Type: 1 - - m_PreQ: {x: -0, y: -0.24421027, z: -0.33168858, w: 0.91123235} - m_PostQ: {x: -0, y: -0, z: -0, w: 1} - m_Sgn: {x: -1, y: 1, z: 1} - m_Limit: - m_Min: {x: -1.5707964, y: -1.7453293, z: -1.0471976} - m_Max: {x: 1.5707964, y: 1.7453293, z: 1.7453293} - m_Length: 0.21410698 - m_Type: 1 - - m_PreQ: {x: 0.54128516, y: 0.45499057, z: 0.45498413, w: -0.5412797} - m_PostQ: {x: 0.70710653, y: 0.00065649813, z: 0.0006480465, w: -0.7071065} - m_Sgn: {x: -1, y: 1, z: 1} - m_Limit: - m_Min: {x: -1.5707964, y: 0, z: -1.3962634} - m_Max: {x: 1.5707964, y: 0, z: 1.3962634} - m_Length: 0.19947194 - m_Type: 1 - - m_PreQ: {x: 0.0000000055128093, y: -0.00092245237, z: 0.0000059762515, - w: 0.99999964} - m_PostQ: {x: 0.0000000055128093, y: -0.00092245237, z: 0.0000059762515, - w: 0.99999964} - m_Sgn: {x: 1, y: 1, z: 1} - m_Limit: - m_Min: {x: 0, y: -0.6981317, z: -1.3962634} - m_Max: {x: 0, y: 0.6981317, z: 1.3962634} - m_Length: 0.049867984 - m_Type: 1 - - m_PreQ: {x: -0.0029315962, y: 0.06662614, z: 0.286493, w: -0.9557585} - m_PostQ: {x: -0, y: 0.010232162, z: -0, w: 0.99994767} - m_Sgn: {x: 1, y: -1, z: 1} - m_Limit: - m_Min: {x: 0, y: -0.34906584, z: -0.87266463} - m_Max: {x: 0, y: 0.34906584, z: 0.87266463} - m_Length: 0.03091172 - m_Type: 1 - - m_PreQ: {x: -0.0066514756, y: -0.019170221, z: 0.32773086, w: -0.9445533} - m_PostQ: {x: 0.00030891653, y: 0.020289013, z: -0.015220904, w: 0.99967825} - m_Sgn: {x: 1, y: 1, z: 1} - m_Limit: - m_Min: {x: 0, y: 0, z: -0.7853982} - m_Max: {x: 0, y: 0, z: 0.7853982} - m_Length: 0.019033842 - m_Type: 1 - - m_PreQ: {x: -0.0066514765, y: -0.019170223, z: 0.3277309, w: -0.9445534} - m_PostQ: {x: 0.00030891655, y: 0.020289013, z: -0.015220906, w: 0.9996782} - m_Sgn: {x: 1, y: 1, z: 1} - m_Limit: - m_Min: {x: 0, y: 0, z: -0.7853982} - m_Max: {x: 0, y: 0, z: 0.7853982} - m_Length: 0.0107065365 - m_Type: 1 - - m_PreQ: {x: 0.0000000730676, y: -0.07640189, z: 0.28650802, w: -0.9550267} - m_PostQ: {x: 0, y: -0.00000025502814, z: -0, w: 1} - m_Sgn: {x: 1, y: 1, z: 1} - m_Limit: - m_Min: {x: 0, y: -0.34906584, z: -0.87266463} - m_Max: {x: 0, y: 0.34906584, z: 0.87266463} - m_Length: 0.02921474 - m_Type: 1 - - m_PreQ: {x: -0.00000020799976, y: -0.00000063030984, z: 0.31337413, - w: -0.94962984} - m_PostQ: {x: -2.3496229e-12, y: 0.00000066374264, z: 0.0000035399607, - w: 1} - m_Sgn: {x: 1, y: 1, z: 1} - m_Limit: - m_Min: {x: 0, y: 0, z: -0.7853982} - m_Max: {x: 0, y: 0, z: 0.7853982} - m_Length: 0.016837656 - m_Type: 1 - - m_PreQ: {x: -0.00000020799976, y: -0.00000063030984, z: 0.31337413, - w: -0.94962984} - m_PostQ: {x: -2.3496229e-12, y: 0.00000066374264, z: 0.0000035399607, - w: 1} - m_Sgn: {x: 1, y: 1, z: 1} - m_Limit: - m_Min: {x: 0, y: 0, z: -0.7853982} - m_Max: {x: 0, y: 0, z: 0.7853982} - m_Length: 0.009471182 - m_Type: 1 - - m_PreQ: {x: -0.00000003520898, y: 0.03828507, z: 0.2871389, w: -0.95712364} - m_PostQ: {x: -1.8729965e-13, y: -0.00000010819532, z: -0.0000017311252, - w: 1} - m_Sgn: {x: 1, y: -1, z: 1} - m_Limit: - m_Min: {x: 0, y: -0.1308997, z: -0.87266463} - m_Max: {x: 0, y: 0.1308997, z: 0.87266463} - m_Length: 0.03443116 - m_Type: 1 - - m_PreQ: {x: -0.00000005495937, y: -0.0000001665451, z: 0.31337482, w: -0.9496296} - m_PostQ: {x: -4.9212484e-13, y: 0.00000017537903, z: 0.0000028060645, - w: 1} - m_Sgn: {x: 1, y: 1, z: 1} - m_Limit: - m_Min: {x: 0, y: 0, z: -0.7853982} - m_Max: {x: 0, y: 0, z: 0.7853982} - m_Length: 0.021241367 - m_Type: 1 - - m_PreQ: {x: -0.00000005495937, y: -0.0000001665451, z: 0.31337482, w: -0.9496296} - m_PostQ: {x: -4.9212484e-13, y: 0.00000017537903, z: 0.0000028060645, - w: 1} - m_Sgn: {x: 1, y: 1, z: 1} - m_Limit: - m_Min: {x: 0, y: 0, z: -0.7853982} - m_Max: {x: 0, y: 0, z: 0.7853982} - m_Length: 0.011948269 - m_Type: 1 - - m_PreQ: {x: -0.00000006698185, y: -0.03828519, z: 0.28713724, w: -0.9571241} - m_PostQ: {x: -0, y: 0.00000023327468, z: -0, w: 1} - m_Sgn: {x: 1, y: 1, z: 1} - m_Limit: - m_Min: {x: 0, y: -0.1308997, z: -0.87266463} - m_Max: {x: 0, y: 0.1308997, z: 0.87266463} - m_Length: 0.03193909 - m_Type: 1 - - m_PreQ: {x: -0, y: -0, z: 0.3133775, w: -0.9496287} - m_PostQ: {x: -0, y: -0, z: -0, w: 1} - m_Sgn: {x: 1, y: 1, z: 1} - m_Limit: - m_Min: {x: 0, y: 0, z: -0.7853982} - m_Max: {x: 0, y: 0, z: 0.7853982} - m_Length: 0.01843214 - m_Type: 1 - - m_PreQ: {x: -0, y: -0, z: 0.3133775, w: -0.9496287} - m_PostQ: {x: -0, y: -0, z: -0, w: 1} - m_Sgn: {x: 1, y: 1, z: 1} - m_Limit: - m_Min: {x: 0, y: 0, z: -0.7853982} - m_Max: {x: 0, y: 0, z: 0.7853982} - m_Length: 0.010368079 - m_Type: 1 - - m_PreQ: {x: 0.64043754, y: 0.23622905, z: 0.42690068, w: -0.5931203} - m_PostQ: {x: -0.6541293, y: -0.23844662, z: -0.26854223, w: 0.66569006} - m_Sgn: {x: 1, y: -1, z: -1} - m_Limit: - m_Min: {x: 0, y: -0.43633232, z: -0.34906584} - m_Max: {x: 0, y: 0.43633232, z: 0.34906584} - m_Length: 0.04429227 - m_Type: 1 - - m_PreQ: {x: 0.69753844, y: 0.091492675, z: 0.11593179, w: -0.70116264} - m_PostQ: {x: -0.6612566, y: -0.22722527, z: -0.250479, w: 0.6696034} - m_Sgn: {x: 1, y: 1, z: -1} - m_Limit: - m_Min: {x: 0, y: 0, z: -0.6981317} - m_Max: {x: 0, y: 0, z: 0.61086524} - m_Length: 0.027182685 - m_Type: 1 - - m_PreQ: {x: 0.69753844, y: 0.091492675, z: 0.11593179, w: -0.70116264} - m_PostQ: {x: -0.6612566, y: -0.22722527, z: -0.250479, w: 0.6696034} - m_Sgn: {x: 1, y: 1, z: -1} - m_Limit: - m_Min: {x: 0, y: 0, z: -0.6981317} - m_Max: {x: 0, y: 0, z: 0.61086524} - m_Length: 0.01529026 - m_Type: 1 - - m_PreQ: {x: -0.60753185, y: 0.36180818, z: -0.60753185, w: 0.36180818} - m_PostQ: {x: -0.49316382, y: 0.506744, z: -0.4931638, w: 0.506744} - m_Sgn: {x: 1, y: 1, z: 1} - m_Limit: - m_Min: {x: -1.0471976, y: -1.0471976, z: -1.5707964} - m_Max: {x: 1.0471976, y: 1.0471976, z: 0.87266463} - m_Length: 0.3757874 - m_Type: 1 - - m_PreQ: {x: -0.042189814, y: 0.7058472, z: -0.04218977, w: 0.70584714} - m_PostQ: {x: -0.48599896, y: 0.5136196, z: -0.48599896, w: 0.51361954} - m_Sgn: {x: 1, y: 1, z: -1} - m_Limit: - m_Min: {x: -1.5707964, y: 0, z: -1.3962634} - m_Max: {x: 1.5707964, y: 0, z: 1.3962634} - m_Length: 0.4257563 - m_Type: 1 - - m_PreQ: {x: -0.5, y: 0.5, z: -0.5, w: 0.5} - m_PostQ: {x: -0.5, y: 0.5, z: -0.5, w: 0.5} - m_Sgn: {x: 1, y: 1, z: 1} - m_Limit: - m_Min: {x: 0, y: -0.5235988, z: -0.87266463} - m_Max: {x: 0, y: 0.5235988, z: 0.87266463} - m_Length: 0.09702313 - m_Type: 1 - - m_PreQ: {x: 0.7071068, y: -0, z: 0.7071068, w: 0} - m_PostQ: {x: 0.7071068, y: -0, z: 0.7071068, w: 0} - m_Sgn: {x: 1, y: 1, z: 1} - m_Limit: - m_Min: {x: 0, y: 0, z: -0.87266463} - m_Max: {x: 0, y: 0, z: 0.87266463} - m_Length: 0.028812509 - m_Type: 1 - - m_PreQ: {x: -0.60753185, y: 0.36180818, z: -0.60753185, w: 0.36180818} - m_PostQ: {x: -0.4931638, y: 0.506744, z: -0.49316382, w: 0.506744} - m_Sgn: {x: -1, y: -1, z: 1} - m_Limit: - m_Min: {x: -1.0471976, y: -1.0471976, z: -1.5707964} - m_Max: {x: 1.0471976, y: 1.0471976, z: 0.87266463} - m_Length: 0.3757874 - m_Type: 1 - - m_PreQ: {x: -0.042189814, y: 0.7058472, z: -0.04218977, w: 0.70584714} - m_PostQ: {x: -0.48599896, y: 0.5136196, z: -0.48599896, w: 0.51361954} - m_Sgn: {x: -1, y: 1, z: -1} - m_Limit: - m_Min: {x: -1.5707964, y: 0, z: -1.3962634} - m_Max: {x: 1.5707964, y: 0, z: 1.3962634} - m_Length: 0.4257563 - m_Type: 1 - - m_PreQ: {x: -0.5, y: 0.5, z: -0.5, w: 0.5} - m_PostQ: {x: -0.5, y: 0.5, z: -0.5, w: 0.5} - m_Sgn: {x: 1, y: -1, z: 1} - m_Limit: - m_Min: {x: 0, y: -0.5235988, z: -0.87266463} - m_Max: {x: 0, y: 0.5235988, z: 0.87266463} - m_Length: 0.09702313 - m_Type: 1 - - m_PreQ: {x: 0.7071068, y: -0, z: 0.7071068, w: 0} - m_PostQ: {x: 0.7071068, y: -0, z: 0.7071068, w: 0} - m_Sgn: {x: 1, y: 1, z: 1} - m_Limit: - m_Min: {x: 0, y: 0, z: -0.87266463} - m_Max: {x: 0, y: 0, z: 0.87266463} - m_Length: 0.028812509 - m_Type: 1 - m_SkeletonPose: - data: - m_X: - - t: {x: 0, y: 0, z: 0} - q: {x: 0, y: 0, z: 0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: 0.93650174, z: 0.0036878982} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 5.948816e-32, y: 0.050968885, z: 0.012252513} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -2.0149595e-17, y: 0.110621214, z: 0.0029853042} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 2.9083892e-17, y: 0.10536587, z: -0.014336677} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 9.127545e-17, y: 0.1294887, z: -0.03754457} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.000000005196695, y: 0.075594306, z: 0.009783598} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.014784996, y: 0.06125927, z: 0.022221765} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.014784982, y: 0.06125927, z: 0.022221772} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.020808386, y: 0.1034497, z: -0.02933467} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.06679835, y: -0.0100136995, z: 0.000000014901161} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.21410698, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.1994716, y: 0.0000023841858, z: 0.00036800653} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.060842276, y: 0.007224083, z: 0.019240757} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.030905247, y: 0, z: -0.0006325543} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.019009352, y: -0.0005789995, z: -0.0007722862} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.056770742, y: 0.007224083, z: -0.028558228} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.02921474, y: 0, z: 0.000000014901161} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.016837656, y: 0.00000011920929, z: -0.000000022351742} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.06167108, y: 0.007224202, z: 0.0020036474} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.03443116, y: -0.00000011920929, z: 0.000000007450581} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.021241367, y: 0.00000011920929, z: -0.000000007450581} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.060968697, y: 0.007224083, z: -0.013300542} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.03193909, y: 0, z: -0.000000014901161} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.01843214, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.0032740831, y: -0.0097965, z: 0.01562553} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.032867372, y: -0.0020189285, z: 0.029622039} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.02096486, y: -0.0009496212, z: 0.01727632} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.020808386, y: 0.1034497, z: -0.02933467} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.06679835, y: -0.0100136995, z: 0.000000014901161} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.21410698, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.1994716, y: 0.0000023841858, z: 0.00036800653} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.060842276, y: 0.007224083, z: 0.019240757} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.030905247, y: 0, z: -0.0006325543} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.019009352, y: -0.0005789995, z: -0.0007722862} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.056770742, y: 0.007224083, z: -0.028558228} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.02921474, y: 0, z: 0.000000014901161} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.016837656, y: 0.00000011920929, z: -0.000000022351742} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.06167108, y: 0.007224202, z: 0.0020036474} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.03443116, y: -0.00000011920929, z: 0.000000007450581} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.021241367, y: 0.00000011920929, z: -0.000000007450581} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.060968697, y: 0.007224083, z: -0.013300542} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.03193909, y: 0, z: -0.000000014901161} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.01843214, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0032740831, y: -0.0097965, z: 0.01562553} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.032867372, y: -0.0020189285, z: 0.029622039} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.02096486, y: -0.0009496212, z: 0.01727632} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.07168864, y: -0.03872311, z: -0.0035527977} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.000000014901161, y: -0.3756488, z: -0.010205619} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: -0.4251067, z: -0.023510326} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: -0.0613662, z: 0.09755388} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.07168864, y: -0.03872311, z: -0.0035527977} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.000000014901161, y: -0.3756488, z: -0.010205619} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: -0.4251067, z: -0.023510326} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: -0.0613662, z: 0.09755388} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - m_LeftHand: - data: - m_HandBoneIndex: 190000001a0000001b0000000d0000000e0000000f000000130000001400000015000000160000001700000018000000100000001100000012000000 - m_RightHand: - data: - m_HandBoneIndex: 2c0000002d0000002e000000200000002100000022000000260000002700000028000000290000002a0000002b000000230000002400000025000000 - m_HumanBoneIndex: 010000002f00000033000000300000003400000031000000350000000200000003000000040000000500000006000000090000001c0000000a0000001d0000000b0000001e0000000c0000001f00000032000000360000000700000008000000ffffffff - m_HumanBoneMass: - - 0.14545456 - - 0.12121213 - - 0.12121213 - - 0.048484854 - - 0.048484854 - - 0.009696971 - - 0.009696971 - - 0.030303033 - - 0.14545456 - - 0.14545456 - - 0.012121214 - - 0.048484854 - - 0.006060607 - - 0.006060607 - - 0.024242427 - - 0.024242427 - - 0.01818182 - - 0.01818182 - - 0.006060607 - - 0.006060607 - - 0.0024242427 - - 0.0024242427 - - 0 - - 0 - - 0 - m_Scale: 0.95183253 - m_ArmTwist: 0.5 - m_ForeArmTwist: 0.5 - m_UpperLegTwist: 0.5 - m_LegTwist: 0.5 - m_ArmStretch: 0.05 - m_LegStretch: 0.05 - m_FeetSpacing: 0 - m_HasLeftHand: 1 - m_HasRightHand: 1 - m_HasTDoF: 0 - m_HumanSkeletonIndexArray: 0400000005000000060000000700000008000000090000000a0000000b0000000c00000062000000630000006400000065000000660000006700000068000000690000006a0000006b0000006c0000006d0000006e0000006f00000070000000710000007200000073000000740000007b0000007c0000007d0000007e0000007f000000800000008100000082000000830000008400000085000000860000008700000088000000890000008a0000008b0000008c0000008d0000009a0000009b0000009c0000009d000000b1000000b2000000b3000000b4000000 - m_HumanSkeletonReverseIndexArray: ffffffffffffffffffffffffffffffff000000000100000002000000030000000400000005000000060000000700000008000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff090000000a0000000b0000000c0000000d0000000e0000000f000000100000001100000012000000130000001400000015000000160000001700000018000000190000001a0000001b000000ffffffffffffffffffffffffffffffffffffffffffffffff1c0000001d0000001e0000001f000000200000002100000022000000230000002400000025000000260000002700000028000000290000002a0000002b0000002c0000002d0000002e000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2f000000300000003100000032000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff33000000340000003500000036000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - m_RootMotionBoneIndex: -1 - m_RootMotionBoneX: - t: {x: 0, y: 0, z: 0} - q: {x: 0, y: 0, z: 0, w: 1} - s: {x: 1, y: 1, z: 1} - m_RootMotionSkeleton: - data: - m_Node: [] - m_ID: - m_AxesArray: [] - m_RootMotionSkeletonPose: - data: - m_X: [] - m_RootMotionSkeletonIndexArray: - m_TOS: - 285007101: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_15 - 2128665898: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_04 - 1906816105: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_01/J_Sec_Hair2_01/J_Sec_Hair3_01/J_Sec_Hair4_01/J_Sec_Hair5_01/J_Sec_Hair6_01 - 491299123: Root/J_Bip_C_Hips/J_Bip_R_UpperLeg/J_Sec_R_SkirtBack0_01 - 524182156: Root/J_Bip_C_Hips/J_Bip_R_UpperLeg/J_Sec_R_SkirtBack0_01/J_Sec_R_SkirtBack1_01 - 3980312633: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_16/J_Sec_Hair2_16/J_Sec_Hair3_16 - 1744563307: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_14 - 1838702072: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_L_Clavicle/J_Bip_L_UpperArm/J_Bip_L_LowerArm/J_Bip_L_Hand/J_Bip_L_Index1/J_Bip_L_Index2 - 1685203202: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_13/J_Sec_Hair2_13/J_Sec_Hair3_13/J_Sec_Hair3_13_end - 3287185488: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_03/J_Sec_Hair2_03/J_Sec_Hair3_03/J_Sec_Hair4_03/J_Sec_Hair5_03 - 2070622203: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_18/J_Sec_Hair2_18/J_Sec_Hair3_18 - 2466280194: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_R_Clavicle/J_Bip_R_UpperArm/J_Bip_R_LowerArm/J_Bip_R_Hand/J_Bip_R_Little1/J_Bip_R_Little2 - 3866818490: Root/J_Bip_C_Hips/J_Bip_R_UpperLeg/J_Bip_R_LowerLeg - 2933737937: Root/J_Bip_C_Hips/J_Bip_L_UpperLeg/J_Sec_L_SkirtBack0_01/J_Sec_L_SkirtBack1_01 - 1884987545: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_R_Clavicle/J_Bip_R_UpperArm/J_Bip_R_LowerArm/J_Bip_R_Hand/J_Bip_R_Ring1/J_Bip_R_Ring2 - 1946302910: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_R_Clavicle/J_Bip_R_UpperArm/J_Bip_R_LowerArm/J_Bip_R_Hand/J_Bip_R_Ring1 - 458454037: secondary - 3037872453: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_05/J_Sec_Hair2_05 - 2078246882: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_R_Clavicle/J_Bip_R_UpperArm/J_Bip_R_LowerArm/J_Bip_R_Hand/J_Bip_R_Index1/J_Bip_R_Index2 - 969055499: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_R_Clavicle/J_Bip_R_UpperArm/J_Bip_R_LowerArm/J_Bip_R_Hand/J_Bip_R_Index1 - 3584721369: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_09/J_Sec_Hair2_09/J_Sec_Hair3_09/J_Sec_Hair3_09_end - 903867318: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_R_Clavicle/J_Bip_R_UpperArm/J_Bip_R_LowerArm/J_Bip_R_Hand/J_Bip_R_Middle1/J_Bip_R_Middle2 - 266374548: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_03/J_Sec_Hair2_03 - 3897213606: Root/J_Bip_C_Hips/J_Bip_L_UpperLeg/J_Sec_L_SkirtFront_01/J_Sec_L_SkirtFront_end_01/J_Sec_L_SkirtFront_end_01_end - 290824833: Root/J_Bip_C_Hips/J_Bip_R_UpperLeg/J_Sec_R_SkirtFront0_01/J_Sec_R_SkirtFront1_01 - 2038769636: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_L_Clavicle/J_Bip_L_UpperArm/J_Bip_L_LowerArm/J_Bip_L_Hand - 2010789325: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_12/J_Sec_Hair2_12/J_Sec_Hair3_12/J_Sec_Hair3_12_end - 590537793: Root/J_Bip_C_Hips/J_Sec_L_SkirtSide0_01 - 1472109707: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_05/J_Sec_Hair2_05/J_Sec_Hair3_05/J_Sec_Hair4_05 - 1565223639: Root/J_Bip_C_Hips/J_Bip_R_UpperLeg/J_Sec_R_SkirtBack0_01/J_Sec_R_SkirtBack1_01/J_Sec_R_SkirtBack2_01/J_Sec_R_SkirtBack2_end_01/J_Sec_R_SkirtBack2_end_01_end - 1032707778: Root/J_Bip_C_Hips/J_Bip_R_UpperLeg/J_Sec_R_SkirtBack0_01/J_Sec_R_SkirtBack1_01/J_Sec_R_SkirtBack2_01 - 1969490009: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_L_Clavicle/J_Bip_L_UpperArm/J_Bip_L_LowerArm/J_Sec_L_LowerSleeve_01/J_Sec_L_LowerSleeve_end_01 - 2140979062: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_L_Clavicle - 3434087405: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_L_Clavicle/J_Bip_L_UpperArm/J_Bip_L_LowerArm/J_Bip_L_Hand/J_Bip_L_Little1/J_Bip_L_Little2/J_Bip_L_Little3 - 5349783: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_09 - 2999517770: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_R_Clavicle/J_Bip_R_UpperArm/J_Bip_R_LowerArm/J_Bip_R_Hand/J_Sec_R_TipSleeve_01 - 850538956: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_06/J_Sec_Hair2_06/J_Sec_Hair3_06/J_Sec_Hair3_06_end - 3821133455: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Sec_R_Bust1 - 1436997367: Root/J_Bip_C_Hips/J_Bip_L_UpperLeg/J_Sec_L_SkirtFront0_01 - 1126305948: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_11/J_Sec_Hair2_11/J_Sec_Hair3_11/J_Sec_Hair3_11_end - 3086739283: Root/J_Bip_C_Hips/J_Bip_R_UpperLeg/J_Sec_R_SkirtFront0_01/J_Sec_R_SkirtFront1_01/J_Sec_R_SkirtFront2_01/J_Sec_R_SkirtFront2_end_01 - 3172097437: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_03/J_Sec_Hair2_03/J_Sec_Hair3_03 - 877093443: Root/J_Bip_C_Hips/J_Bip_L_UpperLeg/J_Sec_L_SkirtFront0_01/J_Sec_L_SkirtFront1_01/J_Sec_L_SkirtFront2_01/J_Sec_L_SkirtFront2_end_01/J_Sec_L_SkirtFront2_end_01_end - 7719076: Root/J_Bip_C_Hips/J_Sec_L_SkirtSide0_01/J_Sec_L_SkirtSide1_01/J_Sec_L_SkirtSide2_01 - 3654931018: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_L_Clavicle/J_Bip_L_UpperArm/J_Bip_L_LowerArm/J_Bip_L_Hand/J_Bip_L_Index1 - 254671235: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_05/J_Sec_Hair2_05/J_Sec_Hair3_05/J_Sec_Hair4_05/J_Sec_Hair4_05_end - 1107427080: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_17/J_Sec_Hair2_17 - 1467314277: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_R_Clavicle/J_Bip_R_UpperArm/J_Bip_R_LowerArm/J_Bip_R_Hand/J_Bip_R_Middle1/J_Bip_R_Middle2/J_Bip_R_Middle3 - 2992426631: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_L_Clavicle/J_Bip_L_UpperArm/J_Bip_L_LowerArm/J_Bip_L_Hand/J_Sec_L_TipSleeve_01/J_Sec_L_TipSleeve_end_01/J_Sec_L_TipSleeve_end_01_end - 3530924597: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_13/J_Sec_Hair2_13/J_Sec_Hair3_13 - 424317142: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_19 - 3131336372: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_L_Clavicle/J_Bip_L_UpperArm/J_Bip_L_LowerArm/J_Bip_L_Hand/J_Bip_L_Ring1 - 4187000473: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_R_Clavicle/J_Bip_R_UpperArm/J_Bip_R_LowerArm/J_Bip_R_Hand/J_Sec_R_TipSleeve_01/J_Sec_R_TipSleeve_end_01/J_Sec_R_TipSleeve_end_01_end - 189468347: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_L_Clavicle/J_Bip_L_UpperArm/J_Bip_L_LowerArm - 924417340: Root/J_Bip_C_Hips/J_Sec_L_SkirtSide0_01/J_Sec_L_SkirtSide1_01/J_Sec_L_SkirtSide2_01/J_Sec_L_SkirtSide2_end_01 - 4176688089: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_11/J_Sec_Hair2_11 - 3115188551: Root/J_Bip_C_Hips/J_Bip_L_UpperLeg/J_Sec_L_SkirtBack0_01/J_Sec_L_SkirtBack1_01/J_Sec_L_SkirtBack2_01/J_Sec_L_SkirtBack2_end_01 - 1427115262: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head - 3599707283: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_02/J_Sec_Hair2_02 - 956660241: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_L_Clavicle/J_Bip_L_UpperArm/J_Bip_L_LowerArm/J_Sec_L_LowerSleeve_01/J_Sec_L_LowerSleeve_end_01/J_Sec_L_LowerSleeve_end_01_end - 2151224464: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_R_Clavicle/J_Bip_R_UpperArm/J_Bip_R_LowerArm/J_Bip_R_Hand/J_Bip_R_Middle1 - 4289881849: Root/J_Bip_C_Hips/J_Bip_L_UpperLeg/J_Bip_L_LowerLeg - 1716439515: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_01/J_Sec_Hair2_01 - 2603278172: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_01/J_Sec_Hair2_01/J_Sec_Hair3_01/J_Sec_Hair4_01 - 3890842768: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_07 - 4063099956: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_L_Clavicle/J_Bip_L_UpperArm/J_Bip_L_LowerArm/J_Bip_L_Hand/J_Bip_L_Index1/J_Bip_L_Index2/J_Bip_L_Index3 - 282623383: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_03/J_Sec_Hair2_03/J_Sec_Hair3_03/J_Sec_Hair4_03 - 1101236980: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_R_Clavicle/J_Bip_R_UpperArm/J_Bip_R_LowerArm/J_Bip_R_Hand/J_Bip_R_Thumb1/J_Bip_R_Thumb2/J_Bip_R_Thumb3 - 1019596327: Hair - 3379808368: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_01/J_Sec_Hair2_01/J_Sec_Hair3_01 - 1151271504: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_03/J_Sec_Hair2_03/J_Sec_Hair3_03/J_Sec_Hair4_03/J_Sec_Hair5_03/J_Sec_Hair5_03_end - 1604495134: Root/J_Bip_C_Hips/J_Bip_L_UpperLeg/J_Sec_L_SkirtBack0_01/J_Sec_L_SkirtBack1_01/J_Sec_L_SkirtBack2_01 - 3511946796: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_R_Clavicle/J_Bip_R_UpperArm - 3945530412: Root/J_Bip_C_Hips/J_Bip_L_UpperLeg/J_Sec_L_SkirtSide_01/J_Sec_L_SkirtSide_end_01/J_Sec_L_SkirtSide_end_01_end - 3766765705: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_03 - 2811997713: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_L_Clavicle/J_Bip_L_UpperArm/J_Bip_L_LowerArm/J_Bip_L_Hand/J_Bip_L_Middle1/J_Bip_L_Middle2/J_Bip_L_Middle3 - 3703309578: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_07/J_Sec_Hair2_07 - 2002161921: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_08 - 2593222804: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_L_Clavicle/J_Bip_L_UpperArm/J_Bip_L_LowerArm/J_Bip_L_Hand/J_Bip_L_Thumb1/J_Bip_L_Thumb2 - 3789305879: Root/J_Bip_C_Hips/J_Bip_R_UpperLeg/J_Sec_R_SkirtFront_01/J_Sec_R_SkirtFront_end_01 - 1703018608: Root/J_Bip_C_Hips/J_Bip_L_UpperLeg/J_Sec_L_SkirtSide_01/J_Sec_L_SkirtSide_end_01 - 3066451557: Root - 3064108098: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_R_Clavicle/J_Bip_R_UpperArm/J_Bip_R_LowerArm/J_Bip_R_Hand/J_Bip_R_Ring1/J_Bip_R_Ring2/J_Bip_R_Ring3 - 381148985: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_R_Clavicle/J_Bip_R_UpperArm/J_Bip_R_LowerArm/J_Bip_R_Hand/J_Bip_R_Little1 - 336384083: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_08/J_Sec_Hair2_08/J_Sec_Hair3_08 - 1351224403: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_10/J_Sec_Hair2_10/J_Sec_Hair3_10/J_Sec_Hair3_10_end - 2815444144: Root/J_Bip_C_Hips/J_Bip_R_UpperLeg/J_Sec_R_SkirtSide_01/J_Sec_R_SkirtSide_end_01 - 174576974: Root/J_Bip_C_Hips/J_Bip_R_UpperLeg/J_Sec_R_SkirtBack_01/J_Sec_R_SkirtBack_end_01/J_Sec_R_SkirtBack_end_01_end - 395385060: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_11 - 985907531: Root/J_Bip_C_Hips/J_Bip_L_UpperLeg/J_Sec_L_SkirtBack_01/J_Sec_L_SkirtBack_end_01/J_Sec_L_SkirtBack_end_01_end - 3157118962: Root/J_Bip_C_Hips/J_Bip_L_UpperLeg/J_Sec_L_SkirtFront0_01/J_Sec_L_SkirtFront1_01/J_Sec_L_SkirtFront2_01/J_Sec_L_SkirtFront2_end_01 - 3706314754: Root/J_Bip_C_Hips/J_Sec_R_SkirtSide0_01/J_Sec_R_SkirtSide1_01/J_Sec_R_SkirtSide2_01/J_Sec_R_SkirtSide2_end_01 - 3209342262: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_L_Clavicle/J_Bip_L_UpperArm/J_Bip_L_LowerArm/J_Bip_L_Hand/J_Bip_L_Thumb1 - 1259307586: Root/J_Bip_C_Hips/J_Bip_L_UpperLeg/J_Sec_L_SkirtSide_01 - 2073732236: Body - 2362878606: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_R_Clavicle/J_Bip_R_UpperArm/J_Bip_R_LowerArm/J_Bip_R_Hand/J_Bip_R_Thumb1/J_Bip_R_Thumb2 - 2190742565: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_L_Clavicle/J_Bip_L_UpperArm/J_Bip_L_LowerArm/J_Bip_L_Hand/J_Sec_L_TipSleeve_01 - 302943063: Root/J_Bip_C_Hips/J_Bip_R_UpperLeg - 4277321169: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_17 - 2186887057: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_06/J_Sec_Hair2_06/J_Sec_Hair3_06 - 1684056571: Root/J_Bip_C_Hips/J_Bip_R_UpperLeg/J_Sec_R_SkirtFront_01 - 2164424409: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_L_Clavicle/J_Bip_L_UpperArm/J_Bip_L_LowerArm/J_Bip_L_Hand/J_Bip_L_Middle1 - 1310819377: Root/J_Bip_C_Hips/J_Sec_R_SkirtSide0_01/J_Sec_R_SkirtSide1_01/J_Sec_R_SkirtSide2_01/J_Sec_R_SkirtSide2_end_01/J_Sec_R_SkirtSide2_end_01_end - 1322720258: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_15/J_Sec_Hair2_15/J_Sec_Hair3_15 - 406077639: Root/J_Bip_C_Hips/J_Sec_L_SkirtSide0_01/J_Sec_L_SkirtSide1_01/J_Sec_L_SkirtSide2_01/J_Sec_L_SkirtSide2_end_01/J_Sec_L_SkirtSide2_end_01_end - 3731027684: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_19/J_Sec_Hair2_19/J_Sec_Hair3_19/J_Sec_Hair3_19_end - 2907216216: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Sec_R_Bust1/J_Sec_R_Bust2 - 2438821782: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_13/J_Sec_Hair2_13 - 2067268032: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_R_Clavicle/J_Bip_R_UpperArm/J_Bip_R_LowerArm/J_Bip_R_Hand/J_Sec_R_TipSleeve_01/J_Sec_R_TipSleeve_end_01 - 565240746: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_05/J_Sec_Hair2_05/J_Sec_Hair3_05 - 226648992: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_15/J_Sec_Hair2_15/J_Sec_Hair3_15/J_Sec_Hair3_15_end - 2624567210: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_04/J_Sec_Hair2_04/J_Sec_Hair3_04/J_Sec_Hair4_04/J_Sec_Hair4_04_end - 188315585: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_R_Clavicle/J_Bip_R_UpperArm/J_Bip_R_LowerArm/J_Sec_R_LowerSleeve_01/J_Sec_R_LowerSleeve_end_01 - 2541975583: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_02 - 2412648420: Root/J_Bip_C_Hips/J_Bip_L_UpperLeg/J_Bip_L_LowerLeg/J_Bip_L_Foot - 959107078: Root/J_Bip_C_Hips/J_Bip_L_UpperLeg/J_Sec_L_SkirtBack0_01/J_Sec_L_SkirtBack1_01/J_Sec_L_SkirtBack2_01/J_Sec_L_SkirtBack2_end_01/J_Sec_L_SkirtBack2_end_01_end - 2235245732: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_19/J_Sec_Hair2_19 - 873086070: Root/J_Bip_C_Hips/J_Bip_L_UpperLeg/J_Sec_L_SkirtBack_01 - 1211291281: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_12/J_Sec_Hair2_12 - 2244922043: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_R_Clavicle/J_Bip_R_UpperArm/J_Bip_R_LowerArm/J_Sec_R_LowerSleeve_01/J_Sec_R_LowerSleeve_end_01/J_Sec_R_LowerSleeve_end_01_end - 3422213228: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_02/J_Sec_Hair2_02/J_Sec_Hair3_02/J_Sec_Hair4_02/J_Sec_Hair5_02/J_Sec_Hair5_02_end - 2965458551: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_R_Clavicle/J_Bip_R_UpperArm/J_Bip_R_LowerArm/J_Bip_R_Hand - 3558881564: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Sec_L_Bust1 - 3097079762: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_02/J_Sec_Hair2_02/J_Sec_Hair3_02/J_Sec_Hair4_02 - 2499231161: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Sec_L_Bust1/J_Sec_L_Bust2/J_Sec_L_Bust2_end - 4072675904: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_14/J_Sec_Hair2_14 - 1692557707: Root/J_Bip_C_Hips/J_Bip_R_UpperLeg/J_Sec_R_SkirtFront0_01/J_Sec_R_SkirtFront1_01/J_Sec_R_SkirtFront2_01/J_Sec_R_SkirtFront2_end_01/J_Sec_R_SkirtFront2_end_01_end - 3270082465: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_08/J_Sec_Hair2_08 - 2054382403: Root/J_Bip_C_Hips/J_Bip_L_UpperLeg/J_Sec_L_SkirtFront_01 - 563909342: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_10/J_Sec_Hair2_10 - 1190858285: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_R_Clavicle - 1174341030: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_01/J_Sec_Hair2_01/J_Sec_Hair3_01/J_Sec_Hair4_01/J_Sec_Hair5_01/J_Sec_Hair6_01/J_Sec_Hair6_01_end - 2136880292: Root/J_Bip_C_Hips - 461823654: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_09/J_Sec_Hair2_09 - 573333733: Root/J_Bip_C_Hips/J_Bip_L_UpperLeg/J_Sec_L_SkirtFront0_01/J_Sec_L_SkirtFront1_01 - 1820188738: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_04/J_Sec_Hair2_04 - 4130908796: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_04/J_Sec_Hair2_04/J_Sec_Hair3_04 - 2900583981: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_19/J_Sec_Hair2_19/J_Sec_Hair3_19 - 2770785369: Face - 3197178968: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_L_Clavicle/J_Bip_L_UpperArm/J_Bip_L_LowerArm/J_Bip_L_Hand/J_Bip_L_Middle1/J_Bip_L_Middle2 - 640871652: Root/J_Bip_C_Hips/J_Bip_R_UpperLeg/J_Sec_R_SkirtBack_01 - 3322060054: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_08/J_Sec_Hair2_08/J_Sec_Hair3_08/J_Sec_Hair3_08_end - 166194620: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_05 - 1850581056: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_18 - 3507665317: Root/J_Bip_C_Hips/J_Sec_R_SkirtSide0_01/J_Sec_R_SkirtSide1_01/J_Sec_R_SkirtSide2_01 - 0: - 2416115331: Root/J_Bip_C_Hips/J_Bip_R_UpperLeg/J_Sec_R_SkirtFront0_01 - 100527075: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_12/J_Sec_Hair2_12/J_Sec_Hair3_12 - 3011920101: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_01/J_Sec_Hair2_01/J_Sec_Hair3_01/J_Sec_Hair4_01/J_Sec_Hair5_01 - 317819110: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest - 1211440975: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_L_Clavicle/J_Bip_L_UpperArm/J_Bip_L_LowerArm/J_Bip_L_Hand/J_Bip_L_Ring1/J_Bip_L_Ring2/J_Bip_L_Ring3 - 395097456: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_L_Clavicle/J_Bip_L_UpperArm/J_Bip_L_LowerArm/J_Bip_L_Hand/J_Bip_L_Little1 - 1736610682: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_L_Clavicle/J_Bip_L_UpperArm/J_Bip_L_LowerArm/J_Sec_L_LowerSleeve_01 - 1496797904: Root/J_Bip_C_Hips/J_Bip_R_UpperLeg/J_Sec_R_SkirtSide_01 - 56322955: Root/J_Bip_C_Hips/J_Bip_L_UpperLeg/J_Sec_L_SkirtBack0_01 - 2180915214: Root/J_Bip_C_Hips/J_Bip_R_UpperLeg/J_Bip_R_LowerLeg/J_Bip_R_Foot - 1233944864: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_R_Clavicle/J_Bip_R_UpperArm/J_Bip_R_LowerArm/J_Sec_R_LowerSleeve_01 - 375580458: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_02/J_Sec_Hair2_02/J_Sec_Hair3_02/J_Sec_Hair4_02/J_Sec_Hair5_02 - 3452627499: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_18/J_Sec_Hair2_18/J_Sec_Hair3_18/J_Sec_Hair3_18_end - 3138913460: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Adj_L_FaceEye - 1620453490: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_10 - 1549043107: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_18/J_Sec_Hair2_18 - 1351590373: Root/J_Bip_C_Hips/J_Bip_R_UpperLeg/J_Sec_R_SkirtBack0_01/J_Sec_R_SkirtBack1_01/J_Sec_R_SkirtBack2_01/J_Sec_R_SkirtBack2_end_01 - 1439790663: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_07/J_Sec_Hair2_07/J_Sec_Hair3_07 - 3743063383: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Adj_R_FaceEye - 985041391: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_17/J_Sec_Hair2_17/J_Sec_Hair3_17 - 1012850073: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_R_Clavicle/J_Bip_R_UpperArm/J_Bip_R_LowerArm/J_Bip_R_Hand/J_Bip_R_Little1/J_Bip_R_Little2/J_Bip_R_Little3 - 1788482635: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_02/J_Sec_Hair2_02/J_Sec_Hair3_02 - 964314865: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_16/J_Sec_Hair2_16/J_Sec_Hair3_16/J_Sec_Hair3_16_end - 4003749906: Root/J_Bip_C_Hips/J_Bip_R_UpperLeg/J_Bip_R_LowerLeg/J_Bip_R_Foot/J_Bip_R_ToeBase - 3683127337: Root/J_Bip_C_Hips/J_Bip_R_UpperLeg/J_Sec_R_SkirtSide_01/J_Sec_R_SkirtSide_end_01/J_Sec_R_SkirtSide_end_01_end - 1584097983: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_L_Clavicle/J_Bip_L_UpperArm/J_Bip_L_LowerArm/J_Bip_L_Hand/J_Bip_L_Thumb1/J_Bip_L_Thumb2/J_Bip_L_Thumb3 - 42098839: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Sec_L_Bust1/J_Sec_L_Bust2 - 3044949467: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest - 889106634: Root/J_Bip_C_Hips/J_Bip_R_UpperLeg/J_Sec_R_SkirtFront_01/J_Sec_R_SkirtFront_end_01/J_Sec_R_SkirtFront_end_01_end - 3573454745: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_L_Clavicle/J_Bip_L_UpperArm/J_Bip_L_LowerArm/J_Bip_L_Hand/J_Sec_L_TipSleeve_01/J_Sec_L_TipSleeve_end_01 - 487207264: Root/J_Bip_C_Hips/J_Bip_L_UpperLeg/J_Sec_L_SkirtFront0_01/J_Sec_L_SkirtFront1_01/J_Sec_L_SkirtFront2_01 - 555363587: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_07/J_Sec_Hair2_07/J_Sec_Hair3_07/J_Sec_Hair3_07_end - 2573161940: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_14/J_Sec_Hair2_14/J_Sec_Hair3_14 - 563793185: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Sec_R_Bust1/J_Sec_R_Bust2/J_Sec_R_Bust2_end - 1599201911: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_R_Clavicle/J_Bip_R_UpperArm/J_Bip_R_LowerArm/J_Bip_R_Hand/J_Bip_R_Thumb1 - 2314571079: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_16 - 3280247173: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_09/J_Sec_Hair2_09/J_Sec_Hair3_09 - 728316428: Root/J_Bip_C_Hips/J_Bip_L_UpperLeg - 305941538: Root/J_Bip_C_Hips/J_Sec_L_SkirtSide0_01/J_Sec_L_SkirtSide1_01 - 4294921934: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_04/J_Sec_Hair2_04/J_Sec_Hair3_04/J_Sec_Hair4_04 - 3747768667: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_L_Clavicle/J_Bip_L_UpperArm/J_Bip_L_LowerArm/J_Bip_L_Hand/J_Bip_L_Ring1/J_Bip_L_Ring2 - 506101615: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_14/J_Sec_Hair2_14/J_Sec_Hair3_14/J_Sec_Hair3_14_end - 407801068: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_L_Clavicle/J_Bip_L_UpperArm/J_Bip_L_LowerArm/J_Bip_L_Hand/J_Bip_L_Little1/J_Bip_L_Little2 - 2874361606: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_R_Clavicle/J_Bip_R_UpperArm/J_Bip_R_LowerArm - 2045097404: Root/J_Bip_C_Hips/J_Bip_L_UpperLeg/J_Sec_L_SkirtBack_01/J_Sec_L_SkirtBack_end_01 - 630613340: Root/J_Bip_C_Hips/J_Bip_L_UpperLeg/J_Sec_L_SkirtFront_01/J_Sec_L_SkirtFront_end_01 - 2786342872: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_11/J_Sec_Hair2_11/J_Sec_Hair3_11 - 718428734: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_17/J_Sec_Hair2_17/J_Sec_Hair3_17/J_Sec_Hair3_17_end - 2317575035: Root/J_Bip_C_Hips/J_Sec_R_SkirtSide0_01 - 732937031: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_15/J_Sec_Hair2_15 - 490718561: Root/J_Bip_C_Hips/J_Bip_L_UpperLeg/J_Bip_L_LowerLeg/J_Bip_L_Foot/J_Bip_L_ToeBase - 4187978184: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_13 - 1777957277: Root/J_Bip_C_Hips/J_Bip_C_Spine - 1906081294: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_10/J_Sec_Hair2_10/J_Sec_Hair3_10 - 2607701519: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_16/J_Sec_Hair2_16 - 3365707631: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_L_Clavicle/J_Bip_L_UpperArm - 2431564806: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_06 - 2392344926: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_12 - 3991215231: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_R_Clavicle/J_Bip_R_UpperArm/J_Bip_R_LowerArm/J_Bip_R_Hand/J_Bip_R_Index1/J_Bip_R_Index2/J_Bip_R_Index3 - 243935653: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_01 - 677580999: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck - 97756173: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_06/J_Sec_Hair2_06 - 2958663727: Root/J_Bip_C_Hips/J_Bip_R_UpperLeg/J_Sec_R_SkirtFront0_01/J_Sec_R_SkirtFront1_01/J_Sec_R_SkirtFront2_01 - 3149394300: Root/J_Bip_C_Hips/J_Bip_R_UpperLeg/J_Sec_R_SkirtBack_01/J_Sec_R_SkirtBack_end_01 - 2977252379: Root/J_Bip_C_Hips/J_Sec_R_SkirtSide0_01/J_Sec_R_SkirtSide1_01 - m_HumanDescription: - serializedVersion: 3 - m_Human: - - m_BoneName: J_Bip_C_Hips - m_HumanName: Hips - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_L_UpperLeg - m_HumanName: LeftUpperLeg - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_R_UpperLeg - m_HumanName: RightUpperLeg - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_L_LowerLeg - m_HumanName: LeftLowerLeg - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_R_LowerLeg - m_HumanName: RightLowerLeg - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_L_Foot - m_HumanName: LeftFoot - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_R_Foot - m_HumanName: RightFoot - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_L_ToeBase - m_HumanName: LeftToes - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_R_ToeBase - m_HumanName: RightToes - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_C_Spine - m_HumanName: Spine - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_C_Chest - m_HumanName: Chest - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_C_UpperChest - m_HumanName: UpperChest - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_C_Neck - m_HumanName: Neck - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_C_Head - m_HumanName: Head - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Adj_L_FaceEye - m_HumanName: LeftEye - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Adj_R_FaceEye - m_HumanName: RightEye - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_L_Clavicle - m_HumanName: LeftShoulder - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_R_Clavicle - m_HumanName: RightShoulder - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_L_UpperArm - m_HumanName: LeftUpperArm - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_R_UpperArm - m_HumanName: RightUpperArm - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_L_LowerArm - m_HumanName: LeftLowerArm - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_R_LowerArm - m_HumanName: RightLowerArm - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_L_Hand - m_HumanName: LeftHand - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_R_Hand - m_HumanName: RightHand - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_L_Thumb1 - m_HumanName: Left Thumb Proximal - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_L_Thumb2 - m_HumanName: Left Thumb Intermediate - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_L_Thumb3 - m_HumanName: Left Thumb Distal - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_L_Index1 - m_HumanName: Left Index Proximal - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_L_Index2 - m_HumanName: Left Index Intermediate - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_L_Index3 - m_HumanName: Left Index Distal - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_L_Middle1 - m_HumanName: Left Middle Proximal - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_L_Middle2 - m_HumanName: Left Middle Intermediate - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_L_Middle3 - m_HumanName: Left Middle Distal - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_L_Ring1 - m_HumanName: Left Ring Proximal - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_L_Ring2 - m_HumanName: Left Ring Intermediate - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_L_Ring3 - m_HumanName: Left Ring Distal - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_L_Little1 - m_HumanName: Left Little Proximal - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_L_Little2 - m_HumanName: Left Little Intermediate - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_L_Little3 - m_HumanName: Left Little Distal - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_R_Thumb1 - m_HumanName: Right Thumb Proximal - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_R_Thumb2 - m_HumanName: Right Thumb Intermediate - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_R_Thumb3 - m_HumanName: Right Thumb Distal - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_R_Index1 - m_HumanName: Right Index Proximal - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_R_Index2 - m_HumanName: Right Index Intermediate - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_R_Index3 - m_HumanName: Right Index Distal - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_R_Middle1 - m_HumanName: Right Middle Proximal - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_R_Middle2 - m_HumanName: Right Middle Intermediate - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_R_Middle3 - m_HumanName: Right Middle Distal - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_R_Ring1 - m_HumanName: Right Ring Proximal - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_R_Ring2 - m_HumanName: Right Ring Intermediate - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_R_Ring3 - m_HumanName: Right Ring Distal - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_R_Little1 - m_HumanName: Right Little Proximal - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_R_Little2 - m_HumanName: Right Little Intermediate - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_R_Little3 - m_HumanName: Right Little Distal - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - m_Skeleton: - - m_Name: Female1_withBodyTracking - m_ParentName: - m_Position: {x: 0, y: 0, z: 0} - m_Rotation: {x: 0, y: 0, z: 0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: Body - m_ParentName: - m_Position: {x: 0, y: 0, z: 0} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: Face - m_ParentName: - m_Position: {x: 0, y: 0, z: 0} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: Hair - m_ParentName: - m_Position: {x: 0, y: 0, z: 0} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: Root - m_ParentName: - m_Position: {x: 0, y: 0, z: 0} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_C_Hips - m_ParentName: - m_Position: {x: 0, y: 0.93650174, z: 0.0036878982} - m_Rotation: {x: 0, y: 0, z: 0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_C_Spine - m_ParentName: - m_Position: {x: 5.948816e-32, y: 0.050968885, z: 0.012252513} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_C_Chest - m_ParentName: - m_Position: {x: -2.0149595e-17, y: 0.110621214, z: 0.0029853042} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_C_UpperChest - m_ParentName: - m_Position: {x: 2.9083892e-17, y: 0.10536587, z: -0.014336677} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_C_Neck - m_ParentName: - m_Position: {x: 9.127545e-17, y: 0.1294887, z: -0.03754457} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_C_Head - m_ParentName: - m_Position: {x: 0.000000005196695, y: 0.075594306, z: 0.009783598} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Adj_L_FaceEye - m_ParentName: - m_Position: {x: -0.014784996, y: 0.06125927, z: 0.022221765} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Adj_R_FaceEye - m_ParentName: - m_Position: {x: 0.014784982, y: 0.06125927, z: 0.022221772} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair1_01 - m_ParentName: - m_Position: {x: 0.0060543846, y: 0.19155574, z: -0.11623336} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair2_01 - m_ParentName: - m_Position: {x: -0.0032195332, y: -0.09500408, z: -0.029305004} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_01 - m_ParentName: - m_Position: {x: -0.003834067, y: -0.09629369, z: -0.024558365} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair4_01 - m_ParentName: - m_Position: {x: -0.0045603532, y: -0.0975678, z: -0.01879552} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair5_01 - m_ParentName: - m_Position: {x: -0.004833374, y: -0.097961664, z: -0.016576946} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair6_01 - m_ParentName: - m_Position: {x: -0.004801523, y: -0.09791851, z: -0.016837388} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair6_01_end - m_ParentName: - m_Position: {x: -0.0033789221, y: -0.06890714, z: -0.011848748} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair1_02 - m_ParentName: - m_Position: {x: -0.023998903, y: 0.17999744, z: -0.09226433} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair2_02 - m_ParentName: - m_Position: {x: -0.017848196, y: -0.10116458, z: -0.025196552} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_02 - m_ParentName: - m_Position: {x: -0.019145628, y: -0.102164984, z: -0.019412987} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair4_02 - m_ParentName: - m_Position: {x: -0.020202043, y: -0.102792144, z: -0.014479518} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair5_02 - m_ParentName: - m_Position: {x: -0.020311652, y: -0.102844834, z: -0.013952583} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair5_02_end - m_ParentName: - m_Position: {x: -0.013444329, y: -0.06807315, z: -0.009235263} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair1_03 - m_ParentName: - m_Position: {x: 0.011216303, y: 0.19704938, z: -0.109584175} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair2_03 - m_ParentName: - m_Position: {x: 0.02504052, y: -0.09843135, z: -0.013009474} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_03 - m_ParentName: - m_Position: {x: 0.020819375, y: -0.09838283, z: -0.019334368} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair4_03 - m_ParentName: - m_Position: {x: 0.01747091, y: -0.09802544, z: -0.024187118} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair5_03 - m_ParentName: - m_Position: {x: 0.017163226, y: -0.097975254, z: -0.024624199} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair5_03_end - m_ParentName: - m_Position: {x: 0.011724673, y: -0.06692958, z: -0.016821474} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair1_04 - m_ParentName: - m_Position: {x: 0.09034192, y: 0.020739079, z: 0.013131157} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair2_04 - m_ParentName: - m_Position: {x: 0.0005200654, y: -0.052738905, z: 0.011005877} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_04 - m_ParentName: - m_Position: {x: -0.0051159784, y: -0.045720816, z: 0.02806885} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair4_04 - m_ParentName: - m_Position: {x: -0.017751932, y: -0.034382105, z: 0.036584526} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair4_04_end - m_ParentName: - m_Position: {x: -0.023335353, y: -0.045196176, z: 0.04809127} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair1_05 - m_ParentName: - m_Position: {x: -0.09037836, y: 0.018492937, z: 0.0131891295} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair2_05 - m_ParentName: - m_Position: {x: -0.00038973987, y: -0.051941752, z: 0.011532931} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_05 - m_ParentName: - m_Position: {x: 0.00504905, y: -0.04497254, z: 0.028033623} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair4_05 - m_ParentName: - m_Position: {x: 0.017956987, y: -0.033681393, z: 0.036034673} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair4_05_end - m_ParentName: - m_Position: {x: 0.0239464, y: -0.044915557, z: 0.048053756} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair1_06 - m_ParentName: - m_Position: {x: 0.0038271134, y: 0.10032368, z: 0.11484787} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair2_06 - m_ParentName: - m_Position: {x: -0.0114425, y: -0.038627625, z: -0.0029882044} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_06 - m_ParentName: - m_Position: {x: -0.023252435, y: -0.030773401, z: -0.0087142885} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_06_end - m_ParentName: - m_Position: {x: -0.04116246, y: -0.05447638, z: -0.015426412} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair1_07 - m_ParentName: - m_Position: {x: 0.09799406, y: 0.07294512, z: 0.038732037} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair2_07 - m_ParentName: - m_Position: {x: -0.008405648, y: -0.035627127, z: 0.0036858395} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_07 - m_ParentName: - m_Position: {x: -0.021355107, y: -0.028679848, z: 0.006578073} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_07_end - m_ParentName: - m_Position: {x: -0.041115865, y: -0.05521846, z: 0.012665033} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair1_08 - m_ParentName: - m_Position: {x: 0.1039162, y: 0.06665754, z: 0.01088972} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair2_08 - m_ParentName: - m_Position: {x: -0.012210831, y: -0.035097122, z: 0.0028314441} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_08 - m_ParentName: - m_Position: {x: -0.021619588, y: -0.029940248, z: -0.0024947487} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_08_end - m_ParentName: - m_Position: {x: -0.04088626, y: -0.05662203, z: -0.0047179908} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair1_09 - m_ParentName: - m_Position: {x: -0.103599615, y: 0.06952298, z: 0.010509707} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair2_09 - m_ParentName: - m_Position: {x: 0.011073269, y: -0.03683269, z: 0.00053985044} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_09 - m_ParentName: - m_Position: {x: 0.022228621, y: -0.03105092, z: -0.002774533} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_09_end - m_ParentName: - m_Position: {x: 0.040639482, y: -0.056768894, z: -0.005072549} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair1_10 - m_ParentName: - m_Position: {x: -0.09720296, y: 0.06601691, z: 0.038295604} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair2_10 - m_ParentName: - m_Position: {x: 0.008842394, y: -0.031521797, z: 0.0020156577} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_10 - m_ParentName: - m_Position: {x: 0.019210495, y: -0.025567174, z: 0.0049108267} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_10_end - m_ParentName: - m_Position: {x: 0.041562013, y: -0.05531466, z: 0.010624602} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair1_11 - m_ParentName: - m_Position: {x: -0.08736309, y: 0.061727047, z: -0.078165144} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair2_11 - m_ParentName: - m_Position: {x: 0.0076676607, y: -0.034651995, z: 0.0029347688} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_11 - m_ParentName: - m_Position: {x: 0.017155953, y: -0.030285716, z: 0.006837338} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_11_end - m_ParentName: - m_Position: {x: 0.033854835, y: -0.059764504, z: 0.01349251} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair1_12 - m_ParentName: - m_Position: {x: 0.003668399, y: 0.074970245, z: -0.12469099} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair2_12 - m_ParentName: - m_Position: {x: 0.00081768166, y: -0.04406452, z: 0.00985533} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_12 - m_ParentName: - m_Position: {x: 0.008002964, y: -0.039358377, z: 0.020634204} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_12_end - m_ParentName: - m_Position: {x: 0.012406546, y: -0.06101513, z: 0.031988047} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair1_13 - m_ParentName: - m_Position: {x: 0.092061795, y: 0.06233096, z: -0.07076192} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair2_13 - m_ParentName: - m_Position: {x: -0.006141573, y: -0.036583662, z: 0.006459132} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_13 - m_ParentName: - m_Position: {x: -0.012260839, y: -0.03093195, z: 0.017225683} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_13_end - m_ParentName: - m_Position: {x: -0.022906553, y: -0.057789207, z: 0.032182217} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair1_14 - m_ParentName: - m_Position: {x: -0.038898736, y: -0.019448876, z: -0.040619954} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair2_14 - m_ParentName: - m_Position: {x: 0.0060002767, y: -0.018793583, z: -0.0030941814} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_14 - m_ParentName: - m_Position: {x: 0.0022521075, y: -0.019284606, z: -0.0043754727} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_14_end - m_ParentName: - m_Position: {x: 0.007920966, y: -0.06782651, z: -0.015389115} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair1_15 - m_ParentName: - m_Position: {x: -0.010106603, y: -0.004513502, z: -0.068655685} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair2_15 - m_ParentName: - m_Position: {x: 0.0025522728, y: -0.030941367, z: 0.011916444} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_15 - m_ParentName: - m_Position: {x: 0.0056611383, y: -0.03245902, z: -0.0000307858} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_15_end - m_ParentName: - m_Position: {x: 0.01202706, y: -0.068959, z: -0.0000654012} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair1_16 - m_ParentName: - m_Position: {x: 0.04439354, y: -0.011398077, z: -0.0384506} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair2_16 - m_ParentName: - m_Position: {x: -0.0067237467, y: -0.024332285, z: 0.0013642758} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_16 - m_ParentName: - m_Position: {x: -0.0070233773, y: -0.021796703, z: -0.011003256} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_16_end - m_ParentName: - m_Position: {x: -0.019350724, y: -0.060054064, z: -0.030316055} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair1_17 - m_ParentName: - m_Position: {x: 0.06916933, y: 0.09241533, z: 0.08386295} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair2_17 - m_ParentName: - m_Position: {x: 0.00031793863, y: -0.031071424, z: -0.003433995} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_17 - m_ParentName: - m_Position: {x: -0.010192722, y: -0.029346943, z: 0.0015152171} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_17_end - m_ParentName: - m_Position: {x: -0.022939213, y: -0.066046715, z: 0.0034100711} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair1_18 - m_ParentName: - m_Position: {x: -0.030270243, y: 0.11486733, z: 0.109852746} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair2_18 - m_ParentName: - m_Position: {x: -0.03878224, y: -0.035150647, z: -0.012748048} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_18 - m_ParentName: - m_Position: {x: -0.040310033, y: -0.00279212, z: -0.033838585} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_18_end - m_ParentName: - m_Position: {x: -0.053538345, y: -0.0037083626, z: -0.0449432} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair1_19 - m_ParentName: - m_Position: {x: -0.06878384, y: 0.095115304, z: 0.084242165} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair2_19 - m_ParentName: - m_Position: {x: -0.00079639256, y: -0.0322783, z: -0.0035905913} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_19 - m_ParentName: - m_Position: {x: 0.013975155, y: -0.027860403, z: 0.006449461} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_19_end - m_ParentName: - m_Position: {x: 0.030734617, y: -0.06127155, z: 0.014183879} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_L_Clavicle - m_ParentName: - m_Position: {x: -0.020808386, y: 0.1034497, z: -0.02933467} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_L_UpperArm - m_ParentName: - m_Position: {x: -0.06679835, y: -0.0100136995, z: 0.000000014901161} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_L_LowerArm - m_ParentName: - m_Position: {x: -0.21410698, y: 0, z: 0} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_L_Hand - m_ParentName: - m_Position: {x: -0.19947156, y: 0.0000023841858, z: 0.00036800653} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_L_Index1 - m_ParentName: - m_Position: {x: -0.060842276, y: 0.007224083, z: 0.019240757} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_L_Index2 - m_ParentName: - m_Position: {x: -0.030905277, y: 0, z: -0.0006325543} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_L_Index3 - m_ParentName: - m_Position: {x: -0.019009352, y: -0.0005789995, z: -0.0007722862} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_L_Little1 - m_ParentName: - m_Position: {x: -0.056770742, y: 0.007224083, z: -0.028558226} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_L_Little2 - m_ParentName: - m_Position: {x: -0.02921474, y: 0, z: 0.000000014901161} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_L_Little3 - m_ParentName: - m_Position: {x: -0.016837686, y: 0.00000011920929, z: -0.000000022351742} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_L_Middle1 - m_ParentName: - m_Position: {x: -0.06167108, y: 0.007224202, z: 0.0020036474} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_L_Middle2 - m_ParentName: - m_Position: {x: -0.03443119, y: -0.00000011920929, z: 0.000000007450581} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_L_Middle3 - m_ParentName: - m_Position: {x: -0.021241367, y: 0.00000011920929, z: -0.000000007450581} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_L_Ring1 - m_ParentName: - m_Position: {x: -0.060968697, y: 0.007224083, z: -0.01330054} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_L_Ring2 - m_ParentName: - m_Position: {x: -0.03193912, y: 0, z: -0.000000014901161} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_L_Ring3 - m_ParentName: - m_Position: {x: -0.01843214, y: 0, z: 0} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_L_Thumb1 - m_ParentName: - m_Position: {x: -0.0032740831, y: -0.0097965, z: 0.01562553} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_L_Thumb2 - m_ParentName: - m_Position: {x: -0.032867372, y: -0.0020189285, z: 0.029622039} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_L_Thumb3 - m_ParentName: - m_Position: {x: -0.02096486, y: -0.0009496212, z: 0.017276319} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_TipSleeve_01 - m_ParentName: - m_Position: {x: 0.004469067, y: -0.015556693, z: -0.008071767} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_TipSleeve_end_01 - m_ParentName: - m_Position: {x: -0.042382568, y: -0.0041464567, z: -0.0023704246} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_TipSleeve_end_01_end - m_ParentName: - m_Position: {x: -0.06955972, y: -0.0068053007, z: -0.0038904175} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_LowerSleeve_01 - m_ParentName: - m_Position: {x: -0.09607756, y: -0.019597769, z: 0.0024976358} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_LowerSleeve_end_01 - m_ParentName: - m_Position: {x: -0.0049577653, y: -0.07610023, z: 0.0052430034} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_LowerSleeve_end_01_end - m_ParentName: - m_Position: {x: -0.0045399964, y: -0.06968737, z: 0.004801186} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_R_Clavicle - m_ParentName: - m_Position: {x: 0.020808386, y: 0.1034497, z: -0.02933467} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_R_UpperArm - m_ParentName: - m_Position: {x: 0.06679835, y: -0.0100136995, z: 0.000000014901161} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_R_LowerArm - m_ParentName: - m_Position: {x: 0.21410698, y: 0, z: 0} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_R_Hand - m_ParentName: - m_Position: {x: 0.19947156, y: 0.0000023841858, z: 0.00036800653} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_R_Index1 - m_ParentName: - m_Position: {x: 0.060842276, y: 0.007224083, z: 0.019240757} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_R_Index2 - m_ParentName: - m_Position: {x: 0.030905277, y: 0, z: -0.0006325543} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_R_Index3 - m_ParentName: - m_Position: {x: 0.019009352, y: -0.0005789995, z: -0.0007722862} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_R_Little1 - m_ParentName: - m_Position: {x: 0.056770742, y: 0.007224083, z: -0.028558226} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_R_Little2 - m_ParentName: - m_Position: {x: 0.02921474, y: 0, z: 0.000000014901161} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_R_Little3 - m_ParentName: - m_Position: {x: 0.016837686, y: 0.00000011920929, z: -0.000000022351742} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_R_Middle1 - m_ParentName: - m_Position: {x: 0.06167108, y: 0.007224202, z: 0.0020036474} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_R_Middle2 - m_ParentName: - m_Position: {x: 0.03443119, y: -0.00000011920929, z: 0.000000007450581} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_R_Middle3 - m_ParentName: - m_Position: {x: 0.021241367, y: 0.00000011920929, z: -0.000000007450581} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_R_Ring1 - m_ParentName: - m_Position: {x: 0.060968697, y: 0.007224083, z: -0.01330054} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_R_Ring2 - m_ParentName: - m_Position: {x: 0.03193912, y: 0, z: -0.000000014901161} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_R_Ring3 - m_ParentName: - m_Position: {x: 0.01843214, y: 0, z: 0} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_R_Thumb1 - m_ParentName: - m_Position: {x: 0.0032740831, y: -0.0097965, z: 0.01562553} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_R_Thumb2 - m_ParentName: - m_Position: {x: 0.032867372, y: -0.0020189285, z: 0.029622039} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_R_Thumb3 - m_ParentName: - m_Position: {x: 0.02096486, y: -0.0009496212, z: 0.017276319} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_TipSleeve_01 - m_ParentName: - m_Position: {x: -0.004469067, y: -0.015556693, z: -0.008071767} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_TipSleeve_end_01 - m_ParentName: - m_Position: {x: 0.042382568, y: -0.0041464567, z: -0.0023704246} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_TipSleeve_end_01_end - m_ParentName: - m_Position: {x: 0.06955972, y: -0.0068053007, z: -0.0038904175} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_LowerSleeve_01 - m_ParentName: - m_Position: {x: 0.09607756, y: -0.019597769, z: 0.0024976358} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_LowerSleeve_end_01 - m_ParentName: - m_Position: {x: 0.0049577653, y: -0.07610023, z: 0.0052430034} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_LowerSleeve_end_01_end - m_ParentName: - m_Position: {x: 0.0045399964, y: -0.06968737, z: 0.004801186} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_Bust1 - m_ParentName: - m_Position: {x: -0.051190045, y: -0.007102847, z: 0.067519896} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_Bust2 - m_ParentName: - m_Position: {x: -0.015037615, y: 0.0036982298, z: 0.030056074} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_Bust2_end - m_ParentName: - m_Position: {x: -0.031132981, y: 0.0076565742, z: 0.062226303} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_Bust1 - m_ParentName: - m_Position: {x: 0.051190045, y: -0.007102847, z: 0.067519896} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_Bust2 - m_ParentName: - m_Position: {x: 0.015037615, y: 0.0036982298, z: 0.030056074} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_Bust2_end - m_ParentName: - m_Position: {x: 0.031132981, y: 0.0076565742, z: 0.062226303} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_L_UpperLeg - m_ParentName: - m_Position: {x: -0.07168864, y: -0.03872311, z: -0.0035527977} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_L_LowerLeg - m_ParentName: - m_Position: {x: 0.000000014901161, y: -0.3756488, z: -0.010205619} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_L_Foot - m_ParentName: - m_Position: {x: 0, y: -0.4251067, z: -0.023510326} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_L_ToeBase - m_ParentName: - m_Position: {x: 0, y: -0.0613662, z: 0.09755388} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_SkirtBack0_01 - m_ParentName: - m_Position: {x: -0.00051371753, y: 0.03553772, z: -0.12787059} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_SkirtBack1_01 - m_ParentName: - m_Position: {x: 0, y: 0, z: 0} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_SkirtBack2_01 - m_ParentName: - m_Position: {x: -0.0321839, y: -0.12671971, z: -0.05308689} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_SkirtBack2_end_01 - m_ParentName: - m_Position: {x: -0.031471446, y: -0.1283117, z: -0.04816988} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_SkirtBack2_end_01_end - m_ParentName: - m_Position: {x: -0.015666068, y: -0.06387186, z: -0.023978308} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_SkirtBack_01 - m_ParentName: - m_Position: {x: 0.002153173, y: -0.040513754, z: -0.11518712} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_SkirtBack_end_01 - m_ParentName: - m_Position: {x: -0.00886596, y: -0.08771938, z: -0.013875127} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_SkirtBack_end_01_end - m_ParentName: - m_Position: {x: -0.006953582, y: -0.06879842, z: -0.010882273} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_SkirtFront0_01 - m_ParentName: - m_Position: {x: 0.0041720867, y: 0.0041890144, z: 0.14196625} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_SkirtFront1_01 - m_ParentName: - m_Position: {x: 0, y: 0, z: 0} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_SkirtFront2_01 - m_ParentName: - m_Position: {x: -0.022604093, y: -0.12880695, z: 0.019534513} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_SkirtFront2_end_01 - m_ParentName: - m_Position: {x: -0.02736549, y: -0.15725672, z: 0.024203286} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_SkirtFront2_end_01_end - m_ParentName: - m_Position: {x: -0.011865273, y: -0.0681842, z: 0.0104941875} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_SkirtFront_01 - m_ParentName: - m_Position: {x: 0.00864964, y: -0.05833465, z: 0.12072687} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_SkirtFront_end_01 - m_ParentName: - m_Position: {x: -0.008657336, y: -0.096174896, z: -0.0006926805} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_SkirtFront_end_01_end - m_ParentName: - m_Position: {x: -0.006275624, y: -0.069716334, z: -0.000502117} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_SkirtSide_01 - m_ParentName: - m_Position: {x: -0.10469708, y: -0.04024589, z: 0.003496936} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_SkirtSide_end_01 - m_ParentName: - m_Position: {x: -0.026975378, y: -0.09512514, z: -0.010761733} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_SkirtSide_end_01_end - m_ParentName: - m_Position: {x: -0.018985301, y: -0.06694919, z: -0.0075741177} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_R_UpperLeg - m_ParentName: - m_Position: {x: 0.07168864, y: -0.03872311, z: -0.0035527977} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_R_LowerLeg - m_ParentName: - m_Position: {x: -0.000000014901161, y: -0.3756488, z: -0.010205619} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_R_Foot - m_ParentName: - m_Position: {x: 0, y: -0.4251067, z: -0.023510326} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_R_ToeBase - m_ParentName: - m_Position: {x: 0, y: -0.0613662, z: 0.09755388} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_SkirtBack0_01 - m_ParentName: - m_Position: {x: 0.00051373243, y: 0.03553754, z: -0.12787092} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_SkirtBack1_01 - m_ParentName: - m_Position: {x: 0, y: 0, z: 0} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_SkirtBack2_01 - m_ParentName: - m_Position: {x: 0.0321839, y: -0.12671995, z: -0.053086832} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_SkirtBack2_end_01 - m_ParentName: - m_Position: {x: 0.031471908, y: -0.12831116, z: -0.048169613} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_SkirtBack2_end_01_end - m_ParentName: - m_Position: {x: 0.01566635, y: -0.0638718, z: -0.023978248} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_SkirtBack_01 - m_ParentName: - m_Position: {x: -0.0021531358, y: -0.040513754, z: -0.11518711} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_SkirtBack_end_01 - m_ParentName: - m_Position: {x: 0.0068022385, y: -0.0878436, z: -0.01423265} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_SkirtBack_end_01_end - m_ParentName: - m_Position: {x: 0.005335167, y: -0.0688979, z: -0.011163011} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_SkirtFront0_01 - m_ParentName: - m_Position: {x: -0.0041720644, y: 0.0041888356, z: 0.14196649} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_SkirtFront1_01 - m_ParentName: - m_Position: {x: 0, y: 0, z: 0} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_SkirtFront2_01 - m_ParentName: - m_Position: {x: 0.022604086, y: -0.12880653, z: 0.019534424} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_SkirtFront2_end_01 - m_ParentName: - m_Position: {x: 0.027364962, y: -0.1572566, z: 0.02420336} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_SkirtFront2_end_01_end - m_ParentName: - m_Position: {x: 0.011865057, y: -0.06818426, z: 0.010494232} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_SkirtFront_01 - m_ParentName: - m_Position: {x: -0.008878, y: -0.058356643, z: 0.12080709} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_SkirtFront_end_01 - m_ParentName: - m_Position: {x: 0.008391716, y: -0.096199274, z: -0.0005996004} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_SkirtFront_end_01_end - m_ParentName: - m_Position: {x: 0.006083064, y: -0.06973386, z: -0.00043464452} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_SkirtSide_01 - m_ParentName: - m_Position: {x: 0.10469708, y: -0.04024577, z: 0.0034969351} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_SkirtSide_end_01 - m_ParentName: - m_Position: {x: 0.026974961, y: -0.09512484, z: -0.010761726} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_SkirtSide_end_01_end - m_ParentName: - m_Position: {x: 0.018985078, y: -0.06694925, z: -0.007574144} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_SkirtSide0_01 - m_ParentName: - m_Position: {x: -0.1839734, y: -0.01717341, z: 0.008129962} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_SkirtSide1_01 - m_ParentName: - m_Position: {x: 0, y: 0, z: 0} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_SkirtSide2_01 - m_ParentName: - m_Position: {x: -0.04965982, y: -0.12537038, z: -0.007807067} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_SkirtSide2_end_01 - m_ParentName: - m_Position: {x: -0.040121317, y: -0.11963594, z: -0.0065027433} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_SkirtSide2_end_01_end - m_ParentName: - m_Position: {x: -0.022227585, y: -0.06627941, z: -0.0036025797} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_SkirtSide0_01 - m_ParentName: - m_Position: {x: 0.18397318, y: -0.017173588, z: 0.008129945} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_SkirtSide1_01 - m_ParentName: - m_Position: {x: 0, y: 0, z: 0} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_SkirtSide2_01 - m_ParentName: - m_Position: {x: 0.049659625, y: -0.12536985, z: -0.0078070783} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_SkirtSide2_end_01 - m_ParentName: - m_Position: {x: 0.040121317, y: -0.11963624, z: -0.0065027284} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_SkirtSide2_end_01_end - m_ParentName: - m_Position: {x: 0.022227526, y: -0.06627941, z: -0.003602563} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: secondary - m_ParentName: - m_Position: {x: 0, y: 0, z: 0} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - m_ArmTwist: 0.5 - m_ForeArmTwist: 0.5 - m_UpperLegTwist: 0.5 - m_LegTwist: 0.5 - m_ArmStretch: 0.05 - m_LegStretch: 0.05 - m_FeetSpacing: 0 - m_GlobalScale: 0 - m_RootMotionBoneName: - m_HasTranslationDoF: 0 - m_HasExtraRoot: 0 - m_SkeletonHasParents: 0 diff --git a/com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Arts/Female1_withVrmIK.avatar.asset b/com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Arts/Female1_withVrmIK.avatar.asset deleted file mode 100644 index a91b22b..0000000 --- a/com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Arts/Female1_withVrmIK.avatar.asset +++ /dev/null @@ -1,4223 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!90 &9000000 -Avatar: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: Female1_withVrmIK.avatar - m_AvatarSize: 34144 - m_Avatar: - serializedVersion: 3 - m_AvatarSkeleton: - data: - m_Node: - - m_ParentId: -1 - m_AxesId: -1 - - m_ParentId: 0 - m_AxesId: -1 - - m_ParentId: 0 - m_AxesId: -1 - - m_ParentId: 0 - m_AxesId: -1 - - m_ParentId: 0 - m_AxesId: -1 - - m_ParentId: 4 - m_AxesId: -1 - - m_ParentId: 5 - m_AxesId: -1 - - m_ParentId: 6 - m_AxesId: -1 - - m_ParentId: 7 - m_AxesId: -1 - - m_ParentId: 8 - m_AxesId: -1 - - m_ParentId: 9 - m_AxesId: -1 - - m_ParentId: 10 - m_AxesId: -1 - - m_ParentId: 10 - m_AxesId: -1 - - m_ParentId: 10 - m_AxesId: -1 - - m_ParentId: 13 - m_AxesId: -1 - - m_ParentId: 14 - m_AxesId: -1 - - m_ParentId: 15 - m_AxesId: -1 - - m_ParentId: 16 - m_AxesId: -1 - - m_ParentId: 17 - m_AxesId: -1 - - m_ParentId: 18 - m_AxesId: -1 - - m_ParentId: 10 - m_AxesId: -1 - - m_ParentId: 20 - m_AxesId: -1 - - m_ParentId: 21 - m_AxesId: -1 - - m_ParentId: 22 - m_AxesId: -1 - - m_ParentId: 23 - m_AxesId: -1 - - m_ParentId: 24 - m_AxesId: -1 - - m_ParentId: 10 - m_AxesId: -1 - - m_ParentId: 26 - m_AxesId: -1 - - m_ParentId: 27 - m_AxesId: -1 - - m_ParentId: 28 - m_AxesId: -1 - - m_ParentId: 29 - m_AxesId: -1 - - m_ParentId: 30 - m_AxesId: -1 - - m_ParentId: 10 - m_AxesId: -1 - - m_ParentId: 32 - m_AxesId: -1 - - m_ParentId: 33 - m_AxesId: -1 - - m_ParentId: 34 - m_AxesId: -1 - - m_ParentId: 35 - m_AxesId: -1 - - m_ParentId: 10 - m_AxesId: -1 - - m_ParentId: 37 - m_AxesId: -1 - - m_ParentId: 38 - m_AxesId: -1 - - m_ParentId: 39 - m_AxesId: -1 - - m_ParentId: 40 - m_AxesId: -1 - - m_ParentId: 10 - m_AxesId: -1 - - m_ParentId: 42 - m_AxesId: -1 - - m_ParentId: 43 - m_AxesId: -1 - - m_ParentId: 44 - m_AxesId: -1 - - m_ParentId: 10 - m_AxesId: -1 - - m_ParentId: 46 - m_AxesId: -1 - - m_ParentId: 47 - m_AxesId: -1 - - m_ParentId: 48 - m_AxesId: -1 - - m_ParentId: 10 - m_AxesId: -1 - - m_ParentId: 50 - m_AxesId: -1 - - m_ParentId: 51 - m_AxesId: -1 - - m_ParentId: 52 - m_AxesId: -1 - - m_ParentId: 10 - m_AxesId: -1 - - m_ParentId: 54 - m_AxesId: -1 - - m_ParentId: 55 - m_AxesId: -1 - - m_ParentId: 56 - m_AxesId: -1 - - m_ParentId: 10 - m_AxesId: -1 - - m_ParentId: 58 - m_AxesId: -1 - - m_ParentId: 59 - m_AxesId: -1 - - m_ParentId: 60 - m_AxesId: -1 - - m_ParentId: 10 - m_AxesId: -1 - - m_ParentId: 62 - m_AxesId: -1 - - m_ParentId: 63 - m_AxesId: -1 - - m_ParentId: 64 - m_AxesId: -1 - - m_ParentId: 10 - m_AxesId: -1 - - m_ParentId: 66 - m_AxesId: -1 - - m_ParentId: 67 - m_AxesId: -1 - - m_ParentId: 68 - m_AxesId: -1 - - m_ParentId: 10 - m_AxesId: -1 - - m_ParentId: 70 - m_AxesId: -1 - - m_ParentId: 71 - m_AxesId: -1 - - m_ParentId: 72 - m_AxesId: -1 - - m_ParentId: 10 - m_AxesId: -1 - - m_ParentId: 74 - m_AxesId: -1 - - m_ParentId: 75 - m_AxesId: -1 - - m_ParentId: 76 - m_AxesId: -1 - - m_ParentId: 10 - m_AxesId: -1 - - m_ParentId: 78 - m_AxesId: -1 - - m_ParentId: 79 - m_AxesId: -1 - - m_ParentId: 80 - m_AxesId: -1 - - m_ParentId: 10 - m_AxesId: -1 - - m_ParentId: 82 - m_AxesId: -1 - - m_ParentId: 83 - m_AxesId: -1 - - m_ParentId: 84 - m_AxesId: -1 - - m_ParentId: 10 - m_AxesId: -1 - - m_ParentId: 86 - m_AxesId: -1 - - m_ParentId: 87 - m_AxesId: -1 - - m_ParentId: 88 - m_AxesId: -1 - - m_ParentId: 10 - m_AxesId: -1 - - m_ParentId: 90 - m_AxesId: -1 - - m_ParentId: 91 - m_AxesId: -1 - - m_ParentId: 92 - m_AxesId: -1 - - m_ParentId: 10 - m_AxesId: -1 - - m_ParentId: 94 - m_AxesId: -1 - - m_ParentId: 95 - m_AxesId: -1 - - m_ParentId: 96 - m_AxesId: -1 - - m_ParentId: 8 - m_AxesId: -1 - - m_ParentId: 98 - m_AxesId: -1 - - m_ParentId: 99 - m_AxesId: -1 - - m_ParentId: 100 - m_AxesId: -1 - - m_ParentId: 101 - m_AxesId: -1 - - m_ParentId: 102 - m_AxesId: -1 - - m_ParentId: 103 - m_AxesId: -1 - - m_ParentId: 101 - m_AxesId: -1 - - m_ParentId: 105 - m_AxesId: -1 - - m_ParentId: 106 - m_AxesId: -1 - - m_ParentId: 101 - m_AxesId: -1 - - m_ParentId: 108 - m_AxesId: -1 - - m_ParentId: 109 - m_AxesId: -1 - - m_ParentId: 101 - m_AxesId: -1 - - m_ParentId: 111 - m_AxesId: -1 - - m_ParentId: 112 - m_AxesId: -1 - - m_ParentId: 101 - m_AxesId: -1 - - m_ParentId: 114 - m_AxesId: -1 - - m_ParentId: 115 - m_AxesId: -1 - - m_ParentId: 101 - m_AxesId: -1 - - m_ParentId: 117 - m_AxesId: -1 - - m_ParentId: 118 - m_AxesId: -1 - - m_ParentId: 100 - m_AxesId: -1 - - m_ParentId: 120 - m_AxesId: -1 - - m_ParentId: 121 - m_AxesId: -1 - - m_ParentId: 8 - m_AxesId: -1 - - m_ParentId: 123 - m_AxesId: -1 - - m_ParentId: 124 - m_AxesId: -1 - - m_ParentId: 125 - m_AxesId: -1 - - m_ParentId: 126 - m_AxesId: -1 - - m_ParentId: 127 - m_AxesId: -1 - - m_ParentId: 128 - m_AxesId: -1 - - m_ParentId: 126 - m_AxesId: -1 - - m_ParentId: 130 - m_AxesId: -1 - - m_ParentId: 131 - m_AxesId: -1 - - m_ParentId: 126 - m_AxesId: -1 - - m_ParentId: 133 - m_AxesId: -1 - - m_ParentId: 134 - m_AxesId: -1 - - m_ParentId: 126 - m_AxesId: -1 - - m_ParentId: 136 - m_AxesId: -1 - - m_ParentId: 137 - m_AxesId: -1 - - m_ParentId: 126 - m_AxesId: -1 - - m_ParentId: 139 - m_AxesId: -1 - - m_ParentId: 140 - m_AxesId: -1 - - m_ParentId: 126 - m_AxesId: -1 - - m_ParentId: 142 - m_AxesId: -1 - - m_ParentId: 143 - m_AxesId: -1 - - m_ParentId: 125 - m_AxesId: -1 - - m_ParentId: 145 - m_AxesId: -1 - - m_ParentId: 146 - m_AxesId: -1 - - m_ParentId: 8 - m_AxesId: -1 - - m_ParentId: 148 - m_AxesId: -1 - - m_ParentId: 149 - m_AxesId: -1 - - m_ParentId: 8 - m_AxesId: -1 - - m_ParentId: 151 - m_AxesId: -1 - - m_ParentId: 152 - m_AxesId: -1 - - m_ParentId: 5 - m_AxesId: -1 - - m_ParentId: 154 - m_AxesId: -1 - - m_ParentId: 155 - m_AxesId: -1 - - m_ParentId: 156 - m_AxesId: -1 - - m_ParentId: 154 - m_AxesId: -1 - - m_ParentId: 158 - m_AxesId: -1 - - m_ParentId: 159 - m_AxesId: -1 - - m_ParentId: 160 - m_AxesId: -1 - - m_ParentId: 161 - m_AxesId: -1 - - m_ParentId: 154 - m_AxesId: -1 - - m_ParentId: 163 - m_AxesId: -1 - - m_ParentId: 164 - m_AxesId: -1 - - m_ParentId: 154 - m_AxesId: -1 - - m_ParentId: 166 - m_AxesId: -1 - - m_ParentId: 167 - m_AxesId: -1 - - m_ParentId: 168 - m_AxesId: -1 - - m_ParentId: 169 - m_AxesId: -1 - - m_ParentId: 154 - m_AxesId: -1 - - m_ParentId: 171 - m_AxesId: -1 - - m_ParentId: 172 - m_AxesId: -1 - - m_ParentId: 154 - m_AxesId: -1 - - m_ParentId: 174 - m_AxesId: -1 - - m_ParentId: 175 - m_AxesId: -1 - - m_ParentId: 5 - m_AxesId: -1 - - m_ParentId: 177 - m_AxesId: -1 - - m_ParentId: 178 - m_AxesId: -1 - - m_ParentId: 179 - m_AxesId: -1 - - m_ParentId: 177 - m_AxesId: -1 - - m_ParentId: 181 - m_AxesId: -1 - - m_ParentId: 182 - m_AxesId: -1 - - m_ParentId: 183 - m_AxesId: -1 - - m_ParentId: 184 - m_AxesId: -1 - - m_ParentId: 177 - m_AxesId: -1 - - m_ParentId: 186 - m_AxesId: -1 - - m_ParentId: 187 - m_AxesId: -1 - - m_ParentId: 177 - m_AxesId: -1 - - m_ParentId: 189 - m_AxesId: -1 - - m_ParentId: 190 - m_AxesId: -1 - - m_ParentId: 191 - m_AxesId: -1 - - m_ParentId: 192 - m_AxesId: -1 - - m_ParentId: 177 - m_AxesId: -1 - - m_ParentId: 194 - m_AxesId: -1 - - m_ParentId: 195 - m_AxesId: -1 - - m_ParentId: 177 - m_AxesId: -1 - - m_ParentId: 197 - m_AxesId: -1 - - m_ParentId: 198 - m_AxesId: -1 - - m_ParentId: 5 - m_AxesId: -1 - - m_ParentId: 200 - m_AxesId: -1 - - m_ParentId: 201 - m_AxesId: -1 - - m_ParentId: 202 - m_AxesId: -1 - - m_ParentId: 203 - m_AxesId: -1 - - m_ParentId: 5 - m_AxesId: -1 - - m_ParentId: 205 - m_AxesId: -1 - - m_ParentId: 206 - m_AxesId: -1 - - m_ParentId: 207 - m_AxesId: -1 - - m_ParentId: 208 - m_AxesId: -1 - - m_ParentId: 0 - m_AxesId: -1 - m_ID: 000000008ca49a7b59d426a527cec53c6556c6b6a4345e7f9d79f969db3d7eb5e688f112c7106328fe0c1055b40418bb579d1adfa5298a0edbc94e6670c873c95cdf2a9be54086b369b4a771a605ff451f788397932c8fd64b149a6ad2af99b82ae762166cd4facb894884e0948de00f9d5d12bd977dd8105078eec350029f442adde07e42e07d6c7caa38f6ce4effffaab76f9cbcede709454112b5aae3b0218b9cbe5783f92d0f06bcee900da4d305913f5982cc31b232908ce9e70a05bcdc4776d155032d1a2101915677a17fe9c253d00c14169d02c697a15100a6de861b859984c3d981aad572289660de929c210e7e9c71530c8a50e4189117d933f3f8d83714a69c1022435e49988e91d63248e3ebfd05cd35da77c8799ff996775d9135a275d2022972646becfb67401ac0f2d4555f996f7f2a1efddcfc1047bbaf2b021cd74ea063820d478df5890f5e6e9b39c03eedf1467a39d1bdf2fe08ff0142ef89b63a3e5ad22a40a04d6ea385545cfb2f6b7b2beacacdd6904a19a4243b852d66e3ace4f662de76bf9c7f6f9f9cc8bb0e4b0be42785794ad2d9d9f85d986d34fc2df270b58c17ec8c4e18ed03b0ccd97e0281581491be11ae9ba7b466a4ba5b6962df4f1f354836ad4abf9470919abf6a6b5e251494829997fed487ce5cb27a93826759086475117a05392d0efb462c0e54d1064753ab774ec1b00b9dc239e287df7b7f1ce5ed39dfb7160273009399dd5e3c90143980b6ebdf3565707557be39027499a05a704294a2b677e2515f8eaad68cf48aa3414a02c9b2c001387b998e90f920818c49c177390bbbcace851c3920d497608202b93df7948fdec1e3589948ad21cd9a210c3a692bf966b2ffe417ce8f61c53f1d8b6b5b03d149ddae1ea7a25f4701aeb906d02a39763c0a34bcb5e5794bc1c33af7d6a655e5602c2260310a1df2cf2dbc436247344363737a5c659625a6c24ae842820f4b700082652c042ceb578b0e12baf77ae60e20fe811260a4ee33a1481d8c623e1fc2de8d3de5a18f50d76a4b5de4ec32267cf1b7bb4ed5670a83fe029081a255112fa059b053e7fbb78b61e264fba960641738dce1cab0fe34d0523759b044d0a7291088db41e43223224c3c12a4c875003c7d1937c74034187b63238a1b4475b1a5b912d102e0e9dc3184214e1574531b - m_AxesArray: [] - m_AvatarSkeletonPose: - data: - m_X: - - t: {x: 0, y: 0, z: 0} - q: {x: 0, y: 0, z: 0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: 0.93650174, z: 0.0036878982} - q: {x: 0, y: 0, z: 0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 5.948816e-32, y: 0.050968885, z: 0.012252513} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -2.0149595e-17, y: 0.110621214, z: 0.0029853042} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 2.9083892e-17, y: 0.10536587, z: -0.014336677} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 9.127545e-17, y: 0.1294887, z: -0.03754457} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.000000005196695, y: 0.075594306, z: 0.009783598} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.014784996, y: 0.06125927, z: 0.022221765} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.014784982, y: 0.06125927, z: 0.022221772} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0060543846, y: 0.19155574, z: -0.11623336} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.0032195332, y: -0.09500408, z: -0.029305004} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.003834067, y: -0.09629369, z: -0.024558365} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.0045603532, y: -0.0975678, z: -0.01879552} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.004833374, y: -0.097961664, z: -0.016576946} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.004801523, y: -0.09791851, z: -0.016837388} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.0033789221, y: -0.06890714, z: -0.011848748} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.023998903, y: 0.17999744, z: -0.09226433} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.017848196, y: -0.10116458, z: -0.025196552} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.019145628, y: -0.102164984, z: -0.019412987} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.020202043, y: -0.102792144, z: -0.014479518} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.020311652, y: -0.102844834, z: -0.013952583} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.013444329, y: -0.06807315, z: -0.009235263} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.011216303, y: 0.19704938, z: -0.109584175} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.02504052, y: -0.09843135, z: -0.013009474} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.020819375, y: -0.09838283, z: -0.019334368} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.01747091, y: -0.09802544, z: -0.024187118} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.017163226, y: -0.097975254, z: -0.024624199} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.011724673, y: -0.06692958, z: -0.016821474} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.09034192, y: 0.020739079, z: 0.013131157} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0005200654, y: -0.052738905, z: 0.011005877} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.0051159784, y: -0.045720816, z: 0.02806885} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.017751932, y: -0.034382105, z: 0.036584526} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.023335353, y: -0.045196176, z: 0.04809127} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.09037836, y: 0.018492937, z: 0.0131891295} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.00038973987, y: -0.051941752, z: 0.011532931} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.00504905, y: -0.04497254, z: 0.028033623} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.017956987, y: -0.033681393, z: 0.036034673} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0239464, y: -0.044915557, z: 0.048053756} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0038271134, y: 0.10032368, z: 0.11484787} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.0114425, y: -0.038627625, z: -0.0029882044} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.023252435, y: -0.030773401, z: -0.0087142885} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.04116246, y: -0.05447638, z: -0.015426412} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.09799406, y: 0.07294512, z: 0.038732037} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.008405648, y: -0.035627127, z: 0.0036858395} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.021355107, y: -0.028679848, z: 0.006578073} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.041115865, y: -0.05521846, z: 0.012665033} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.1039162, y: 0.06665754, z: 0.01088972} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.012210831, y: -0.035097122, z: 0.0028314441} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.021619588, y: -0.029940248, z: -0.0024947487} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.04088626, y: -0.05662203, z: -0.0047179908} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.103599615, y: 0.06952298, z: 0.010509707} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.011073269, y: -0.03683269, z: 0.00053985044} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.022228621, y: -0.03105092, z: -0.002774533} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.040639482, y: -0.056768894, z: -0.005072549} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.09720296, y: 0.06601691, z: 0.038295604} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.008842394, y: -0.031521797, z: 0.0020156577} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.019210495, y: -0.025567174, z: 0.0049108267} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.041562013, y: -0.05531466, z: 0.010624602} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.08736309, y: 0.061727047, z: -0.078165144} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0076676607, y: -0.034651995, z: 0.0029347688} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.017155953, y: -0.030285716, z: 0.006837338} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.033854835, y: -0.059764504, z: 0.01349251} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.003668399, y: 0.074970245, z: -0.12469099} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.00081768166, y: -0.04406452, z: 0.00985533} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.008002964, y: -0.039358377, z: 0.020634204} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.012406546, y: -0.06101513, z: 0.031988047} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.092061795, y: 0.06233096, z: -0.07076192} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.006141573, y: -0.036583662, z: 0.006459132} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.012260839, y: -0.03093195, z: 0.017225683} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.022906553, y: -0.057789207, z: 0.032182217} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.038898736, y: -0.019448876, z: -0.040619954} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0060002767, y: -0.018793583, z: -0.0030941814} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0022521075, y: -0.019284606, z: -0.0043754727} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.007920966, y: -0.06782651, z: -0.015389115} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.010106603, y: -0.004513502, z: -0.068655685} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0025522728, y: -0.030941367, z: 0.011916444} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0056611383, y: -0.03245902, z: -0.0000307858} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.01202706, y: -0.068959, z: -0.0000654012} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.04439354, y: -0.011398077, z: -0.0384506} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.0067237467, y: -0.024332285, z: 0.0013642758} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.0070233773, y: -0.021796703, z: -0.011003256} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.019350724, y: -0.060054064, z: -0.030316055} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.06916933, y: 0.09241533, z: 0.08386295} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.00031793863, y: -0.031071424, z: -0.003433995} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.010192722, y: -0.029346943, z: 0.0015152171} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.022939213, y: -0.066046715, z: 0.0034100711} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.030270243, y: 0.11486733, z: 0.109852746} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.03878224, y: -0.035150647, z: -0.012748048} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.040310033, y: -0.00279212, z: -0.033838585} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.053538345, y: -0.0037083626, z: -0.0449432} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.06878384, y: 0.095115304, z: 0.084242165} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.00079639256, y: -0.0322783, z: -0.0035905913} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.013975155, y: -0.027860403, z: 0.006449461} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.030734617, y: -0.06127155, z: 0.014183879} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.020808386, y: 0.1034497, z: -0.02933467} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.06679835, y: -0.0100136995, z: 0.000000014901161} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.21410698, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.19947156, y: 0.0000023841858, z: 0.00036800653} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.060842276, y: 0.007224083, z: 0.019240757} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.030905277, y: 0, z: -0.0006325543} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.019009352, y: -0.0005789995, z: -0.0007722862} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.056770742, y: 0.007224083, z: -0.028558226} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.02921474, y: 0, z: 0.000000014901161} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.016837686, y: 0.00000011920929, z: -0.000000022351742} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.06167108, y: 0.007224202, z: 0.0020036474} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.03443119, y: -0.00000011920929, z: 0.000000007450581} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.021241367, y: 0.00000011920929, z: -0.000000007450581} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.060968697, y: 0.007224083, z: -0.01330054} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.03193912, y: 0, z: -0.000000014901161} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.01843214, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.0032740831, y: -0.0097965, z: 0.01562553} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.032867372, y: -0.0020189285, z: 0.029622039} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.02096486, y: -0.0009496212, z: 0.017276319} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.004469067, y: -0.015556693, z: -0.008071767} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.042382568, y: -0.0041464567, z: -0.0023704246} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.06955972, y: -0.0068053007, z: -0.0038904175} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.09607756, y: -0.019597769, z: 0.0024976358} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.0049577653, y: -0.07610023, z: 0.0052430034} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.0045399964, y: -0.06968737, z: 0.004801186} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.020808386, y: 0.1034497, z: -0.02933467} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.06679835, y: -0.0100136995, z: 0.000000014901161} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.21410698, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.19947156, y: 0.0000023841858, z: 0.00036800653} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.060842276, y: 0.007224083, z: 0.019240757} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.030905277, y: 0, z: -0.0006325543} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.019009352, y: -0.0005789995, z: -0.0007722862} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.056770742, y: 0.007224083, z: -0.028558226} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.02921474, y: 0, z: 0.000000014901161} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.016837686, y: 0.00000011920929, z: -0.000000022351742} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.06167108, y: 0.007224202, z: 0.0020036474} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.03443119, y: -0.00000011920929, z: 0.000000007450581} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.021241367, y: 0.00000011920929, z: -0.000000007450581} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.060968697, y: 0.007224083, z: -0.01330054} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.03193912, y: 0, z: -0.000000014901161} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.01843214, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0032740831, y: -0.0097965, z: 0.01562553} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.032867372, y: -0.0020189285, z: 0.029622039} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.02096486, y: -0.0009496212, z: 0.017276319} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.004469067, y: -0.015556693, z: -0.008071767} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.042382568, y: -0.0041464567, z: -0.0023704246} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.06955972, y: -0.0068053007, z: -0.0038904175} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.09607756, y: -0.019597769, z: 0.0024976358} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0049577653, y: -0.07610023, z: 0.0052430034} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0045399964, y: -0.06968737, z: 0.004801186} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.051190045, y: -0.007102847, z: 0.067519896} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.015037615, y: 0.0036982298, z: 0.030056074} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.031132981, y: 0.0076565742, z: 0.062226303} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.051190045, y: -0.007102847, z: 0.067519896} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.015037615, y: 0.0036982298, z: 0.030056074} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.031132981, y: 0.0076565742, z: 0.062226303} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.07168864, y: -0.03872311, z: -0.0035527977} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.000000014901161, y: -0.3756488, z: -0.010205619} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: -0.4251067, z: -0.023510326} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: -0.0613662, z: 0.09755388} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.00051371753, y: 0.03553772, z: -0.12787059} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.0321839, y: -0.12671971, z: -0.05308689} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.031471446, y: -0.1283117, z: -0.04816988} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.015666068, y: -0.06387186, z: -0.023978308} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.002153173, y: -0.040513754, z: -0.11518712} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.00886596, y: -0.08771938, z: -0.013875127} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.006953582, y: -0.06879842, z: -0.010882273} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0041720867, y: 0.0041890144, z: 0.14196625} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.022604093, y: -0.12880695, z: 0.019534513} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.02736549, y: -0.15725672, z: 0.024203286} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.011865273, y: -0.0681842, z: 0.0104941875} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.00864964, y: -0.05833465, z: 0.12072687} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.008657336, y: -0.096174896, z: -0.0006926805} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.006275624, y: -0.069716334, z: -0.000502117} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.10469708, y: -0.04024589, z: 0.003496936} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.026975378, y: -0.09512514, z: -0.010761733} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.018985301, y: -0.06694919, z: -0.0075741177} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.07168864, y: -0.03872311, z: -0.0035527977} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.000000014901161, y: -0.3756488, z: -0.010205619} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: -0.4251067, z: -0.023510326} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: -0.0613662, z: 0.09755388} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.00051373243, y: 0.03553754, z: -0.12787092} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0321839, y: -0.12671995, z: -0.053086832} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.031471908, y: -0.12831116, z: -0.048169613} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.01566635, y: -0.0638718, z: -0.023978248} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.0021531358, y: -0.040513754, z: -0.11518711} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0068022385, y: -0.0878436, z: -0.01423265} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.005335167, y: -0.0688979, z: -0.011163011} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.0041720644, y: 0.0041888356, z: 0.14196649} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.022604086, y: -0.12880653, z: 0.019534424} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.027364962, y: -0.1572566, z: 0.02420336} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.011865057, y: -0.06818426, z: 0.010494232} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.008878, y: -0.058356643, z: 0.12080709} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.008391716, y: -0.096199274, z: -0.0005996004} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.006083064, y: -0.06973386, z: -0.00043464452} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.10469708, y: -0.04024577, z: 0.0034969351} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.026974961, y: -0.09512484, z: -0.010761726} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.018985078, y: -0.06694925, z: -0.007574144} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.1839734, y: -0.01717341, z: 0.008129962} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.04965982, y: -0.12537038, z: -0.007807067} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.040121317, y: -0.11963594, z: -0.0065027433} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.022227585, y: -0.06627941, z: -0.0036025797} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.18397318, y: -0.017173588, z: 0.008129945} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.049659625, y: -0.12536985, z: -0.0078070783} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.040121317, y: -0.11963624, z: -0.0065027284} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.022227526, y: -0.06627941, z: -0.003602563} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - m_DefaultPose: - data: - m_X: - - t: {x: 0, y: 0, z: 0} - q: {x: 0, y: 0, z: 0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: 0.93650174, z: 0.0036878982} - q: {x: 0, y: 0, z: 0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 5.948816e-32, y: 0.050968885, z: 0.012252513} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -2.0149595e-17, y: 0.110621214, z: 0.0029853042} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 2.9083892e-17, y: 0.10536587, z: -0.014336677} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 9.127545e-17, y: 0.1294887, z: -0.03754457} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.000000005196695, y: 0.075594306, z: 0.009783598} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.014784996, y: 0.06125927, z: 0.022221765} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.014784982, y: 0.06125927, z: 0.022221772} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0060543846, y: 0.19155574, z: -0.11623336} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.0032195332, y: -0.09500408, z: -0.029305004} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.003834067, y: -0.09629369, z: -0.024558365} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.0045603532, y: -0.0975678, z: -0.01879552} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.004833374, y: -0.097961664, z: -0.016576946} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.004801523, y: -0.09791851, z: -0.016837388} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.0033789221, y: -0.06890714, z: -0.011848748} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.023998903, y: 0.17999744, z: -0.09226433} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.017848196, y: -0.10116458, z: -0.025196552} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.019145628, y: -0.102164984, z: -0.019412987} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.020202043, y: -0.102792144, z: -0.014479518} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.020311652, y: -0.102844834, z: -0.013952583} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.013444329, y: -0.06807315, z: -0.009235263} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.011216303, y: 0.19704938, z: -0.109584175} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.02504052, y: -0.09843135, z: -0.013009474} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.020819375, y: -0.09838283, z: -0.019334368} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.01747091, y: -0.09802544, z: -0.024187118} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.017163226, y: -0.097975254, z: -0.024624199} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.011724673, y: -0.06692958, z: -0.016821474} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.09034192, y: 0.020739079, z: 0.013131157} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0005200654, y: -0.052738905, z: 0.011005877} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.0051159784, y: -0.045720816, z: 0.02806885} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.017751932, y: -0.034382105, z: 0.036584526} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.023335353, y: -0.045196176, z: 0.04809127} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.09037836, y: 0.018492937, z: 0.0131891295} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.00038973987, y: -0.051941752, z: 0.011532931} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.00504905, y: -0.04497254, z: 0.028033623} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.017956987, y: -0.033681393, z: 0.036034673} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0239464, y: -0.044915557, z: 0.048053756} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0038271134, y: 0.10032368, z: 0.11484787} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.0114425, y: -0.038627625, z: -0.0029882044} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.023252435, y: -0.030773401, z: -0.0087142885} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.04116246, y: -0.05447638, z: -0.015426412} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.09799406, y: 0.07294512, z: 0.038732037} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.008405648, y: -0.035627127, z: 0.0036858395} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.021355107, y: -0.028679848, z: 0.006578073} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.041115865, y: -0.05521846, z: 0.012665033} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.1039162, y: 0.06665754, z: 0.01088972} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.012210831, y: -0.035097122, z: 0.0028314441} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.021619588, y: -0.029940248, z: -0.0024947487} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.04088626, y: -0.05662203, z: -0.0047179908} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.103599615, y: 0.06952298, z: 0.010509707} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.011073269, y: -0.03683269, z: 0.00053985044} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.022228621, y: -0.03105092, z: -0.002774533} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.040639482, y: -0.056768894, z: -0.005072549} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.09720296, y: 0.06601691, z: 0.038295604} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.008842394, y: -0.031521797, z: 0.0020156577} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.019210495, y: -0.025567174, z: 0.0049108267} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.041562013, y: -0.05531466, z: 0.010624602} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.08736309, y: 0.061727047, z: -0.078165144} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0076676607, y: -0.034651995, z: 0.0029347688} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.017155953, y: -0.030285716, z: 0.006837338} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.033854835, y: -0.059764504, z: 0.01349251} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.003668399, y: 0.074970245, z: -0.12469099} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.00081768166, y: -0.04406452, z: 0.00985533} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.008002964, y: -0.039358377, z: 0.020634204} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.012406546, y: -0.06101513, z: 0.031988047} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.092061795, y: 0.06233096, z: -0.07076192} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.006141573, y: -0.036583662, z: 0.006459132} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.012260839, y: -0.03093195, z: 0.017225683} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.022906553, y: -0.057789207, z: 0.032182217} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.038898736, y: -0.019448876, z: -0.040619954} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0060002767, y: -0.018793583, z: -0.0030941814} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0022521075, y: -0.019284606, z: -0.0043754727} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.007920966, y: -0.06782651, z: -0.015389115} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.010106603, y: -0.004513502, z: -0.068655685} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0025522728, y: -0.030941367, z: 0.011916444} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0056611383, y: -0.03245902, z: -0.0000307858} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.01202706, y: -0.068959, z: -0.0000654012} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.04439354, y: -0.011398077, z: -0.0384506} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.0067237467, y: -0.024332285, z: 0.0013642758} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.0070233773, y: -0.021796703, z: -0.011003256} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.019350724, y: -0.060054064, z: -0.030316055} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.06916933, y: 0.09241533, z: 0.08386295} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.00031793863, y: -0.031071424, z: -0.003433995} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.010192722, y: -0.029346943, z: 0.0015152171} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.022939213, y: -0.066046715, z: 0.0034100711} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.030270243, y: 0.11486733, z: 0.109852746} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.03878224, y: -0.035150647, z: -0.012748048} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.040310033, y: -0.00279212, z: -0.033838585} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.053538345, y: -0.0037083626, z: -0.0449432} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.06878384, y: 0.095115304, z: 0.084242165} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.00079639256, y: -0.0322783, z: -0.0035905913} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.013975155, y: -0.027860403, z: 0.006449461} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.030734617, y: -0.06127155, z: 0.014183879} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.020808386, y: 0.1034497, z: -0.02933467} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.06679835, y: -0.0100136995, z: 0.000000014901161} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.21410698, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.19947156, y: 0.0000023841858, z: 0.00036800653} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.060842276, y: 0.007224083, z: 0.019240757} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.030905277, y: 0, z: -0.0006325543} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.019009352, y: -0.0005789995, z: -0.0007722862} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.056770742, y: 0.007224083, z: -0.028558226} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.02921474, y: 0, z: 0.000000014901161} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.016837686, y: 0.00000011920929, z: -0.000000022351742} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.06167108, y: 0.007224202, z: 0.0020036474} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.03443119, y: -0.00000011920929, z: 0.000000007450581} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.021241367, y: 0.00000011920929, z: -0.000000007450581} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.060968697, y: 0.007224083, z: -0.01330054} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.03193912, y: 0, z: -0.000000014901161} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.01843214, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.0032740831, y: -0.0097965, z: 0.01562553} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.032867372, y: -0.0020189285, z: 0.029622039} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.02096486, y: -0.0009496212, z: 0.017276319} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.004469067, y: -0.015556693, z: -0.008071767} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.042382568, y: -0.0041464567, z: -0.0023704246} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.06955972, y: -0.0068053007, z: -0.0038904175} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.09607756, y: -0.019597769, z: 0.0024976358} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.0049577653, y: -0.07610023, z: 0.0052430034} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.0045399964, y: -0.06968737, z: 0.004801186} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.020808386, y: 0.1034497, z: -0.02933467} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.06679835, y: -0.0100136995, z: 0.000000014901161} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.21410698, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.19947156, y: 0.0000023841858, z: 0.00036800653} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.060842276, y: 0.007224083, z: 0.019240757} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.030905277, y: 0, z: -0.0006325543} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.019009352, y: -0.0005789995, z: -0.0007722862} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.056770742, y: 0.007224083, z: -0.028558226} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.02921474, y: 0, z: 0.000000014901161} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.016837686, y: 0.00000011920929, z: -0.000000022351742} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.06167108, y: 0.007224202, z: 0.0020036474} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.03443119, y: -0.00000011920929, z: 0.000000007450581} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.021241367, y: 0.00000011920929, z: -0.000000007450581} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.060968697, y: 0.007224083, z: -0.01330054} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.03193912, y: 0, z: -0.000000014901161} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.01843214, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0032740831, y: -0.0097965, z: 0.01562553} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.032867372, y: -0.0020189285, z: 0.029622039} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.02096486, y: -0.0009496212, z: 0.017276319} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.004469067, y: -0.015556693, z: -0.008071767} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.042382568, y: -0.0041464567, z: -0.0023704246} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.06955972, y: -0.0068053007, z: -0.0038904175} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.09607756, y: -0.019597769, z: 0.0024976358} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0049577653, y: -0.07610023, z: 0.0052430034} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0045399964, y: -0.06968737, z: 0.004801186} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.051190045, y: -0.007102847, z: 0.067519896} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.015037615, y: 0.0036982298, z: 0.030056074} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.031132981, y: 0.0076565742, z: 0.062226303} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.051190045, y: -0.007102847, z: 0.067519896} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.015037615, y: 0.0036982298, z: 0.030056074} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.031132981, y: 0.0076565742, z: 0.062226303} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.07168864, y: -0.03872311, z: -0.0035527977} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.000000014901161, y: -0.3756488, z: -0.010205619} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: -0.4251067, z: -0.023510326} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: -0.0613662, z: 0.09755388} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.00051371753, y: 0.03553772, z: -0.12787059} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.0321839, y: -0.12671971, z: -0.05308689} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.031471446, y: -0.1283117, z: -0.04816988} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.015666068, y: -0.06387186, z: -0.023978308} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.002153173, y: -0.040513754, z: -0.11518712} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.00886596, y: -0.08771938, z: -0.013875127} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.006953582, y: -0.06879842, z: -0.010882273} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0041720867, y: 0.0041890144, z: 0.14196625} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.022604093, y: -0.12880695, z: 0.019534513} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.02736549, y: -0.15725672, z: 0.024203286} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.011865273, y: -0.0681842, z: 0.0104941875} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.00864964, y: -0.05833465, z: 0.12072687} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.008657336, y: -0.096174896, z: -0.0006926805} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.006275624, y: -0.069716334, z: -0.000502117} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.10469708, y: -0.04024589, z: 0.003496936} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.026975378, y: -0.09512514, z: -0.010761733} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.018985301, y: -0.06694919, z: -0.0075741177} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.07168864, y: -0.03872311, z: -0.0035527977} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.000000014901161, y: -0.3756488, z: -0.010205619} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: -0.4251067, z: -0.023510326} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: -0.0613662, z: 0.09755388} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.00051373243, y: 0.03553754, z: -0.12787092} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0321839, y: -0.12671995, z: -0.053086832} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.031471908, y: -0.12831116, z: -0.048169613} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.01566635, y: -0.0638718, z: -0.023978248} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.0021531358, y: -0.040513754, z: -0.11518711} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0068022385, y: -0.0878436, z: -0.01423265} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.005335167, y: -0.0688979, z: -0.011163011} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.0041720644, y: 0.0041888356, z: 0.14196649} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.022604086, y: -0.12880653, z: 0.019534424} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.027364962, y: -0.1572566, z: 0.02420336} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.011865057, y: -0.06818426, z: 0.010494232} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.008878, y: -0.058356643, z: 0.12080709} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.008391716, y: -0.096199274, z: -0.0005996004} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.006083064, y: -0.06973386, z: -0.00043464452} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.10469708, y: -0.04024577, z: 0.0034969351} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.026974961, y: -0.09512484, z: -0.010761726} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.018985078, y: -0.06694925, z: -0.007574144} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.1839734, y: -0.01717341, z: 0.008129962} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.04965982, y: -0.12537038, z: -0.007807067} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.040121317, y: -0.11963594, z: -0.0065027433} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.022227585, y: -0.06627941, z: -0.0036025797} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.18397318, y: -0.017173588, z: 0.008129945} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.049659625, y: -0.12536985, z: -0.0078070783} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.040121317, y: -0.11963624, z: -0.0065027284} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.022227526, y: -0.06627941, z: -0.003602563} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - m_SkeletonNameIDArray: 000000008ca49a7b59d426a527cec53c6556c6b665a19f95493a2d043167a66d679237d619de6dcbd6fe8f4cede95e8d0e705ce90f862d4be1299859844e24e13d76f37c58114fc4b6befad6c196ad3bb5d724d25b7891c03e1f2d788727fae5e240465df2eb82f223e723a5cd4896b7a82f2a0f1117fd927470412a42c2e2cf8072473b6eddf2290bba4e91b282990ccc1e68b11642404cf8edf55e9d8a49e624b29e7b7c37088cac1349d542bcfcc727db407fb5446dc13a234ea2d48cfbb0b1eb4708056d0dfcab3ef1324591442020f6f898d4fa5d7e3d0ef645d3a14357b6c6ffef64d33d43d887312536288437534f388fb06271854eb73652a0188340c57f3ff8004b11b8f4e63fcb1a498ad97f2e3661d031b1ff62d638bc8c798daee91e31166018d1c2c1435c222fece9304a8b558870c4f17057735b55b9dcee47dcbb52ffc0ed914ded2252cc038de7de66ea5b661097310a7b1255bb95bde0a9f0da5c11a0be5137ea0fea2b04a05f3961c7e381712901b57c3fed5c9290584ef7f7e4f6c1006188da54a6855d538d16c2a5eaf910f8483d2b7a3629912b3fb0071b38c7160bc92dac5ac0b43a6ac7c3bfc047bb05914e2293a1495524439f5a9e1296c3082291b45705a54fed54acd67b64aba1333eb33a4e9af75f7c03f166fd327ce44dce76ed5451061881e5c1bc06e2ea2f99148dc0fb9b94043259074088080ed91e3809aef592cb494fc3c2d0d9f3c5a75c5945dfe6084c4670384b31b7a47e6d0df577f49bc570834e269426f4779dbf62479ac8df579a97dfd47968bd35b404c8fad9220f2e481487405d0501c8a8b5bb99a12ce481e2f0922f4982287e401b296e620c86ad03fb195b64140c83a5d38490275f8def401de888fca5062749b788fcaff624c9e5a4e4527c2ed63601f3cbc7e1534668dbbc230f6704cda0d2162558fd809f167ef445e76864960be47dbb404fcdd0ec7951d21245fe1c486309dd1c64c242ea032de7e079ea6709253bb76851b4d20fed0c3ca0581e14d19071347ee448083b558347788fc40af1a43173a07e7a16c7c2c2f86877d067b8c3794c0725e97f6079cd0a26dbfaabf74e213c8550fc435ccbc9dd7e266b861e8b3ce37937840dd68296b57ccff1dc0c08bcbc999a95d9fe262d3751933f2951f076ccbb09501574531b - m_Human: - data: - serializedVersion: 2 - m_RootX: - t: {x: 0.001946428, y: 0.95183253, z: -0.0076206247} - q: {x: -0.031124543, y: -0, z: -0, w: 0.99951553} - s: {x: 1, y: 1, z: 1} - m_Skeleton: - data: - m_Node: - - m_ParentId: -1 - m_AxesId: -1 - - m_ParentId: 0 - m_AxesId: 0 - - m_ParentId: 1 - m_AxesId: 1 - - m_ParentId: 2 - m_AxesId: 2 - - m_ParentId: 3 - m_AxesId: 3 - - m_ParentId: 4 - m_AxesId: 4 - - m_ParentId: 5 - m_AxesId: 5 - - m_ParentId: 6 - m_AxesId: 6 - - m_ParentId: 6 - m_AxesId: 7 - - m_ParentId: 4 - m_AxesId: 8 - - m_ParentId: 9 - m_AxesId: 9 - - m_ParentId: 10 - m_AxesId: 10 - - m_ParentId: 11 - m_AxesId: 11 - - m_ParentId: 12 - m_AxesId: 12 - - m_ParentId: 13 - m_AxesId: 13 - - m_ParentId: 14 - m_AxesId: 14 - - m_ParentId: 12 - m_AxesId: 15 - - m_ParentId: 16 - m_AxesId: 16 - - m_ParentId: 17 - m_AxesId: 17 - - m_ParentId: 12 - m_AxesId: 18 - - m_ParentId: 19 - m_AxesId: 19 - - m_ParentId: 20 - m_AxesId: 20 - - m_ParentId: 12 - m_AxesId: 21 - - m_ParentId: 22 - m_AxesId: 22 - - m_ParentId: 23 - m_AxesId: 23 - - m_ParentId: 12 - m_AxesId: 24 - - m_ParentId: 25 - m_AxesId: 25 - - m_ParentId: 26 - m_AxesId: 26 - - m_ParentId: 4 - m_AxesId: 27 - - m_ParentId: 28 - m_AxesId: 28 - - m_ParentId: 29 - m_AxesId: 29 - - m_ParentId: 30 - m_AxesId: 30 - - m_ParentId: 31 - m_AxesId: 31 - - m_ParentId: 32 - m_AxesId: 32 - - m_ParentId: 33 - m_AxesId: 33 - - m_ParentId: 31 - m_AxesId: 34 - - m_ParentId: 35 - m_AxesId: 35 - - m_ParentId: 36 - m_AxesId: 36 - - m_ParentId: 31 - m_AxesId: 37 - - m_ParentId: 38 - m_AxesId: 38 - - m_ParentId: 39 - m_AxesId: 39 - - m_ParentId: 31 - m_AxesId: 40 - - m_ParentId: 41 - m_AxesId: 41 - - m_ParentId: 42 - m_AxesId: 42 - - m_ParentId: 31 - m_AxesId: 43 - - m_ParentId: 44 - m_AxesId: 44 - - m_ParentId: 45 - m_AxesId: 45 - - m_ParentId: 1 - m_AxesId: 46 - - m_ParentId: 47 - m_AxesId: 47 - - m_ParentId: 48 - m_AxesId: 48 - - m_ParentId: 49 - m_AxesId: 49 - - m_ParentId: 1 - m_AxesId: 50 - - m_ParentId: 51 - m_AxesId: 51 - - m_ParentId: 52 - m_AxesId: 52 - - m_ParentId: 53 - m_AxesId: 53 - m_ID: 6556c6b6a4345e7f9d79f969db3d7eb5e688f112c7106328fe0c1055b40418bb579d1adf76bf9c7f6f9f9cc8bb0e4b0be42785794ad2d9d9f85d986d34fc2df270b58c17ec8c4e18ed03b0ccd97e0281581491be11ae9ba7b466a4ba5b6962df4f1f354836ad4abf9470919abf6a6b5e2d0efb462c0e54d1064753ab774ec1b00b9dc239e287df7b7f1ce5ed39dfb7160273009399dd5e3c90143980b6ebdf3565707557be39027499a05a704294a2b677e2515f8eaad68cf48aa3410c3a692bf966b2ffe417ce8f61c53f1d578b0e12baf77ae60e20fe811260a4ee - m_AxesArray: - - m_PreQ: {x: -0.4376833, y: -0.55536777, z: 0.4376833, w: 0.55536777} - m_PostQ: {x: -0.4376833, y: -0.55536777, z: 0.4376833, w: 0.55536777} - m_Sgn: {x: 1, y: 1, z: 1} - m_Limit: - m_Min: {x: -0.6981317, y: -0.6981317, z: -0.6981317} - m_Max: {x: 0.6981317, y: 0.6981317, z: 0.6981317} - m_Length: 0.052420907 - m_Type: 1 - - m_PreQ: {x: 0.49320966, y: 0.5066994, z: -0.49320966, w: -0.5066994} - m_PostQ: {x: 0.49320966, y: 0.5066994, z: -0.49320966, w: -0.5066994} - m_Sgn: {x: 1, y: 1, z: 1} - m_Limit: - m_Min: {x: -0.6981317, y: -0.6981317, z: -0.6981317} - m_Max: {x: 0.6981317, y: 0.6981317, z: 0.6981317} - m_Length: 0.11066149 - m_Type: 1 - - m_PreQ: {x: 0.53264046, y: 0.4650744, z: -0.53264046, w: -0.4650744} - m_PostQ: {x: 0.53264046, y: 0.4650744, z: -0.53264046, w: -0.4650744} - m_Sgn: {x: 1, y: 1, z: 1} - m_Limit: - m_Min: {x: -0.6981317, y: -0.6981317, z: -0.6981317} - m_Max: {x: 0.6981317, y: 0.6981317, z: 0.6981317} - m_Length: 0.106336765 - m_Type: 1 - - m_PreQ: {x: 0.56534845, y: 0.424713, z: -0.5653485, w: -0.424713} - m_PostQ: {x: 0.56534845, y: 0.424713, z: -0.5653485, w: -0.424713} - m_Sgn: {x: 1, y: 1, z: 1} - m_Limit: - m_Min: {x: -0.34906584, y: -0.34906584, z: -0.34906584} - m_Max: {x: 0.34906584, y: 0.34906584, z: 0.34906584} - m_Length: 0.1348218 - m_Type: 1 - - m_PreQ: {x: -0.4668105, y: -0.5311195, z: 0.46681046, w: 0.53111964} - m_PostQ: {x: -0.4668105, y: -0.5311195, z: 0.46681046, w: 0.53111964} - m_Sgn: {x: 1, y: 1, z: 1} - m_Limit: - m_Min: {x: -0.6981317, y: -0.6981317, z: -0.6981317} - m_Max: {x: 0.6981317, y: 0.6981317, z: 0.6981317} - m_Length: 0.07622479 - m_Type: 1 - - m_PreQ: {x: -0.5, y: -0.5, z: 0.5, w: 0.5} - m_PostQ: {x: -0.5, y: -0.5, z: 0.5, w: 0.5} - m_Sgn: {x: 1, y: 1, z: 1} - m_Limit: - m_Min: {x: -0.6981317, y: -0.6981317, z: -0.6981317} - m_Max: {x: 0.6981317, y: 0.6981317, z: 0.6981317} - m_Length: 0.07622479 - m_Type: 1 - - m_PreQ: {x: 0.7071068, y: -0, z: 0.7071068, w: 0} - m_PostQ: {x: 0.7071068, y: -0, z: 0.7071068, w: 0} - m_Sgn: {x: 1, y: 1, z: -1} - m_Limit: - m_Min: {x: 0, y: -0.34906584, z: -0.17453292} - m_Max: {x: 0, y: 0.34906584, z: 0.2617994} - m_Length: 0.1 - m_Type: 1 - - m_PreQ: {x: 0.7071068, y: -0, z: 0.7071068, w: 0} - m_PostQ: {x: 0.7071068, y: -0, z: 0.7071068, w: 0} - m_Sgn: {x: 1, y: -1, z: -1} - m_Limit: - m_Min: {x: 0, y: -0.34906584, z: -0.17453292} - m_Max: {x: 0, y: 0.34906584, z: 0.2617994} - m_Length: 0.1 - m_Type: 1 - - m_PreQ: {x: 0.00000011000067, y: 0.000000008199257, z: 0.99723357, w: -0.074332036} - m_PostQ: {x: 0.00000011000067, y: 0.000000008199257, z: 0.99723357, - w: -0.074332036} - m_Sgn: {x: 1, y: 1, z: -1} - m_Limit: - m_Min: {x: 0, y: -0.2617994, z: -0.2617994} - m_Max: {x: 0, y: 0.2617994, z: 0.5235988} - m_Length: 0.06754476 - m_Type: 1 - - m_PreQ: {x: 0.24421027, y: -0, z: 0.91123235, w: -0.33168858} - m_PostQ: {x: -0, y: -0, z: 1, w: 0} - m_Sgn: {x: 1, y: 1, z: -1} - m_Limit: - m_Min: {x: -1.5707964, y: -1.7453293, z: -1.0471976} - m_Max: {x: 1.5707964, y: 1.7453293, z: 1.7453293} - m_Length: 0.21410698 - m_Type: 1 - - m_PreQ: {x: 0.45499057, y: 0.54128516, z: 0.5412797, w: -0.45498413} - m_PostQ: {x: 0.00065649813, y: 0.70710653, z: 0.7071065, w: -0.0006480465} - m_Sgn: {x: 1, y: 1, z: -1} - m_Limit: - m_Min: {x: -1.5707964, y: 0, z: -1.3962634} - m_Max: {x: 1.5707964, y: 0, z: 1.3962634} - m_Length: 0.19947194 - m_Type: 1 - - m_PreQ: {x: 0.00092245237, y: -0.0000000055128093, z: 0.99999964, w: 0.0000059762515} - m_PostQ: {x: 0.00092245237, y: -0.0000000055128093, z: 0.99999964, w: 0.0000059762515} - m_Sgn: {x: 1, y: 1, z: -1} - m_Limit: - m_Min: {x: 0, y: -0.6981317, z: -1.3962634} - m_Max: {x: 0, y: 0.6981317, z: 1.3962634} - m_Length: 0.049867984 - m_Type: 1 - - m_PreQ: {x: 0.06662614, y: -0.0029315962, z: 0.9557585, w: -0.286493} - m_PostQ: {x: -0.010232162, y: -0, z: 0.99994767, w: 0} - m_Sgn: {x: -1, y: -1, z: -1} - m_Limit: - m_Min: {x: 0, y: -0.34906584, z: -0.87266463} - m_Max: {x: 0, y: 0.34906584, z: 0.87266463} - m_Length: 0.03091172 - m_Type: 1 - - m_PreQ: {x: -0.019170221, y: -0.0066514756, z: 0.9445533, w: -0.32773086} - m_PostQ: {x: -0.020289013, y: -0.00030891653, z: 0.99967825, w: -0.015220904} - m_Sgn: {x: -1, y: 1, z: -1} - m_Limit: - m_Min: {x: 0, y: 0, z: -0.7853982} - m_Max: {x: 0, y: 0, z: 0.7853982} - m_Length: 0.019033842 - m_Type: 1 - - m_PreQ: {x: -0.019170223, y: -0.0066514765, z: 0.9445534, w: -0.3277309} - m_PostQ: {x: -0.020289015, y: -0.00030891653, z: 0.9996783, w: -0.015220904} - m_Sgn: {x: -1, y: 1, z: -1} - m_Limit: - m_Min: {x: 0, y: 0, z: -0.7853982} - m_Max: {x: 0, y: 0, z: 0.7853982} - m_Length: 0.0107065365 - m_Type: 1 - - m_PreQ: {x: -0.07640189, y: 0.0000000730676, z: 0.9550267, w: -0.28650802} - m_PostQ: {x: 0.00000025502814, y: -0, z: 1, w: 0} - m_Sgn: {x: -1, y: 1, z: -1} - m_Limit: - m_Min: {x: 0, y: -0.34906584, z: -0.87266463} - m_Max: {x: 0, y: 0.34906584, z: 0.87266463} - m_Length: 0.02921474 - m_Type: 1 - - m_PreQ: {x: -0.00000063030984, y: -0.00000020799976, z: 0.94962984, - w: -0.31337413} - m_PostQ: {x: -0.00000066374264, y: 2.3496229e-12, z: 1, w: 0.0000035399607} - m_Sgn: {x: -1, y: 1, z: -1} - m_Limit: - m_Min: {x: 0, y: 0, z: -0.7853982} - m_Max: {x: 0, y: 0, z: 0.7853982} - m_Length: 0.016837656 - m_Type: 1 - - m_PreQ: {x: -0.00000063030984, y: -0.00000020799976, z: 0.94962984, - w: -0.31337413} - m_PostQ: {x: -0.00000066374264, y: 2.3496229e-12, z: 1, w: 0.0000035399607} - m_Sgn: {x: -1, y: 1, z: -1} - m_Limit: - m_Min: {x: 0, y: 0, z: -0.7853982} - m_Max: {x: 0, y: 0, z: 0.7853982} - m_Length: 0.009471182 - m_Type: 1 - - m_PreQ: {x: 0.03828507, y: -0.00000003520898, z: 0.95712364, w: -0.2871389} - m_PostQ: {x: 0.00000010819532, y: 1.8729965e-13, z: 1, w: -0.0000017311252} - m_Sgn: {x: -1, y: -1, z: -1} - m_Limit: - m_Min: {x: 0, y: -0.1308997, z: -0.87266463} - m_Max: {x: 0, y: 0.1308997, z: 0.87266463} - m_Length: 0.03443116 - m_Type: 1 - - m_PreQ: {x: -0.0000001665451, y: -0.00000005495937, z: 0.9496296, w: -0.31337482} - m_PostQ: {x: -0.00000017537903, y: 4.9212484e-13, z: 1, w: 0.0000028060645} - m_Sgn: {x: -1, y: 1, z: -1} - m_Limit: - m_Min: {x: 0, y: 0, z: -0.7853982} - m_Max: {x: 0, y: 0, z: 0.7853982} - m_Length: 0.021241367 - m_Type: 1 - - m_PreQ: {x: -0.0000001665451, y: -0.00000005495937, z: 0.9496296, w: -0.31337482} - m_PostQ: {x: -0.00000017537903, y: 4.9212484e-13, z: 1, w: 0.0000028060645} - m_Sgn: {x: -1, y: 1, z: -1} - m_Limit: - m_Min: {x: 0, y: 0, z: -0.7853982} - m_Max: {x: 0, y: 0, z: 0.7853982} - m_Length: 0.011948269 - m_Type: 1 - - m_PreQ: {x: -0.03828519, y: -0.00000006698185, z: 0.9571241, w: -0.28713724} - m_PostQ: {x: -0.00000023327468, y: -0, z: 1, w: 0} - m_Sgn: {x: -1, y: 1, z: -1} - m_Limit: - m_Min: {x: 0, y: -0.1308997, z: -0.87266463} - m_Max: {x: 0, y: 0.1308997, z: 0.87266463} - m_Length: 0.03193909 - m_Type: 1 - - m_PreQ: {x: -0, y: -0, z: 0.9496287, w: -0.3133775} - m_PostQ: {x: -0, y: -0, z: 1, w: 0} - m_Sgn: {x: -1, y: 1, z: -1} - m_Limit: - m_Min: {x: 0, y: 0, z: -0.7853982} - m_Max: {x: 0, y: 0, z: 0.7853982} - m_Length: 0.01843214 - m_Type: 1 - - m_PreQ: {x: -0, y: -0, z: 0.9496287, w: -0.3133775} - m_PostQ: {x: -0, y: -0, z: 1, w: 0} - m_Sgn: {x: -1, y: 1, z: -1} - m_Limit: - m_Min: {x: 0, y: 0, z: -0.7853982} - m_Max: {x: 0, y: 0, z: 0.7853982} - m_Length: 0.010368079 - m_Type: 1 - - m_PreQ: {x: 0.23622903, y: 0.64043754, z: 0.5931203, w: -0.42690066} - m_PostQ: {x: 0.23844662, y: 0.6541293, z: 0.66569006, w: -0.26854223} - m_Sgn: {x: -1, y: -1, z: 1} - m_Limit: - m_Min: {x: 0, y: -0.43633232, z: -0.34906584} - m_Max: {x: 0, y: 0.43633232, z: 0.34906584} - m_Length: 0.04429227 - m_Type: 1 - - m_PreQ: {x: 0.091492675, y: 0.6975384, z: 0.7011627, w: -0.11593179} - m_PostQ: {x: 0.22722527, y: 0.6612566, z: 0.6696034, w: -0.250479} - m_Sgn: {x: -1, y: 1, z: 1} - m_Limit: - m_Min: {x: 0, y: 0, z: -0.6981317} - m_Max: {x: 0, y: 0, z: 0.61086524} - m_Length: 0.027182685 - m_Type: 1 - - m_PreQ: {x: 0.091492675, y: 0.6975384, z: 0.7011627, w: -0.11593179} - m_PostQ: {x: 0.22722527, y: 0.6612566, z: 0.6696034, w: -0.250479} - m_Sgn: {x: -1, y: 1, z: 1} - m_Limit: - m_Min: {x: 0, y: 0, z: -0.6981317} - m_Max: {x: 0, y: 0, z: 0.61086524} - m_Length: 0.01529026 - m_Type: 1 - - m_PreQ: {x: -0.000000008199257, y: -0.00000011000067, z: -0.074332036, - w: 0.99723357} - m_PostQ: {x: -0.000000008199257, y: -0.00000011000067, z: -0.074332036, - w: 0.99723357} - m_Sgn: {x: 1, y: 1, z: 1} - m_Limit: - m_Min: {x: 0, y: -0.2617994, z: -0.2617994} - m_Max: {x: 0, y: 0.2617994, z: 0.5235988} - m_Length: 0.06754476 - m_Type: 1 - - m_PreQ: {x: -0, y: -0.24421027, z: -0.33168858, w: 0.91123235} - m_PostQ: {x: -0, y: -0, z: -0, w: 1} - m_Sgn: {x: -1, y: 1, z: 1} - m_Limit: - m_Min: {x: -1.5707964, y: -1.7453293, z: -1.0471976} - m_Max: {x: 1.5707964, y: 1.7453293, z: 1.7453293} - m_Length: 0.21410698 - m_Type: 1 - - m_PreQ: {x: 0.54128516, y: 0.45499057, z: 0.45498413, w: -0.5412797} - m_PostQ: {x: 0.70710653, y: 0.00065649813, z: 0.0006480465, w: -0.7071065} - m_Sgn: {x: -1, y: 1, z: 1} - m_Limit: - m_Min: {x: -1.5707964, y: 0, z: -1.3962634} - m_Max: {x: 1.5707964, y: 0, z: 1.3962634} - m_Length: 0.19947194 - m_Type: 1 - - m_PreQ: {x: 0.0000000055128093, y: -0.00092245237, z: 0.0000059762515, - w: 0.99999964} - m_PostQ: {x: 0.0000000055128093, y: -0.00092245237, z: 0.0000059762515, - w: 0.99999964} - m_Sgn: {x: 1, y: 1, z: 1} - m_Limit: - m_Min: {x: 0, y: -0.6981317, z: -1.3962634} - m_Max: {x: 0, y: 0.6981317, z: 1.3962634} - m_Length: 0.049867984 - m_Type: 1 - - m_PreQ: {x: -0.0029315962, y: 0.06662614, z: 0.286493, w: -0.9557585} - m_PostQ: {x: -0, y: 0.010232162, z: -0, w: 0.99994767} - m_Sgn: {x: 1, y: -1, z: 1} - m_Limit: - m_Min: {x: 0, y: -0.34906584, z: -0.87266463} - m_Max: {x: 0, y: 0.34906584, z: 0.87266463} - m_Length: 0.03091172 - m_Type: 1 - - m_PreQ: {x: -0.0066514756, y: -0.019170221, z: 0.32773086, w: -0.9445533} - m_PostQ: {x: 0.00030891653, y: 0.020289013, z: -0.015220904, w: 0.99967825} - m_Sgn: {x: 1, y: 1, z: 1} - m_Limit: - m_Min: {x: 0, y: 0, z: -0.7853982} - m_Max: {x: 0, y: 0, z: 0.7853982} - m_Length: 0.019033842 - m_Type: 1 - - m_PreQ: {x: -0.0066514765, y: -0.019170223, z: 0.3277309, w: -0.9445534} - m_PostQ: {x: 0.00030891655, y: 0.020289013, z: -0.015220906, w: 0.9996782} - m_Sgn: {x: 1, y: 1, z: 1} - m_Limit: - m_Min: {x: 0, y: 0, z: -0.7853982} - m_Max: {x: 0, y: 0, z: 0.7853982} - m_Length: 0.0107065365 - m_Type: 1 - - m_PreQ: {x: 0.0000000730676, y: -0.07640189, z: 0.28650802, w: -0.9550267} - m_PostQ: {x: 0, y: -0.00000025502814, z: -0, w: 1} - m_Sgn: {x: 1, y: 1, z: 1} - m_Limit: - m_Min: {x: 0, y: -0.34906584, z: -0.87266463} - m_Max: {x: 0, y: 0.34906584, z: 0.87266463} - m_Length: 0.02921474 - m_Type: 1 - - m_PreQ: {x: -0.00000020799976, y: -0.00000063030984, z: 0.31337413, - w: -0.94962984} - m_PostQ: {x: -2.3496229e-12, y: 0.00000066374264, z: 0.0000035399607, - w: 1} - m_Sgn: {x: 1, y: 1, z: 1} - m_Limit: - m_Min: {x: 0, y: 0, z: -0.7853982} - m_Max: {x: 0, y: 0, z: 0.7853982} - m_Length: 0.016837656 - m_Type: 1 - - m_PreQ: {x: -0.00000020799976, y: -0.00000063030984, z: 0.31337413, - w: -0.94962984} - m_PostQ: {x: -2.3496229e-12, y: 0.00000066374264, z: 0.0000035399607, - w: 1} - m_Sgn: {x: 1, y: 1, z: 1} - m_Limit: - m_Min: {x: 0, y: 0, z: -0.7853982} - m_Max: {x: 0, y: 0, z: 0.7853982} - m_Length: 0.009471182 - m_Type: 1 - - m_PreQ: {x: -0.00000003520898, y: 0.03828507, z: 0.2871389, w: -0.95712364} - m_PostQ: {x: -1.8729965e-13, y: -0.00000010819532, z: -0.0000017311252, - w: 1} - m_Sgn: {x: 1, y: -1, z: 1} - m_Limit: - m_Min: {x: 0, y: -0.1308997, z: -0.87266463} - m_Max: {x: 0, y: 0.1308997, z: 0.87266463} - m_Length: 0.03443116 - m_Type: 1 - - m_PreQ: {x: -0.00000005495937, y: -0.0000001665451, z: 0.31337482, w: -0.9496296} - m_PostQ: {x: -4.9212484e-13, y: 0.00000017537903, z: 0.0000028060645, - w: 1} - m_Sgn: {x: 1, y: 1, z: 1} - m_Limit: - m_Min: {x: 0, y: 0, z: -0.7853982} - m_Max: {x: 0, y: 0, z: 0.7853982} - m_Length: 0.021241367 - m_Type: 1 - - m_PreQ: {x: -0.00000005495937, y: -0.0000001665451, z: 0.31337482, w: -0.9496296} - m_PostQ: {x: -4.9212484e-13, y: 0.00000017537903, z: 0.0000028060645, - w: 1} - m_Sgn: {x: 1, y: 1, z: 1} - m_Limit: - m_Min: {x: 0, y: 0, z: -0.7853982} - m_Max: {x: 0, y: 0, z: 0.7853982} - m_Length: 0.011948269 - m_Type: 1 - - m_PreQ: {x: -0.00000006698185, y: -0.03828519, z: 0.28713724, w: -0.9571241} - m_PostQ: {x: -0, y: 0.00000023327468, z: -0, w: 1} - m_Sgn: {x: 1, y: 1, z: 1} - m_Limit: - m_Min: {x: 0, y: -0.1308997, z: -0.87266463} - m_Max: {x: 0, y: 0.1308997, z: 0.87266463} - m_Length: 0.03193909 - m_Type: 1 - - m_PreQ: {x: -0, y: -0, z: 0.3133775, w: -0.9496287} - m_PostQ: {x: -0, y: -0, z: -0, w: 1} - m_Sgn: {x: 1, y: 1, z: 1} - m_Limit: - m_Min: {x: 0, y: 0, z: -0.7853982} - m_Max: {x: 0, y: 0, z: 0.7853982} - m_Length: 0.01843214 - m_Type: 1 - - m_PreQ: {x: -0, y: -0, z: 0.3133775, w: -0.9496287} - m_PostQ: {x: -0, y: -0, z: -0, w: 1} - m_Sgn: {x: 1, y: 1, z: 1} - m_Limit: - m_Min: {x: 0, y: 0, z: -0.7853982} - m_Max: {x: 0, y: 0, z: 0.7853982} - m_Length: 0.010368079 - m_Type: 1 - - m_PreQ: {x: 0.64043754, y: 0.23622905, z: 0.42690068, w: -0.5931203} - m_PostQ: {x: -0.6541293, y: -0.23844662, z: -0.26854223, w: 0.66569006} - m_Sgn: {x: 1, y: -1, z: -1} - m_Limit: - m_Min: {x: 0, y: -0.43633232, z: -0.34906584} - m_Max: {x: 0, y: 0.43633232, z: 0.34906584} - m_Length: 0.04429227 - m_Type: 1 - - m_PreQ: {x: 0.69753844, y: 0.091492675, z: 0.11593179, w: -0.70116264} - m_PostQ: {x: -0.6612566, y: -0.22722527, z: -0.250479, w: 0.6696034} - m_Sgn: {x: 1, y: 1, z: -1} - m_Limit: - m_Min: {x: 0, y: 0, z: -0.6981317} - m_Max: {x: 0, y: 0, z: 0.61086524} - m_Length: 0.027182685 - m_Type: 1 - - m_PreQ: {x: 0.69753844, y: 0.091492675, z: 0.11593179, w: -0.70116264} - m_PostQ: {x: -0.6612566, y: -0.22722527, z: -0.250479, w: 0.6696034} - m_Sgn: {x: 1, y: 1, z: -1} - m_Limit: - m_Min: {x: 0, y: 0, z: -0.6981317} - m_Max: {x: 0, y: 0, z: 0.61086524} - m_Length: 0.01529026 - m_Type: 1 - - m_PreQ: {x: -0.60753185, y: 0.36180818, z: -0.60753185, w: 0.36180818} - m_PostQ: {x: -0.49316382, y: 0.506744, z: -0.4931638, w: 0.506744} - m_Sgn: {x: 1, y: 1, z: 1} - m_Limit: - m_Min: {x: -1.0471976, y: -1.0471976, z: -1.5707964} - m_Max: {x: 1.0471976, y: 1.0471976, z: 0.87266463} - m_Length: 0.3757874 - m_Type: 1 - - m_PreQ: {x: -0.042189814, y: 0.7058472, z: -0.04218977, w: 0.70584714} - m_PostQ: {x: -0.48599896, y: 0.5136196, z: -0.48599896, w: 0.51361954} - m_Sgn: {x: 1, y: 1, z: -1} - m_Limit: - m_Min: {x: -1.5707964, y: 0, z: -1.3962634} - m_Max: {x: 1.5707964, y: 0, z: 1.3962634} - m_Length: 0.4257563 - m_Type: 1 - - m_PreQ: {x: -0.5, y: 0.5, z: -0.5, w: 0.5} - m_PostQ: {x: -0.5, y: 0.5, z: -0.5, w: 0.5} - m_Sgn: {x: 1, y: 1, z: 1} - m_Limit: - m_Min: {x: 0, y: -0.5235988, z: -0.87266463} - m_Max: {x: 0, y: 0.5235988, z: 0.87266463} - m_Length: 0.09702313 - m_Type: 1 - - m_PreQ: {x: 0.7071068, y: -0, z: 0.7071068, w: 0} - m_PostQ: {x: 0.7071068, y: -0, z: 0.7071068, w: 0} - m_Sgn: {x: 1, y: 1, z: 1} - m_Limit: - m_Min: {x: 0, y: 0, z: -0.87266463} - m_Max: {x: 0, y: 0, z: 0.87266463} - m_Length: 0.028812509 - m_Type: 1 - - m_PreQ: {x: -0.60753185, y: 0.36180818, z: -0.60753185, w: 0.36180818} - m_PostQ: {x: -0.4931638, y: 0.506744, z: -0.49316382, w: 0.506744} - m_Sgn: {x: -1, y: -1, z: 1} - m_Limit: - m_Min: {x: -1.0471976, y: -1.0471976, z: -1.5707964} - m_Max: {x: 1.0471976, y: 1.0471976, z: 0.87266463} - m_Length: 0.3757874 - m_Type: 1 - - m_PreQ: {x: -0.042189814, y: 0.7058472, z: -0.04218977, w: 0.70584714} - m_PostQ: {x: -0.48599896, y: 0.5136196, z: -0.48599896, w: 0.51361954} - m_Sgn: {x: -1, y: 1, z: -1} - m_Limit: - m_Min: {x: -1.5707964, y: 0, z: -1.3962634} - m_Max: {x: 1.5707964, y: 0, z: 1.3962634} - m_Length: 0.4257563 - m_Type: 1 - - m_PreQ: {x: -0.5, y: 0.5, z: -0.5, w: 0.5} - m_PostQ: {x: -0.5, y: 0.5, z: -0.5, w: 0.5} - m_Sgn: {x: 1, y: -1, z: 1} - m_Limit: - m_Min: {x: 0, y: -0.5235988, z: -0.87266463} - m_Max: {x: 0, y: 0.5235988, z: 0.87266463} - m_Length: 0.09702313 - m_Type: 1 - - m_PreQ: {x: 0.7071068, y: -0, z: 0.7071068, w: 0} - m_PostQ: {x: 0.7071068, y: -0, z: 0.7071068, w: 0} - m_Sgn: {x: 1, y: 1, z: 1} - m_Limit: - m_Min: {x: 0, y: 0, z: -0.87266463} - m_Max: {x: 0, y: 0, z: 0.87266463} - m_Length: 0.028812509 - m_Type: 1 - m_SkeletonPose: - data: - m_X: - - t: {x: 0, y: 0, z: 0} - q: {x: 0, y: 0, z: 0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: 0.93650174, z: 0.0036878982} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 5.948816e-32, y: 0.050968885, z: 0.012252513} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -2.0149595e-17, y: 0.110621214, z: 0.0029853042} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 2.9083892e-17, y: 0.10536587, z: -0.014336677} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 9.127545e-17, y: 0.1294887, z: -0.03754457} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.000000005196695, y: 0.075594306, z: 0.009783598} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.014784996, y: 0.06125927, z: 0.022221765} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.014784982, y: 0.06125927, z: 0.022221772} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.020808386, y: 0.1034497, z: -0.02933467} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.06679835, y: -0.0100136995, z: 0.000000014901161} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.21410698, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.1994716, y: 0.0000023841858, z: 0.00036800653} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.060842276, y: 0.007224083, z: 0.019240757} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.030905247, y: 0, z: -0.0006325543} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.019009352, y: -0.0005789995, z: -0.0007722862} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.056770742, y: 0.007224083, z: -0.028558228} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.02921474, y: 0, z: 0.000000014901161} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.016837656, y: 0.00000011920929, z: -0.000000022351742} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.06167108, y: 0.007224202, z: 0.0020036474} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.03443116, y: -0.00000011920929, z: 0.000000007450581} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.021241367, y: 0.00000011920929, z: -0.000000007450581} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.060968697, y: 0.007224083, z: -0.013300542} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.03193909, y: 0, z: -0.000000014901161} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.01843214, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.0032740831, y: -0.0097965, z: 0.01562553} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.032867372, y: -0.0020189285, z: 0.029622039} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.02096486, y: -0.0009496212, z: 0.01727632} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.020808386, y: 0.1034497, z: -0.02933467} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.06679835, y: -0.0100136995, z: 0.000000014901161} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.21410698, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.1994716, y: 0.0000023841858, z: 0.00036800653} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.060842276, y: 0.007224083, z: 0.019240757} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.030905247, y: 0, z: -0.0006325543} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.019009352, y: -0.0005789995, z: -0.0007722862} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.056770742, y: 0.007224083, z: -0.028558228} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.02921474, y: 0, z: 0.000000014901161} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.016837656, y: 0.00000011920929, z: -0.000000022351742} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.06167108, y: 0.007224202, z: 0.0020036474} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.03443116, y: -0.00000011920929, z: 0.000000007450581} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.021241367, y: 0.00000011920929, z: -0.000000007450581} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.060968697, y: 0.007224083, z: -0.013300542} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.03193909, y: 0, z: -0.000000014901161} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.01843214, y: 0, z: 0} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.0032740831, y: -0.0097965, z: 0.01562553} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.032867372, y: -0.0020189285, z: 0.029622039} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.02096486, y: -0.0009496212, z: 0.01727632} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.07168864, y: -0.03872311, z: -0.0035527977} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.000000014901161, y: -0.3756488, z: -0.010205619} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: -0.4251067, z: -0.023510326} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: -0.0613662, z: 0.09755388} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0.07168864, y: -0.03872311, z: -0.0035527977} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: -0.000000014901161, y: -0.3756488, z: -0.010205619} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: -0.4251067, z: -0.023510326} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - - t: {x: 0, y: -0.0613662, z: 0.09755388} - q: {x: -0, y: -0, z: -0, w: 1} - s: {x: 1, y: 1, z: 1} - m_LeftHand: - data: - m_HandBoneIndex: 190000001a0000001b0000000d0000000e0000000f000000130000001400000015000000160000001700000018000000100000001100000012000000 - m_RightHand: - data: - m_HandBoneIndex: 2c0000002d0000002e000000200000002100000022000000260000002700000028000000290000002a0000002b000000230000002400000025000000 - m_HumanBoneIndex: 010000002f00000033000000300000003400000031000000350000000200000003000000040000000500000006000000090000001c0000000a0000001d0000000b0000001e0000000c0000001f00000032000000360000000700000008000000ffffffff - m_HumanBoneMass: - - 0.14545456 - - 0.12121213 - - 0.12121213 - - 0.048484854 - - 0.048484854 - - 0.009696971 - - 0.009696971 - - 0.030303033 - - 0.14545456 - - 0.14545456 - - 0.012121214 - - 0.048484854 - - 0.006060607 - - 0.006060607 - - 0.024242427 - - 0.024242427 - - 0.01818182 - - 0.01818182 - - 0.006060607 - - 0.006060607 - - 0.0024242427 - - 0.0024242427 - - 0 - - 0 - - 0 - m_Scale: 0.95183253 - m_ArmTwist: 0.5 - m_ForeArmTwist: 0.5 - m_UpperLegTwist: 0.5 - m_LegTwist: 0.5 - m_ArmStretch: 0.05 - m_LegStretch: 0.05 - m_FeetSpacing: 0 - m_HasLeftHand: 1 - m_HasRightHand: 1 - m_HasTDoF: 0 - m_HumanSkeletonIndexArray: 0400000005000000060000000700000008000000090000000a0000000b0000000c00000062000000630000006400000065000000660000006700000068000000690000006a0000006b0000006c0000006d0000006e0000006f00000070000000710000007200000073000000740000007b0000007c0000007d0000007e0000007f000000800000008100000082000000830000008400000085000000860000008700000088000000890000008a0000008b0000008c0000008d0000009a0000009b0000009c0000009d000000b1000000b2000000b3000000b4000000 - m_HumanSkeletonReverseIndexArray: ffffffffffffffffffffffffffffffff000000000100000002000000030000000400000005000000060000000700000008000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff090000000a0000000b0000000c0000000d0000000e0000000f000000100000001100000012000000130000001400000015000000160000001700000018000000190000001a0000001b000000ffffffffffffffffffffffffffffffffffffffffffffffff1c0000001d0000001e0000001f000000200000002100000022000000230000002400000025000000260000002700000028000000290000002a0000002b0000002c0000002d0000002e000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2f000000300000003100000032000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff33000000340000003500000036000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - m_RootMotionBoneIndex: -1 - m_RootMotionBoneX: - t: {x: 0, y: 0, z: 0} - q: {x: 0, y: 0, z: 0, w: 1} - s: {x: 1, y: 1, z: 1} - m_RootMotionSkeleton: - data: - m_Node: [] - m_ID: - m_AxesArray: [] - m_RootMotionSkeletonPose: - data: - m_X: [] - m_RootMotionSkeletonIndexArray: - m_TOS: - 285007101: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_15 - 2128665898: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_04 - 1906816105: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_01/J_Sec_Hair2_01/J_Sec_Hair3_01/J_Sec_Hair4_01/J_Sec_Hair5_01/J_Sec_Hair6_01 - 491299123: Root/J_Bip_C_Hips/J_Bip_R_UpperLeg/J_Sec_R_SkirtBack0_01 - 524182156: Root/J_Bip_C_Hips/J_Bip_R_UpperLeg/J_Sec_R_SkirtBack0_01/J_Sec_R_SkirtBack1_01 - 3980312633: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_16/J_Sec_Hair2_16/J_Sec_Hair3_16 - 1744563307: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_14 - 1838702072: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_L_Clavicle/J_Bip_L_UpperArm/J_Bip_L_LowerArm/J_Bip_L_Hand/J_Bip_L_Index1/J_Bip_L_Index2 - 1685203202: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_13/J_Sec_Hair2_13/J_Sec_Hair3_13/J_Sec_Hair3_13_end - 3287185488: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_03/J_Sec_Hair2_03/J_Sec_Hair3_03/J_Sec_Hair4_03/J_Sec_Hair5_03 - 2070622203: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_18/J_Sec_Hair2_18/J_Sec_Hair3_18 - 2466280194: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_R_Clavicle/J_Bip_R_UpperArm/J_Bip_R_LowerArm/J_Bip_R_Hand/J_Bip_R_Little1/J_Bip_R_Little2 - 3866818490: Root/J_Bip_C_Hips/J_Bip_R_UpperLeg/J_Bip_R_LowerLeg - 2933737937: Root/J_Bip_C_Hips/J_Bip_L_UpperLeg/J_Sec_L_SkirtBack0_01/J_Sec_L_SkirtBack1_01 - 1884987545: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_R_Clavicle/J_Bip_R_UpperArm/J_Bip_R_LowerArm/J_Bip_R_Hand/J_Bip_R_Ring1/J_Bip_R_Ring2 - 1946302910: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_R_Clavicle/J_Bip_R_UpperArm/J_Bip_R_LowerArm/J_Bip_R_Hand/J_Bip_R_Ring1 - 458454037: secondary - 3037872453: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_05/J_Sec_Hair2_05 - 2078246882: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_R_Clavicle/J_Bip_R_UpperArm/J_Bip_R_LowerArm/J_Bip_R_Hand/J_Bip_R_Index1/J_Bip_R_Index2 - 969055499: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_R_Clavicle/J_Bip_R_UpperArm/J_Bip_R_LowerArm/J_Bip_R_Hand/J_Bip_R_Index1 - 3584721369: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_09/J_Sec_Hair2_09/J_Sec_Hair3_09/J_Sec_Hair3_09_end - 903867318: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_R_Clavicle/J_Bip_R_UpperArm/J_Bip_R_LowerArm/J_Bip_R_Hand/J_Bip_R_Middle1/J_Bip_R_Middle2 - 266374548: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_03/J_Sec_Hair2_03 - 3897213606: Root/J_Bip_C_Hips/J_Bip_L_UpperLeg/J_Sec_L_SkirtFront_01/J_Sec_L_SkirtFront_end_01/J_Sec_L_SkirtFront_end_01_end - 290824833: Root/J_Bip_C_Hips/J_Bip_R_UpperLeg/J_Sec_R_SkirtFront0_01/J_Sec_R_SkirtFront1_01 - 2038769636: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_L_Clavicle/J_Bip_L_UpperArm/J_Bip_L_LowerArm/J_Bip_L_Hand - 2010789325: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_12/J_Sec_Hair2_12/J_Sec_Hair3_12/J_Sec_Hair3_12_end - 590537793: Root/J_Bip_C_Hips/J_Sec_L_SkirtSide0_01 - 1472109707: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_05/J_Sec_Hair2_05/J_Sec_Hair3_05/J_Sec_Hair4_05 - 1565223639: Root/J_Bip_C_Hips/J_Bip_R_UpperLeg/J_Sec_R_SkirtBack0_01/J_Sec_R_SkirtBack1_01/J_Sec_R_SkirtBack2_01/J_Sec_R_SkirtBack2_end_01/J_Sec_R_SkirtBack2_end_01_end - 1032707778: Root/J_Bip_C_Hips/J_Bip_R_UpperLeg/J_Sec_R_SkirtBack0_01/J_Sec_R_SkirtBack1_01/J_Sec_R_SkirtBack2_01 - 1969490009: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_L_Clavicle/J_Bip_L_UpperArm/J_Bip_L_LowerArm/J_Sec_L_LowerSleeve_01/J_Sec_L_LowerSleeve_end_01 - 2140979062: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_L_Clavicle - 3434087405: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_L_Clavicle/J_Bip_L_UpperArm/J_Bip_L_LowerArm/J_Bip_L_Hand/J_Bip_L_Little1/J_Bip_L_Little2/J_Bip_L_Little3 - 5349783: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_09 - 2999517770: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_R_Clavicle/J_Bip_R_UpperArm/J_Bip_R_LowerArm/J_Bip_R_Hand/J_Sec_R_TipSleeve_01 - 850538956: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_06/J_Sec_Hair2_06/J_Sec_Hair3_06/J_Sec_Hair3_06_end - 3821133455: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Sec_R_Bust1 - 1436997367: Root/J_Bip_C_Hips/J_Bip_L_UpperLeg/J_Sec_L_SkirtFront0_01 - 1126305948: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_11/J_Sec_Hair2_11/J_Sec_Hair3_11/J_Sec_Hair3_11_end - 3086739283: Root/J_Bip_C_Hips/J_Bip_R_UpperLeg/J_Sec_R_SkirtFront0_01/J_Sec_R_SkirtFront1_01/J_Sec_R_SkirtFront2_01/J_Sec_R_SkirtFront2_end_01 - 3172097437: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_03/J_Sec_Hair2_03/J_Sec_Hair3_03 - 877093443: Root/J_Bip_C_Hips/J_Bip_L_UpperLeg/J_Sec_L_SkirtFront0_01/J_Sec_L_SkirtFront1_01/J_Sec_L_SkirtFront2_01/J_Sec_L_SkirtFront2_end_01/J_Sec_L_SkirtFront2_end_01_end - 7719076: Root/J_Bip_C_Hips/J_Sec_L_SkirtSide0_01/J_Sec_L_SkirtSide1_01/J_Sec_L_SkirtSide2_01 - 3654931018: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_L_Clavicle/J_Bip_L_UpperArm/J_Bip_L_LowerArm/J_Bip_L_Hand/J_Bip_L_Index1 - 254671235: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_05/J_Sec_Hair2_05/J_Sec_Hair3_05/J_Sec_Hair4_05/J_Sec_Hair4_05_end - 1107427080: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_17/J_Sec_Hair2_17 - 1467314277: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_R_Clavicle/J_Bip_R_UpperArm/J_Bip_R_LowerArm/J_Bip_R_Hand/J_Bip_R_Middle1/J_Bip_R_Middle2/J_Bip_R_Middle3 - 2992426631: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_L_Clavicle/J_Bip_L_UpperArm/J_Bip_L_LowerArm/J_Bip_L_Hand/J_Sec_L_TipSleeve_01/J_Sec_L_TipSleeve_end_01/J_Sec_L_TipSleeve_end_01_end - 3530924597: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_13/J_Sec_Hair2_13/J_Sec_Hair3_13 - 424317142: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_19 - 3131336372: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_L_Clavicle/J_Bip_L_UpperArm/J_Bip_L_LowerArm/J_Bip_L_Hand/J_Bip_L_Ring1 - 4187000473: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_R_Clavicle/J_Bip_R_UpperArm/J_Bip_R_LowerArm/J_Bip_R_Hand/J_Sec_R_TipSleeve_01/J_Sec_R_TipSleeve_end_01/J_Sec_R_TipSleeve_end_01_end - 189468347: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_L_Clavicle/J_Bip_L_UpperArm/J_Bip_L_LowerArm - 924417340: Root/J_Bip_C_Hips/J_Sec_L_SkirtSide0_01/J_Sec_L_SkirtSide1_01/J_Sec_L_SkirtSide2_01/J_Sec_L_SkirtSide2_end_01 - 4176688089: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_11/J_Sec_Hair2_11 - 3115188551: Root/J_Bip_C_Hips/J_Bip_L_UpperLeg/J_Sec_L_SkirtBack0_01/J_Sec_L_SkirtBack1_01/J_Sec_L_SkirtBack2_01/J_Sec_L_SkirtBack2_end_01 - 1427115262: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head - 3599707283: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_02/J_Sec_Hair2_02 - 956660241: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_L_Clavicle/J_Bip_L_UpperArm/J_Bip_L_LowerArm/J_Sec_L_LowerSleeve_01/J_Sec_L_LowerSleeve_end_01/J_Sec_L_LowerSleeve_end_01_end - 2151224464: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_R_Clavicle/J_Bip_R_UpperArm/J_Bip_R_LowerArm/J_Bip_R_Hand/J_Bip_R_Middle1 - 4289881849: Root/J_Bip_C_Hips/J_Bip_L_UpperLeg/J_Bip_L_LowerLeg - 1716439515: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_01/J_Sec_Hair2_01 - 2603278172: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_01/J_Sec_Hair2_01/J_Sec_Hair3_01/J_Sec_Hair4_01 - 3890842768: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_07 - 4063099956: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_L_Clavicle/J_Bip_L_UpperArm/J_Bip_L_LowerArm/J_Bip_L_Hand/J_Bip_L_Index1/J_Bip_L_Index2/J_Bip_L_Index3 - 282623383: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_03/J_Sec_Hair2_03/J_Sec_Hair3_03/J_Sec_Hair4_03 - 1101236980: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_R_Clavicle/J_Bip_R_UpperArm/J_Bip_R_LowerArm/J_Bip_R_Hand/J_Bip_R_Thumb1/J_Bip_R_Thumb2/J_Bip_R_Thumb3 - 1019596327: Hair - 3379808368: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_01/J_Sec_Hair2_01/J_Sec_Hair3_01 - 1151271504: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_03/J_Sec_Hair2_03/J_Sec_Hair3_03/J_Sec_Hair4_03/J_Sec_Hair5_03/J_Sec_Hair5_03_end - 1604495134: Root/J_Bip_C_Hips/J_Bip_L_UpperLeg/J_Sec_L_SkirtBack0_01/J_Sec_L_SkirtBack1_01/J_Sec_L_SkirtBack2_01 - 3511946796: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_R_Clavicle/J_Bip_R_UpperArm - 3945530412: Root/J_Bip_C_Hips/J_Bip_L_UpperLeg/J_Sec_L_SkirtSide_01/J_Sec_L_SkirtSide_end_01/J_Sec_L_SkirtSide_end_01_end - 3766765705: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_03 - 2811997713: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_L_Clavicle/J_Bip_L_UpperArm/J_Bip_L_LowerArm/J_Bip_L_Hand/J_Bip_L_Middle1/J_Bip_L_Middle2/J_Bip_L_Middle3 - 3703309578: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_07/J_Sec_Hair2_07 - 2002161921: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_08 - 2593222804: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_L_Clavicle/J_Bip_L_UpperArm/J_Bip_L_LowerArm/J_Bip_L_Hand/J_Bip_L_Thumb1/J_Bip_L_Thumb2 - 3789305879: Root/J_Bip_C_Hips/J_Bip_R_UpperLeg/J_Sec_R_SkirtFront_01/J_Sec_R_SkirtFront_end_01 - 1703018608: Root/J_Bip_C_Hips/J_Bip_L_UpperLeg/J_Sec_L_SkirtSide_01/J_Sec_L_SkirtSide_end_01 - 3066451557: Root - 3064108098: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_R_Clavicle/J_Bip_R_UpperArm/J_Bip_R_LowerArm/J_Bip_R_Hand/J_Bip_R_Ring1/J_Bip_R_Ring2/J_Bip_R_Ring3 - 381148985: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_R_Clavicle/J_Bip_R_UpperArm/J_Bip_R_LowerArm/J_Bip_R_Hand/J_Bip_R_Little1 - 336384083: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_08/J_Sec_Hair2_08/J_Sec_Hair3_08 - 1351224403: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_10/J_Sec_Hair2_10/J_Sec_Hair3_10/J_Sec_Hair3_10_end - 2815444144: Root/J_Bip_C_Hips/J_Bip_R_UpperLeg/J_Sec_R_SkirtSide_01/J_Sec_R_SkirtSide_end_01 - 174576974: Root/J_Bip_C_Hips/J_Bip_R_UpperLeg/J_Sec_R_SkirtBack_01/J_Sec_R_SkirtBack_end_01/J_Sec_R_SkirtBack_end_01_end - 395385060: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_11 - 985907531: Root/J_Bip_C_Hips/J_Bip_L_UpperLeg/J_Sec_L_SkirtBack_01/J_Sec_L_SkirtBack_end_01/J_Sec_L_SkirtBack_end_01_end - 3157118962: Root/J_Bip_C_Hips/J_Bip_L_UpperLeg/J_Sec_L_SkirtFront0_01/J_Sec_L_SkirtFront1_01/J_Sec_L_SkirtFront2_01/J_Sec_L_SkirtFront2_end_01 - 3706314754: Root/J_Bip_C_Hips/J_Sec_R_SkirtSide0_01/J_Sec_R_SkirtSide1_01/J_Sec_R_SkirtSide2_01/J_Sec_R_SkirtSide2_end_01 - 3209342262: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_L_Clavicle/J_Bip_L_UpperArm/J_Bip_L_LowerArm/J_Bip_L_Hand/J_Bip_L_Thumb1 - 1259307586: Root/J_Bip_C_Hips/J_Bip_L_UpperLeg/J_Sec_L_SkirtSide_01 - 2073732236: Body - 2362878606: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_R_Clavicle/J_Bip_R_UpperArm/J_Bip_R_LowerArm/J_Bip_R_Hand/J_Bip_R_Thumb1/J_Bip_R_Thumb2 - 2190742565: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_L_Clavicle/J_Bip_L_UpperArm/J_Bip_L_LowerArm/J_Bip_L_Hand/J_Sec_L_TipSleeve_01 - 302943063: Root/J_Bip_C_Hips/J_Bip_R_UpperLeg - 4277321169: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_17 - 2186887057: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_06/J_Sec_Hair2_06/J_Sec_Hair3_06 - 1684056571: Root/J_Bip_C_Hips/J_Bip_R_UpperLeg/J_Sec_R_SkirtFront_01 - 2164424409: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_L_Clavicle/J_Bip_L_UpperArm/J_Bip_L_LowerArm/J_Bip_L_Hand/J_Bip_L_Middle1 - 1310819377: Root/J_Bip_C_Hips/J_Sec_R_SkirtSide0_01/J_Sec_R_SkirtSide1_01/J_Sec_R_SkirtSide2_01/J_Sec_R_SkirtSide2_end_01/J_Sec_R_SkirtSide2_end_01_end - 1322720258: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_15/J_Sec_Hair2_15/J_Sec_Hair3_15 - 406077639: Root/J_Bip_C_Hips/J_Sec_L_SkirtSide0_01/J_Sec_L_SkirtSide1_01/J_Sec_L_SkirtSide2_01/J_Sec_L_SkirtSide2_end_01/J_Sec_L_SkirtSide2_end_01_end - 3731027684: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_19/J_Sec_Hair2_19/J_Sec_Hair3_19/J_Sec_Hair3_19_end - 2907216216: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Sec_R_Bust1/J_Sec_R_Bust2 - 2438821782: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_13/J_Sec_Hair2_13 - 2067268032: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_R_Clavicle/J_Bip_R_UpperArm/J_Bip_R_LowerArm/J_Bip_R_Hand/J_Sec_R_TipSleeve_01/J_Sec_R_TipSleeve_end_01 - 565240746: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_05/J_Sec_Hair2_05/J_Sec_Hair3_05 - 226648992: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_15/J_Sec_Hair2_15/J_Sec_Hair3_15/J_Sec_Hair3_15_end - 2624567210: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_04/J_Sec_Hair2_04/J_Sec_Hair3_04/J_Sec_Hair4_04/J_Sec_Hair4_04_end - 188315585: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_R_Clavicle/J_Bip_R_UpperArm/J_Bip_R_LowerArm/J_Sec_R_LowerSleeve_01/J_Sec_R_LowerSleeve_end_01 - 2541975583: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_02 - 2412648420: Root/J_Bip_C_Hips/J_Bip_L_UpperLeg/J_Bip_L_LowerLeg/J_Bip_L_Foot - 959107078: Root/J_Bip_C_Hips/J_Bip_L_UpperLeg/J_Sec_L_SkirtBack0_01/J_Sec_L_SkirtBack1_01/J_Sec_L_SkirtBack2_01/J_Sec_L_SkirtBack2_end_01/J_Sec_L_SkirtBack2_end_01_end - 2235245732: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_19/J_Sec_Hair2_19 - 873086070: Root/J_Bip_C_Hips/J_Bip_L_UpperLeg/J_Sec_L_SkirtBack_01 - 1211291281: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_12/J_Sec_Hair2_12 - 2244922043: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_R_Clavicle/J_Bip_R_UpperArm/J_Bip_R_LowerArm/J_Sec_R_LowerSleeve_01/J_Sec_R_LowerSleeve_end_01/J_Sec_R_LowerSleeve_end_01_end - 3422213228: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_02/J_Sec_Hair2_02/J_Sec_Hair3_02/J_Sec_Hair4_02/J_Sec_Hair5_02/J_Sec_Hair5_02_end - 2965458551: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_R_Clavicle/J_Bip_R_UpperArm/J_Bip_R_LowerArm/J_Bip_R_Hand - 3558881564: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Sec_L_Bust1 - 3097079762: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_02/J_Sec_Hair2_02/J_Sec_Hair3_02/J_Sec_Hair4_02 - 2499231161: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Sec_L_Bust1/J_Sec_L_Bust2/J_Sec_L_Bust2_end - 4072675904: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_14/J_Sec_Hair2_14 - 1692557707: Root/J_Bip_C_Hips/J_Bip_R_UpperLeg/J_Sec_R_SkirtFront0_01/J_Sec_R_SkirtFront1_01/J_Sec_R_SkirtFront2_01/J_Sec_R_SkirtFront2_end_01/J_Sec_R_SkirtFront2_end_01_end - 3270082465: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_08/J_Sec_Hair2_08 - 2054382403: Root/J_Bip_C_Hips/J_Bip_L_UpperLeg/J_Sec_L_SkirtFront_01 - 563909342: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_10/J_Sec_Hair2_10 - 1190858285: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_R_Clavicle - 1174341030: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_01/J_Sec_Hair2_01/J_Sec_Hair3_01/J_Sec_Hair4_01/J_Sec_Hair5_01/J_Sec_Hair6_01/J_Sec_Hair6_01_end - 2136880292: Root/J_Bip_C_Hips - 461823654: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_09/J_Sec_Hair2_09 - 573333733: Root/J_Bip_C_Hips/J_Bip_L_UpperLeg/J_Sec_L_SkirtFront0_01/J_Sec_L_SkirtFront1_01 - 1820188738: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_04/J_Sec_Hair2_04 - 4130908796: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_04/J_Sec_Hair2_04/J_Sec_Hair3_04 - 2900583981: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_19/J_Sec_Hair2_19/J_Sec_Hair3_19 - 2770785369: Face - 3197178968: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_L_Clavicle/J_Bip_L_UpperArm/J_Bip_L_LowerArm/J_Bip_L_Hand/J_Bip_L_Middle1/J_Bip_L_Middle2 - 640871652: Root/J_Bip_C_Hips/J_Bip_R_UpperLeg/J_Sec_R_SkirtBack_01 - 3322060054: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_08/J_Sec_Hair2_08/J_Sec_Hair3_08/J_Sec_Hair3_08_end - 166194620: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_05 - 1850581056: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_18 - 3507665317: Root/J_Bip_C_Hips/J_Sec_R_SkirtSide0_01/J_Sec_R_SkirtSide1_01/J_Sec_R_SkirtSide2_01 - 0: - 2416115331: Root/J_Bip_C_Hips/J_Bip_R_UpperLeg/J_Sec_R_SkirtFront0_01 - 100527075: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_12/J_Sec_Hair2_12/J_Sec_Hair3_12 - 3011920101: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_01/J_Sec_Hair2_01/J_Sec_Hair3_01/J_Sec_Hair4_01/J_Sec_Hair5_01 - 317819110: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest - 1211440975: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_L_Clavicle/J_Bip_L_UpperArm/J_Bip_L_LowerArm/J_Bip_L_Hand/J_Bip_L_Ring1/J_Bip_L_Ring2/J_Bip_L_Ring3 - 395097456: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_L_Clavicle/J_Bip_L_UpperArm/J_Bip_L_LowerArm/J_Bip_L_Hand/J_Bip_L_Little1 - 1736610682: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_L_Clavicle/J_Bip_L_UpperArm/J_Bip_L_LowerArm/J_Sec_L_LowerSleeve_01 - 1496797904: Root/J_Bip_C_Hips/J_Bip_R_UpperLeg/J_Sec_R_SkirtSide_01 - 56322955: Root/J_Bip_C_Hips/J_Bip_L_UpperLeg/J_Sec_L_SkirtBack0_01 - 2180915214: Root/J_Bip_C_Hips/J_Bip_R_UpperLeg/J_Bip_R_LowerLeg/J_Bip_R_Foot - 1233944864: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_R_Clavicle/J_Bip_R_UpperArm/J_Bip_R_LowerArm/J_Sec_R_LowerSleeve_01 - 375580458: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_02/J_Sec_Hair2_02/J_Sec_Hair3_02/J_Sec_Hair4_02/J_Sec_Hair5_02 - 3452627499: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_18/J_Sec_Hair2_18/J_Sec_Hair3_18/J_Sec_Hair3_18_end - 3138913460: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Adj_L_FaceEye - 1620453490: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_10 - 1549043107: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_18/J_Sec_Hair2_18 - 1351590373: Root/J_Bip_C_Hips/J_Bip_R_UpperLeg/J_Sec_R_SkirtBack0_01/J_Sec_R_SkirtBack1_01/J_Sec_R_SkirtBack2_01/J_Sec_R_SkirtBack2_end_01 - 1439790663: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_07/J_Sec_Hair2_07/J_Sec_Hair3_07 - 3743063383: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Adj_R_FaceEye - 985041391: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_17/J_Sec_Hair2_17/J_Sec_Hair3_17 - 1012850073: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_R_Clavicle/J_Bip_R_UpperArm/J_Bip_R_LowerArm/J_Bip_R_Hand/J_Bip_R_Little1/J_Bip_R_Little2/J_Bip_R_Little3 - 1788482635: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_02/J_Sec_Hair2_02/J_Sec_Hair3_02 - 964314865: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_16/J_Sec_Hair2_16/J_Sec_Hair3_16/J_Sec_Hair3_16_end - 4003749906: Root/J_Bip_C_Hips/J_Bip_R_UpperLeg/J_Bip_R_LowerLeg/J_Bip_R_Foot/J_Bip_R_ToeBase - 3683127337: Root/J_Bip_C_Hips/J_Bip_R_UpperLeg/J_Sec_R_SkirtSide_01/J_Sec_R_SkirtSide_end_01/J_Sec_R_SkirtSide_end_01_end - 1584097983: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_L_Clavicle/J_Bip_L_UpperArm/J_Bip_L_LowerArm/J_Bip_L_Hand/J_Bip_L_Thumb1/J_Bip_L_Thumb2/J_Bip_L_Thumb3 - 42098839: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Sec_L_Bust1/J_Sec_L_Bust2 - 3044949467: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest - 889106634: Root/J_Bip_C_Hips/J_Bip_R_UpperLeg/J_Sec_R_SkirtFront_01/J_Sec_R_SkirtFront_end_01/J_Sec_R_SkirtFront_end_01_end - 3573454745: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_L_Clavicle/J_Bip_L_UpperArm/J_Bip_L_LowerArm/J_Bip_L_Hand/J_Sec_L_TipSleeve_01/J_Sec_L_TipSleeve_end_01 - 487207264: Root/J_Bip_C_Hips/J_Bip_L_UpperLeg/J_Sec_L_SkirtFront0_01/J_Sec_L_SkirtFront1_01/J_Sec_L_SkirtFront2_01 - 555363587: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_07/J_Sec_Hair2_07/J_Sec_Hair3_07/J_Sec_Hair3_07_end - 2573161940: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_14/J_Sec_Hair2_14/J_Sec_Hair3_14 - 563793185: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Sec_R_Bust1/J_Sec_R_Bust2/J_Sec_R_Bust2_end - 1599201911: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_R_Clavicle/J_Bip_R_UpperArm/J_Bip_R_LowerArm/J_Bip_R_Hand/J_Bip_R_Thumb1 - 2314571079: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_16 - 3280247173: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_09/J_Sec_Hair2_09/J_Sec_Hair3_09 - 728316428: Root/J_Bip_C_Hips/J_Bip_L_UpperLeg - 305941538: Root/J_Bip_C_Hips/J_Sec_L_SkirtSide0_01/J_Sec_L_SkirtSide1_01 - 4294921934: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_04/J_Sec_Hair2_04/J_Sec_Hair3_04/J_Sec_Hair4_04 - 3747768667: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_L_Clavicle/J_Bip_L_UpperArm/J_Bip_L_LowerArm/J_Bip_L_Hand/J_Bip_L_Ring1/J_Bip_L_Ring2 - 506101615: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_14/J_Sec_Hair2_14/J_Sec_Hair3_14/J_Sec_Hair3_14_end - 407801068: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_L_Clavicle/J_Bip_L_UpperArm/J_Bip_L_LowerArm/J_Bip_L_Hand/J_Bip_L_Little1/J_Bip_L_Little2 - 2874361606: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_R_Clavicle/J_Bip_R_UpperArm/J_Bip_R_LowerArm - 2045097404: Root/J_Bip_C_Hips/J_Bip_L_UpperLeg/J_Sec_L_SkirtBack_01/J_Sec_L_SkirtBack_end_01 - 630613340: Root/J_Bip_C_Hips/J_Bip_L_UpperLeg/J_Sec_L_SkirtFront_01/J_Sec_L_SkirtFront_end_01 - 2786342872: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_11/J_Sec_Hair2_11/J_Sec_Hair3_11 - 718428734: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_17/J_Sec_Hair2_17/J_Sec_Hair3_17/J_Sec_Hair3_17_end - 2317575035: Root/J_Bip_C_Hips/J_Sec_R_SkirtSide0_01 - 732937031: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_15/J_Sec_Hair2_15 - 490718561: Root/J_Bip_C_Hips/J_Bip_L_UpperLeg/J_Bip_L_LowerLeg/J_Bip_L_Foot/J_Bip_L_ToeBase - 4187978184: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_13 - 1777957277: Root/J_Bip_C_Hips/J_Bip_C_Spine - 1906081294: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_10/J_Sec_Hair2_10/J_Sec_Hair3_10 - 2607701519: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_16/J_Sec_Hair2_16 - 3365707631: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_L_Clavicle/J_Bip_L_UpperArm - 2431564806: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_06 - 2392344926: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_12 - 3991215231: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_R_Clavicle/J_Bip_R_UpperArm/J_Bip_R_LowerArm/J_Bip_R_Hand/J_Bip_R_Index1/J_Bip_R_Index2/J_Bip_R_Index3 - 243935653: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_01 - 677580999: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck - 97756173: Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head/J_Sec_Hair1_06/J_Sec_Hair2_06 - 2958663727: Root/J_Bip_C_Hips/J_Bip_R_UpperLeg/J_Sec_R_SkirtFront0_01/J_Sec_R_SkirtFront1_01/J_Sec_R_SkirtFront2_01 - 3149394300: Root/J_Bip_C_Hips/J_Bip_R_UpperLeg/J_Sec_R_SkirtBack_01/J_Sec_R_SkirtBack_end_01 - 2977252379: Root/J_Bip_C_Hips/J_Sec_R_SkirtSide0_01/J_Sec_R_SkirtSide1_01 - m_HumanDescription: - serializedVersion: 3 - m_Human: - - m_BoneName: J_Bip_C_Hips - m_HumanName: Hips - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_L_UpperLeg - m_HumanName: LeftUpperLeg - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_R_UpperLeg - m_HumanName: RightUpperLeg - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_L_LowerLeg - m_HumanName: LeftLowerLeg - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_R_LowerLeg - m_HumanName: RightLowerLeg - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_L_Foot - m_HumanName: LeftFoot - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_R_Foot - m_HumanName: RightFoot - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_L_ToeBase - m_HumanName: LeftToes - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_R_ToeBase - m_HumanName: RightToes - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_C_Spine - m_HumanName: Spine - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_C_Chest - m_HumanName: Chest - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_C_UpperChest - m_HumanName: UpperChest - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_C_Neck - m_HumanName: Neck - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_C_Head - m_HumanName: Head - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Adj_L_FaceEye - m_HumanName: LeftEye - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Adj_R_FaceEye - m_HumanName: RightEye - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_L_Clavicle - m_HumanName: LeftShoulder - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_R_Clavicle - m_HumanName: RightShoulder - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_L_UpperArm - m_HumanName: LeftUpperArm - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_R_UpperArm - m_HumanName: RightUpperArm - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_L_LowerArm - m_HumanName: LeftLowerArm - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_R_LowerArm - m_HumanName: RightLowerArm - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_L_Hand - m_HumanName: LeftHand - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_R_Hand - m_HumanName: RightHand - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_L_Thumb1 - m_HumanName: Left Thumb Proximal - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_L_Thumb2 - m_HumanName: Left Thumb Intermediate - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_L_Thumb3 - m_HumanName: Left Thumb Distal - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_L_Index1 - m_HumanName: Left Index Proximal - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_L_Index2 - m_HumanName: Left Index Intermediate - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_L_Index3 - m_HumanName: Left Index Distal - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_L_Middle1 - m_HumanName: Left Middle Proximal - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_L_Middle2 - m_HumanName: Left Middle Intermediate - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_L_Middle3 - m_HumanName: Left Middle Distal - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_L_Ring1 - m_HumanName: Left Ring Proximal - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_L_Ring2 - m_HumanName: Left Ring Intermediate - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_L_Ring3 - m_HumanName: Left Ring Distal - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_L_Little1 - m_HumanName: Left Little Proximal - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_L_Little2 - m_HumanName: Left Little Intermediate - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_L_Little3 - m_HumanName: Left Little Distal - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_R_Thumb1 - m_HumanName: Right Thumb Proximal - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_R_Thumb2 - m_HumanName: Right Thumb Intermediate - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_R_Thumb3 - m_HumanName: Right Thumb Distal - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_R_Index1 - m_HumanName: Right Index Proximal - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_R_Index2 - m_HumanName: Right Index Intermediate - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_R_Index3 - m_HumanName: Right Index Distal - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_R_Middle1 - m_HumanName: Right Middle Proximal - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_R_Middle2 - m_HumanName: Right Middle Intermediate - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_R_Middle3 - m_HumanName: Right Middle Distal - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_R_Ring1 - m_HumanName: Right Ring Proximal - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_R_Ring2 - m_HumanName: Right Ring Intermediate - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_R_Ring3 - m_HumanName: Right Ring Distal - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_R_Little1 - m_HumanName: Right Little Proximal - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_R_Little2 - m_HumanName: Right Little Intermediate - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - - m_BoneName: J_Bip_R_Little3 - m_HumanName: Right Little Distal - m_Limit: - m_Min: {x: 0, y: 0, z: 0} - m_Max: {x: 0, y: 0, z: 0} - m_Value: {x: 0, y: 0, z: 0} - m_Length: 0 - m_Modified: 0 - m_Skeleton: - - m_Name: Female1_withVrmIK - m_ParentName: - m_Position: {x: 0, y: 0, z: 0} - m_Rotation: {x: 0, y: 0, z: 0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: Body - m_ParentName: - m_Position: {x: 0, y: 0, z: 0} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: Face - m_ParentName: - m_Position: {x: 0, y: 0, z: 0} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: Hair - m_ParentName: - m_Position: {x: 0, y: 0, z: 0} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: Root - m_ParentName: - m_Position: {x: 0, y: 0, z: 0} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_C_Hips - m_ParentName: - m_Position: {x: 0, y: 0.93650174, z: 0.0036878982} - m_Rotation: {x: 0, y: 0, z: 0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_C_Spine - m_ParentName: - m_Position: {x: 5.948816e-32, y: 0.050968885, z: 0.012252513} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_C_Chest - m_ParentName: - m_Position: {x: -2.0149595e-17, y: 0.110621214, z: 0.0029853042} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_C_UpperChest - m_ParentName: - m_Position: {x: 2.9083892e-17, y: 0.10536587, z: -0.014336677} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_C_Neck - m_ParentName: - m_Position: {x: 9.127545e-17, y: 0.1294887, z: -0.03754457} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_C_Head - m_ParentName: - m_Position: {x: 0.000000005196695, y: 0.075594306, z: 0.009783598} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Adj_L_FaceEye - m_ParentName: - m_Position: {x: -0.014784996, y: 0.06125927, z: 0.022221765} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Adj_R_FaceEye - m_ParentName: - m_Position: {x: 0.014784982, y: 0.06125927, z: 0.022221772} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair1_01 - m_ParentName: - m_Position: {x: 0.0060543846, y: 0.19155574, z: -0.11623336} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair2_01 - m_ParentName: - m_Position: {x: -0.0032195332, y: -0.09500408, z: -0.029305004} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_01 - m_ParentName: - m_Position: {x: -0.003834067, y: -0.09629369, z: -0.024558365} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair4_01 - m_ParentName: - m_Position: {x: -0.0045603532, y: -0.0975678, z: -0.01879552} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair5_01 - m_ParentName: - m_Position: {x: -0.004833374, y: -0.097961664, z: -0.016576946} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair6_01 - m_ParentName: - m_Position: {x: -0.004801523, y: -0.09791851, z: -0.016837388} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair6_01_end - m_ParentName: - m_Position: {x: -0.0033789221, y: -0.06890714, z: -0.011848748} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair1_02 - m_ParentName: - m_Position: {x: -0.023998903, y: 0.17999744, z: -0.09226433} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair2_02 - m_ParentName: - m_Position: {x: -0.017848196, y: -0.10116458, z: -0.025196552} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_02 - m_ParentName: - m_Position: {x: -0.019145628, y: -0.102164984, z: -0.019412987} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair4_02 - m_ParentName: - m_Position: {x: -0.020202043, y: -0.102792144, z: -0.014479518} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair5_02 - m_ParentName: - m_Position: {x: -0.020311652, y: -0.102844834, z: -0.013952583} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair5_02_end - m_ParentName: - m_Position: {x: -0.013444329, y: -0.06807315, z: -0.009235263} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair1_03 - m_ParentName: - m_Position: {x: 0.011216303, y: 0.19704938, z: -0.109584175} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair2_03 - m_ParentName: - m_Position: {x: 0.02504052, y: -0.09843135, z: -0.013009474} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_03 - m_ParentName: - m_Position: {x: 0.020819375, y: -0.09838283, z: -0.019334368} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair4_03 - m_ParentName: - m_Position: {x: 0.01747091, y: -0.09802544, z: -0.024187118} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair5_03 - m_ParentName: - m_Position: {x: 0.017163226, y: -0.097975254, z: -0.024624199} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair5_03_end - m_ParentName: - m_Position: {x: 0.011724673, y: -0.06692958, z: -0.016821474} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair1_04 - m_ParentName: - m_Position: {x: 0.09034192, y: 0.020739079, z: 0.013131157} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair2_04 - m_ParentName: - m_Position: {x: 0.0005200654, y: -0.052738905, z: 0.011005877} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_04 - m_ParentName: - m_Position: {x: -0.0051159784, y: -0.045720816, z: 0.02806885} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair4_04 - m_ParentName: - m_Position: {x: -0.017751932, y: -0.034382105, z: 0.036584526} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair4_04_end - m_ParentName: - m_Position: {x: -0.023335353, y: -0.045196176, z: 0.04809127} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair1_05 - m_ParentName: - m_Position: {x: -0.09037836, y: 0.018492937, z: 0.0131891295} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair2_05 - m_ParentName: - m_Position: {x: -0.00038973987, y: -0.051941752, z: 0.011532931} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_05 - m_ParentName: - m_Position: {x: 0.00504905, y: -0.04497254, z: 0.028033623} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair4_05 - m_ParentName: - m_Position: {x: 0.017956987, y: -0.033681393, z: 0.036034673} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair4_05_end - m_ParentName: - m_Position: {x: 0.0239464, y: -0.044915557, z: 0.048053756} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair1_06 - m_ParentName: - m_Position: {x: 0.0038271134, y: 0.10032368, z: 0.11484787} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair2_06 - m_ParentName: - m_Position: {x: -0.0114425, y: -0.038627625, z: -0.0029882044} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_06 - m_ParentName: - m_Position: {x: -0.023252435, y: -0.030773401, z: -0.0087142885} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_06_end - m_ParentName: - m_Position: {x: -0.04116246, y: -0.05447638, z: -0.015426412} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair1_07 - m_ParentName: - m_Position: {x: 0.09799406, y: 0.07294512, z: 0.038732037} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair2_07 - m_ParentName: - m_Position: {x: -0.008405648, y: -0.035627127, z: 0.0036858395} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_07 - m_ParentName: - m_Position: {x: -0.021355107, y: -0.028679848, z: 0.006578073} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_07_end - m_ParentName: - m_Position: {x: -0.041115865, y: -0.05521846, z: 0.012665033} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair1_08 - m_ParentName: - m_Position: {x: 0.1039162, y: 0.06665754, z: 0.01088972} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair2_08 - m_ParentName: - m_Position: {x: -0.012210831, y: -0.035097122, z: 0.0028314441} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_08 - m_ParentName: - m_Position: {x: -0.021619588, y: -0.029940248, z: -0.0024947487} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_08_end - m_ParentName: - m_Position: {x: -0.04088626, y: -0.05662203, z: -0.0047179908} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair1_09 - m_ParentName: - m_Position: {x: -0.103599615, y: 0.06952298, z: 0.010509707} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair2_09 - m_ParentName: - m_Position: {x: 0.011073269, y: -0.03683269, z: 0.00053985044} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_09 - m_ParentName: - m_Position: {x: 0.022228621, y: -0.03105092, z: -0.002774533} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_09_end - m_ParentName: - m_Position: {x: 0.040639482, y: -0.056768894, z: -0.005072549} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair1_10 - m_ParentName: - m_Position: {x: -0.09720296, y: 0.06601691, z: 0.038295604} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair2_10 - m_ParentName: - m_Position: {x: 0.008842394, y: -0.031521797, z: 0.0020156577} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_10 - m_ParentName: - m_Position: {x: 0.019210495, y: -0.025567174, z: 0.0049108267} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_10_end - m_ParentName: - m_Position: {x: 0.041562013, y: -0.05531466, z: 0.010624602} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair1_11 - m_ParentName: - m_Position: {x: -0.08736309, y: 0.061727047, z: -0.078165144} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair2_11 - m_ParentName: - m_Position: {x: 0.0076676607, y: -0.034651995, z: 0.0029347688} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_11 - m_ParentName: - m_Position: {x: 0.017155953, y: -0.030285716, z: 0.006837338} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_11_end - m_ParentName: - m_Position: {x: 0.033854835, y: -0.059764504, z: 0.01349251} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair1_12 - m_ParentName: - m_Position: {x: 0.003668399, y: 0.074970245, z: -0.12469099} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair2_12 - m_ParentName: - m_Position: {x: 0.00081768166, y: -0.04406452, z: 0.00985533} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_12 - m_ParentName: - m_Position: {x: 0.008002964, y: -0.039358377, z: 0.020634204} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_12_end - m_ParentName: - m_Position: {x: 0.012406546, y: -0.06101513, z: 0.031988047} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair1_13 - m_ParentName: - m_Position: {x: 0.092061795, y: 0.06233096, z: -0.07076192} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair2_13 - m_ParentName: - m_Position: {x: -0.006141573, y: -0.036583662, z: 0.006459132} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_13 - m_ParentName: - m_Position: {x: -0.012260839, y: -0.03093195, z: 0.017225683} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_13_end - m_ParentName: - m_Position: {x: -0.022906553, y: -0.057789207, z: 0.032182217} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair1_14 - m_ParentName: - m_Position: {x: -0.038898736, y: -0.019448876, z: -0.040619954} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair2_14 - m_ParentName: - m_Position: {x: 0.0060002767, y: -0.018793583, z: -0.0030941814} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_14 - m_ParentName: - m_Position: {x: 0.0022521075, y: -0.019284606, z: -0.0043754727} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_14_end - m_ParentName: - m_Position: {x: 0.007920966, y: -0.06782651, z: -0.015389115} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair1_15 - m_ParentName: - m_Position: {x: -0.010106603, y: -0.004513502, z: -0.068655685} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair2_15 - m_ParentName: - m_Position: {x: 0.0025522728, y: -0.030941367, z: 0.011916444} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_15 - m_ParentName: - m_Position: {x: 0.0056611383, y: -0.03245902, z: -0.0000307858} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_15_end - m_ParentName: - m_Position: {x: 0.01202706, y: -0.068959, z: -0.0000654012} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair1_16 - m_ParentName: - m_Position: {x: 0.04439354, y: -0.011398077, z: -0.0384506} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair2_16 - m_ParentName: - m_Position: {x: -0.0067237467, y: -0.024332285, z: 0.0013642758} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_16 - m_ParentName: - m_Position: {x: -0.0070233773, y: -0.021796703, z: -0.011003256} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_16_end - m_ParentName: - m_Position: {x: -0.019350724, y: -0.060054064, z: -0.030316055} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair1_17 - m_ParentName: - m_Position: {x: 0.06916933, y: 0.09241533, z: 0.08386295} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair2_17 - m_ParentName: - m_Position: {x: 0.00031793863, y: -0.031071424, z: -0.003433995} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_17 - m_ParentName: - m_Position: {x: -0.010192722, y: -0.029346943, z: 0.0015152171} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_17_end - m_ParentName: - m_Position: {x: -0.022939213, y: -0.066046715, z: 0.0034100711} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair1_18 - m_ParentName: - m_Position: {x: -0.030270243, y: 0.11486733, z: 0.109852746} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair2_18 - m_ParentName: - m_Position: {x: -0.03878224, y: -0.035150647, z: -0.012748048} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_18 - m_ParentName: - m_Position: {x: -0.040310033, y: -0.00279212, z: -0.033838585} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_18_end - m_ParentName: - m_Position: {x: -0.053538345, y: -0.0037083626, z: -0.0449432} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair1_19 - m_ParentName: - m_Position: {x: -0.06878384, y: 0.095115304, z: 0.084242165} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair2_19 - m_ParentName: - m_Position: {x: -0.00079639256, y: -0.0322783, z: -0.0035905913} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_19 - m_ParentName: - m_Position: {x: 0.013975155, y: -0.027860403, z: 0.006449461} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_Hair3_19_end - m_ParentName: - m_Position: {x: 0.030734617, y: -0.06127155, z: 0.014183879} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_L_Clavicle - m_ParentName: - m_Position: {x: -0.020808386, y: 0.1034497, z: -0.02933467} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_L_UpperArm - m_ParentName: - m_Position: {x: -0.06679835, y: -0.0100136995, z: 0.000000014901161} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_L_LowerArm - m_ParentName: - m_Position: {x: -0.21410698, y: 0, z: 0} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_L_Hand - m_ParentName: - m_Position: {x: -0.19947156, y: 0.0000023841858, z: 0.00036800653} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_L_Index1 - m_ParentName: - m_Position: {x: -0.060842276, y: 0.007224083, z: 0.019240757} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_L_Index2 - m_ParentName: - m_Position: {x: -0.030905277, y: 0, z: -0.0006325543} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_L_Index3 - m_ParentName: - m_Position: {x: -0.019009352, y: -0.0005789995, z: -0.0007722862} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_L_Little1 - m_ParentName: - m_Position: {x: -0.056770742, y: 0.007224083, z: -0.028558226} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_L_Little2 - m_ParentName: - m_Position: {x: -0.02921474, y: 0, z: 0.000000014901161} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_L_Little3 - m_ParentName: - m_Position: {x: -0.016837686, y: 0.00000011920929, z: -0.000000022351742} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_L_Middle1 - m_ParentName: - m_Position: {x: -0.06167108, y: 0.007224202, z: 0.0020036474} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_L_Middle2 - m_ParentName: - m_Position: {x: -0.03443119, y: -0.00000011920929, z: 0.000000007450581} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_L_Middle3 - m_ParentName: - m_Position: {x: -0.021241367, y: 0.00000011920929, z: -0.000000007450581} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_L_Ring1 - m_ParentName: - m_Position: {x: -0.060968697, y: 0.007224083, z: -0.01330054} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_L_Ring2 - m_ParentName: - m_Position: {x: -0.03193912, y: 0, z: -0.000000014901161} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_L_Ring3 - m_ParentName: - m_Position: {x: -0.01843214, y: 0, z: 0} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_L_Thumb1 - m_ParentName: - m_Position: {x: -0.0032740831, y: -0.0097965, z: 0.01562553} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_L_Thumb2 - m_ParentName: - m_Position: {x: -0.032867372, y: -0.0020189285, z: 0.029622039} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_L_Thumb3 - m_ParentName: - m_Position: {x: -0.02096486, y: -0.0009496212, z: 0.017276319} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_TipSleeve_01 - m_ParentName: - m_Position: {x: 0.004469067, y: -0.015556693, z: -0.008071767} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_TipSleeve_end_01 - m_ParentName: - m_Position: {x: -0.042382568, y: -0.0041464567, z: -0.0023704246} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_TipSleeve_end_01_end - m_ParentName: - m_Position: {x: -0.06955972, y: -0.0068053007, z: -0.0038904175} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_LowerSleeve_01 - m_ParentName: - m_Position: {x: -0.09607756, y: -0.019597769, z: 0.0024976358} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_LowerSleeve_end_01 - m_ParentName: - m_Position: {x: -0.0049577653, y: -0.07610023, z: 0.0052430034} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_LowerSleeve_end_01_end - m_ParentName: - m_Position: {x: -0.0045399964, y: -0.06968737, z: 0.004801186} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_R_Clavicle - m_ParentName: - m_Position: {x: 0.020808386, y: 0.1034497, z: -0.02933467} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_R_UpperArm - m_ParentName: - m_Position: {x: 0.06679835, y: -0.0100136995, z: 0.000000014901161} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_R_LowerArm - m_ParentName: - m_Position: {x: 0.21410698, y: 0, z: 0} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_R_Hand - m_ParentName: - m_Position: {x: 0.19947156, y: 0.0000023841858, z: 0.00036800653} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_R_Index1 - m_ParentName: - m_Position: {x: 0.060842276, y: 0.007224083, z: 0.019240757} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_R_Index2 - m_ParentName: - m_Position: {x: 0.030905277, y: 0, z: -0.0006325543} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_R_Index3 - m_ParentName: - m_Position: {x: 0.019009352, y: -0.0005789995, z: -0.0007722862} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_R_Little1 - m_ParentName: - m_Position: {x: 0.056770742, y: 0.007224083, z: -0.028558226} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_R_Little2 - m_ParentName: - m_Position: {x: 0.02921474, y: 0, z: 0.000000014901161} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_R_Little3 - m_ParentName: - m_Position: {x: 0.016837686, y: 0.00000011920929, z: -0.000000022351742} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_R_Middle1 - m_ParentName: - m_Position: {x: 0.06167108, y: 0.007224202, z: 0.0020036474} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_R_Middle2 - m_ParentName: - m_Position: {x: 0.03443119, y: -0.00000011920929, z: 0.000000007450581} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_R_Middle3 - m_ParentName: - m_Position: {x: 0.021241367, y: 0.00000011920929, z: -0.000000007450581} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_R_Ring1 - m_ParentName: - m_Position: {x: 0.060968697, y: 0.007224083, z: -0.01330054} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_R_Ring2 - m_ParentName: - m_Position: {x: 0.03193912, y: 0, z: -0.000000014901161} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_R_Ring3 - m_ParentName: - m_Position: {x: 0.01843214, y: 0, z: 0} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_R_Thumb1 - m_ParentName: - m_Position: {x: 0.0032740831, y: -0.0097965, z: 0.01562553} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_R_Thumb2 - m_ParentName: - m_Position: {x: 0.032867372, y: -0.0020189285, z: 0.029622039} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_R_Thumb3 - m_ParentName: - m_Position: {x: 0.02096486, y: -0.0009496212, z: 0.017276319} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_TipSleeve_01 - m_ParentName: - m_Position: {x: -0.004469067, y: -0.015556693, z: -0.008071767} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_TipSleeve_end_01 - m_ParentName: - m_Position: {x: 0.042382568, y: -0.0041464567, z: -0.0023704246} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_TipSleeve_end_01_end - m_ParentName: - m_Position: {x: 0.06955972, y: -0.0068053007, z: -0.0038904175} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_LowerSleeve_01 - m_ParentName: - m_Position: {x: 0.09607756, y: -0.019597769, z: 0.0024976358} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_LowerSleeve_end_01 - m_ParentName: - m_Position: {x: 0.0049577653, y: -0.07610023, z: 0.0052430034} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_LowerSleeve_end_01_end - m_ParentName: - m_Position: {x: 0.0045399964, y: -0.06968737, z: 0.004801186} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_Bust1 - m_ParentName: - m_Position: {x: -0.051190045, y: -0.007102847, z: 0.067519896} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_Bust2 - m_ParentName: - m_Position: {x: -0.015037615, y: 0.0036982298, z: 0.030056074} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_Bust2_end - m_ParentName: - m_Position: {x: -0.031132981, y: 0.0076565742, z: 0.062226303} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_Bust1 - m_ParentName: - m_Position: {x: 0.051190045, y: -0.007102847, z: 0.067519896} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_Bust2 - m_ParentName: - m_Position: {x: 0.015037615, y: 0.0036982298, z: 0.030056074} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_Bust2_end - m_ParentName: - m_Position: {x: 0.031132981, y: 0.0076565742, z: 0.062226303} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_L_UpperLeg - m_ParentName: - m_Position: {x: -0.07168864, y: -0.03872311, z: -0.0035527977} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_L_LowerLeg - m_ParentName: - m_Position: {x: 0.000000014901161, y: -0.3756488, z: -0.010205619} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_L_Foot - m_ParentName: - m_Position: {x: 0, y: -0.4251067, z: -0.023510326} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_L_ToeBase - m_ParentName: - m_Position: {x: 0, y: -0.0613662, z: 0.09755388} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_SkirtBack0_01 - m_ParentName: - m_Position: {x: -0.00051371753, y: 0.03553772, z: -0.12787059} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_SkirtBack1_01 - m_ParentName: - m_Position: {x: 0, y: 0, z: 0} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_SkirtBack2_01 - m_ParentName: - m_Position: {x: -0.0321839, y: -0.12671971, z: -0.05308689} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_SkirtBack2_end_01 - m_ParentName: - m_Position: {x: -0.031471446, y: -0.1283117, z: -0.04816988} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_SkirtBack2_end_01_end - m_ParentName: - m_Position: {x: -0.015666068, y: -0.06387186, z: -0.023978308} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_SkirtBack_01 - m_ParentName: - m_Position: {x: 0.002153173, y: -0.040513754, z: -0.11518712} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_SkirtBack_end_01 - m_ParentName: - m_Position: {x: -0.00886596, y: -0.08771938, z: -0.013875127} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_SkirtBack_end_01_end - m_ParentName: - m_Position: {x: -0.006953582, y: -0.06879842, z: -0.010882273} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_SkirtFront0_01 - m_ParentName: - m_Position: {x: 0.0041720867, y: 0.0041890144, z: 0.14196625} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_SkirtFront1_01 - m_ParentName: - m_Position: {x: 0, y: 0, z: 0} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_SkirtFront2_01 - m_ParentName: - m_Position: {x: -0.022604093, y: -0.12880695, z: 0.019534513} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_SkirtFront2_end_01 - m_ParentName: - m_Position: {x: -0.02736549, y: -0.15725672, z: 0.024203286} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_SkirtFront2_end_01_end - m_ParentName: - m_Position: {x: -0.011865273, y: -0.0681842, z: 0.0104941875} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_SkirtFront_01 - m_ParentName: - m_Position: {x: 0.00864964, y: -0.05833465, z: 0.12072687} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_SkirtFront_end_01 - m_ParentName: - m_Position: {x: -0.008657336, y: -0.096174896, z: -0.0006926805} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_SkirtFront_end_01_end - m_ParentName: - m_Position: {x: -0.006275624, y: -0.069716334, z: -0.000502117} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_SkirtSide_01 - m_ParentName: - m_Position: {x: -0.10469708, y: -0.04024589, z: 0.003496936} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_SkirtSide_end_01 - m_ParentName: - m_Position: {x: -0.026975378, y: -0.09512514, z: -0.010761733} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_SkirtSide_end_01_end - m_ParentName: - m_Position: {x: -0.018985301, y: -0.06694919, z: -0.0075741177} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_R_UpperLeg - m_ParentName: - m_Position: {x: 0.07168864, y: -0.03872311, z: -0.0035527977} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_R_LowerLeg - m_ParentName: - m_Position: {x: -0.000000014901161, y: -0.3756488, z: -0.010205619} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_R_Foot - m_ParentName: - m_Position: {x: 0, y: -0.4251067, z: -0.023510326} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Bip_R_ToeBase - m_ParentName: - m_Position: {x: 0, y: -0.0613662, z: 0.09755388} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_SkirtBack0_01 - m_ParentName: - m_Position: {x: 0.00051373243, y: 0.03553754, z: -0.12787092} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_SkirtBack1_01 - m_ParentName: - m_Position: {x: 0, y: 0, z: 0} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_SkirtBack2_01 - m_ParentName: - m_Position: {x: 0.0321839, y: -0.12671995, z: -0.053086832} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_SkirtBack2_end_01 - m_ParentName: - m_Position: {x: 0.031471908, y: -0.12831116, z: -0.048169613} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_SkirtBack2_end_01_end - m_ParentName: - m_Position: {x: 0.01566635, y: -0.0638718, z: -0.023978248} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_SkirtBack_01 - m_ParentName: - m_Position: {x: -0.0021531358, y: -0.040513754, z: -0.11518711} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_SkirtBack_end_01 - m_ParentName: - m_Position: {x: 0.0068022385, y: -0.0878436, z: -0.01423265} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_SkirtBack_end_01_end - m_ParentName: - m_Position: {x: 0.005335167, y: -0.0688979, z: -0.011163011} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_SkirtFront0_01 - m_ParentName: - m_Position: {x: -0.0041720644, y: 0.0041888356, z: 0.14196649} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_SkirtFront1_01 - m_ParentName: - m_Position: {x: 0, y: 0, z: 0} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_SkirtFront2_01 - m_ParentName: - m_Position: {x: 0.022604086, y: -0.12880653, z: 0.019534424} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_SkirtFront2_end_01 - m_ParentName: - m_Position: {x: 0.027364962, y: -0.1572566, z: 0.02420336} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_SkirtFront2_end_01_end - m_ParentName: - m_Position: {x: 0.011865057, y: -0.06818426, z: 0.010494232} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_SkirtFront_01 - m_ParentName: - m_Position: {x: -0.008878, y: -0.058356643, z: 0.12080709} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_SkirtFront_end_01 - m_ParentName: - m_Position: {x: 0.008391716, y: -0.096199274, z: -0.0005996004} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_SkirtFront_end_01_end - m_ParentName: - m_Position: {x: 0.006083064, y: -0.06973386, z: -0.00043464452} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_SkirtSide_01 - m_ParentName: - m_Position: {x: 0.10469708, y: -0.04024577, z: 0.0034969351} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_SkirtSide_end_01 - m_ParentName: - m_Position: {x: 0.026974961, y: -0.09512484, z: -0.010761726} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_SkirtSide_end_01_end - m_ParentName: - m_Position: {x: 0.018985078, y: -0.06694925, z: -0.007574144} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_SkirtSide0_01 - m_ParentName: - m_Position: {x: -0.1839734, y: -0.01717341, z: 0.008129962} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_SkirtSide1_01 - m_ParentName: - m_Position: {x: 0, y: 0, z: 0} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_SkirtSide2_01 - m_ParentName: - m_Position: {x: -0.04965982, y: -0.12537038, z: -0.007807067} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_SkirtSide2_end_01 - m_ParentName: - m_Position: {x: -0.040121317, y: -0.11963594, z: -0.0065027433} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_L_SkirtSide2_end_01_end - m_ParentName: - m_Position: {x: -0.022227585, y: -0.06627941, z: -0.0036025797} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_SkirtSide0_01 - m_ParentName: - m_Position: {x: 0.18397318, y: -0.017173588, z: 0.008129945} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_SkirtSide1_01 - m_ParentName: - m_Position: {x: 0, y: 0, z: 0} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_SkirtSide2_01 - m_ParentName: - m_Position: {x: 0.049659625, y: -0.12536985, z: -0.0078070783} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_SkirtSide2_end_01 - m_ParentName: - m_Position: {x: 0.040121317, y: -0.11963624, z: -0.0065027284} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: J_Sec_R_SkirtSide2_end_01_end - m_ParentName: - m_Position: {x: 0.022227526, y: -0.06627941, z: -0.003602563} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - - m_Name: secondary - m_ParentName: - m_Position: {x: 0, y: 0, z: 0} - m_Rotation: {x: -0, y: -0, z: -0, w: 1} - m_Scale: {x: 1, y: 1, z: 1} - m_ArmTwist: 0.5 - m_ForeArmTwist: 0.5 - m_UpperLegTwist: 0.5 - m_LegTwist: 0.5 - m_ArmStretch: 0.05 - m_LegStretch: 0.05 - m_FeetSpacing: 0 - m_GlobalScale: 0 - m_RootMotionBoneName: - m_HasTranslationDoF: 0 - m_HasExtraRoot: 0 - m_SkeletonHasParents: 0 diff --git a/com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Arts/VRMfile/VRM1/Female1/Female1.BlendShapes/BlendShape.asset b/com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Arts/VRMfile/VRM1/Female1/Female1.BlendShapes/BlendShape.asset deleted file mode 100644 index 4e5f976..0000000 --- a/com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Arts/VRMfile/VRM1/Female1/Female1.BlendShapes/BlendShape.asset +++ /dev/null @@ -1,33 +0,0 @@ -%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: 329dca3bf78fcdd42b2df941673db76f, type: 3} - m_Name: BlendShape - m_EditorClassIdentifier: - Clips: - - {fileID: 11400000, guid: 7667fe9100954d44fbef6a8902a2330e, type: 2} - - {fileID: 11400000, guid: ab5f9d46c1bc285478033c10ad6eecc7, type: 2} - - {fileID: 11400000, guid: 31b04c29fd904544298eed36491c1bc1, type: 2} - - {fileID: 11400000, guid: a15f8161a9fac284a9280498d7ced15c, type: 2} - - {fileID: 11400000, guid: ef0a624466fca9f44afc54a99046b4e9, type: 2} - - {fileID: 11400000, guid: d59f216bd0a305d47b90f9483a21f47b, type: 2} - - {fileID: 11400000, guid: bb794829910d46440bbc6648409f5c67, type: 2} - - {fileID: 11400000, guid: 3bc730086f9f3be439b86f7f7a65608c, type: 2} - - {fileID: 11400000, guid: 1b1461287e216d14f82a8dc3084ea1da, type: 2} - - {fileID: 11400000, guid: 1c4788811eb904041af9407ab3c8e942, type: 2} - - {fileID: 11400000, guid: 0d9fe17b64a0b194bb62c1ccc4e09cd9, type: 2} - - {fileID: 11400000, guid: e22e6492180a60f44801c3a785e70db6, type: 2} - - {fileID: 11400000, guid: d6e600e244aee1f41a19d8df4fe8105e, type: 2} - - {fileID: 11400000, guid: 700271c57903adc40a9c8fe348a9f57c, type: 2} - - {fileID: 11400000, guid: 725440a3d971e284c995a012e8120630, type: 2} - - {fileID: 11400000, guid: 87a85157593e4634fa9dff0675efa701, type: 2} - - {fileID: 11400000, guid: d98ff0e344fe9d64799e4149cefe16f2, type: 2} - - {fileID: 11400000, guid: 374efa830e4f47448abced6925685e8f, type: 2} diff --git a/com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Arts/VRMfile/VRM1/Female1/Female1.Textures/_11.normal.png.meta b/com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Arts/VRMfile/VRM1/Female1/Female1.Textures/_11.normal.png.meta deleted file mode 100644 index ebca326..0000000 --- a/com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Arts/VRMfile/VRM1/Female1/Female1.Textures/_11.normal.png.meta +++ /dev/null @@ -1,135 +0,0 @@ -fileFormatVersion: 2 -guid: d381a1d1cc371294e9499fb41010ba2c -TextureImporter: - internalIDToNameTable: [] - externalObjects: {} - serializedVersion: 12 - mipmaps: - mipMapMode: 0 - enableMipMap: 0 - sRGBTexture: 0 - linearTexture: 0 - fadeOut: 0 - borderMipMap: 0 - mipMapsPreserveCoverage: 0 - alphaTestReferenceValue: 0.5 - mipMapFadeDistanceStart: 1 - mipMapFadeDistanceEnd: 3 - bumpmap: - convertToNormalMap: 0 - externalNormalMap: 0 - heightScale: 0.25 - normalMapFilter: 0 - isReadable: 0 - streamingMipmaps: 0 - streamingMipmapsPriority: 0 - vTOnly: 0 - ignoreMasterTextureLimit: 0 - grayScaleToAlpha: 0 - generateCubemap: 6 - cubemapConvolution: 0 - seamlessCubemap: 0 - textureFormat: 1 - maxTextureSize: 2048 - textureSettings: - serializedVersion: 2 - filterMode: 1 - aniso: 1 - mipBias: 0 - wrapU: 0 - wrapV: 0 - wrapW: 0 - nPOTScale: 1 - lightmap: 0 - compressionQuality: 50 - spriteMode: 0 - spriteExtrude: 1 - spriteMeshType: 1 - alignment: 0 - spritePivot: {x: 0.5, y: 0.5} - spritePixelsToUnits: 100 - spriteBorder: {x: 0, y: 0, z: 0, w: 0} - spriteGenerateFallbackPhysicsShape: 1 - alphaUsage: 1 - alphaIsTransparency: 0 - spriteTessellationDetail: -1 - textureType: 1 - textureShape: 1 - singleChannelComponent: 0 - flipbookRows: 1 - flipbookColumns: 1 - maxTextureSizeSet: 0 - compressionQualitySet: 0 - textureFormatSet: 0 - ignorePngGamma: 0 - applyGammaDecoding: 0 - cookieLightType: 0 - platformSettings: - - serializedVersion: 3 - buildTarget: DefaultTexturePlatform - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: Standalone - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: Server - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: Android - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - spriteSheet: - serializedVersion: 2 - sprites: [] - outline: [] - physicsShape: [] - bones: [] - spriteID: - internalID: 0 - vertices: [] - indices: - edges: [] - weights: [] - secondaryTextures: [] - nameFileIdTable: {} - spritePackingTag: - pSDRemoveMatte: 0 - pSDShowRemoveMatteOption: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Arts/VRMfile/VRM1/Female1/Female1.Textures/_17.png.meta b/com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Arts/VRMfile/VRM1/Female1/Female1.Textures/_17.png.meta deleted file mode 100644 index 49018ab..0000000 --- a/com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Arts/VRMfile/VRM1/Female1/Female1.Textures/_17.png.meta +++ /dev/null @@ -1,135 +0,0 @@ -fileFormatVersion: 2 -guid: 4bffa7d0813008f4994c6a4f33fc1a95 -TextureImporter: - internalIDToNameTable: [] - externalObjects: {} - serializedVersion: 12 - 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 - ignoreMasterTextureLimit: 0 - grayScaleToAlpha: 0 - generateCubemap: 6 - cubemapConvolution: 0 - seamlessCubemap: 0 - textureFormat: 1 - maxTextureSize: 2048 - textureSettings: - serializedVersion: 2 - filterMode: 1 - aniso: 1 - mipBias: 0 - wrapU: 0 - wrapV: 0 - wrapW: 0 - nPOTScale: 1 - lightmap: 0 - compressionQuality: 50 - spriteMode: 0 - spriteExtrude: 1 - spriteMeshType: 1 - alignment: 0 - spritePivot: {x: 0.5, y: 0.5} - spritePixelsToUnits: 100 - spriteBorder: {x: 0, y: 0, z: 0, w: 0} - spriteGenerateFallbackPhysicsShape: 1 - alphaUsage: 1 - alphaIsTransparency: 0 - spriteTessellationDetail: -1 - textureType: 0 - textureShape: 1 - singleChannelComponent: 0 - flipbookRows: 1 - flipbookColumns: 1 - maxTextureSizeSet: 0 - compressionQualitySet: 0 - textureFormatSet: 0 - ignorePngGamma: 0 - applyGammaDecoding: 0 - cookieLightType: 0 - platformSettings: - - serializedVersion: 3 - buildTarget: DefaultTexturePlatform - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: Standalone - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: Server - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: Android - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - spriteSheet: - serializedVersion: 2 - sprites: [] - outline: [] - physicsShape: [] - bones: [] - spriteID: - internalID: 0 - vertices: [] - indices: - edges: [] - weights: [] - secondaryTextures: [] - nameFileIdTable: {} - spritePackingTag: - pSDRemoveMatte: 0 - pSDShowRemoveMatteOption: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Arts/VRMfile/VRM1/Female1/Female1.vrm b/com.htc.upm.vive.openxr/Samples~/Toolkits/Toolkits/BodyTracking(experimental)/Demo/Arts/VRMfile/VRM1/Female1/Female1.vrm deleted file mode 100644 index d8a6e25e637cd7406adbeaa0c1047dde12121ac4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16232176 zcmeEP2VhfG_b;F*$`BEuqAV3eO352}c>x(^BZXoqvtS5qXaj9h(-aB?3M#0GECm!9 zDk2K9X%QLXKtL2hWN#5=$zC%5zw=&_X0|U)TK)Uw`~H0Y=Dm0CJ@?#m&%Wm-rNp%< z85S0He$lnC-+w6)_I#I^PFb}LnO1`--DozYcTG1W)@~GEyF${uo(3z>ADP4 ziqTp-qIS2~jufP68~YipK5xYqew; zhDSIWq!{{JyQZZXEYSwSl&vAhDQIdjCMA1mt5!N}G?4B(EH5e@*0ZgEg;X@#HfA%C zqHU(URzWjqrmpP-je>URX-2GyV=R?|CJD)gbSLnX;L>DB7??MR61b8L`oz2zN{~)u z(k0oPk&BOTc z!>|e#o<8AFX#~H|o1#iFW~hC86NFJJ*fFG-Qy)s%j06M3gw+KCB|C;@(B712 z$n=0=W~nDKILf zEFjisO7fTiqf)XfX$sWb#{`tFB6Z;bzS8xJHd>+dcuYX6lz!#*UT2_HO2u*?Zd1@I zVHh%_@xF~&|2ptG1%_2Zig{4D&4J;R5TVrE`%Y#UCF_vaf%i!;N){ro6Zc6liV^8! zKQpY7-5>#w-;QRLYzU`b+~>h6*%MNG?|Yh6!qyz^y)OmX5e2HBjy^nQpm-sDY-@&5 zOwajjY(|lUm1f~}Ycs48=9)p~MoU*c*Eb!(T+~}qyI3s-YeI7EMzHs=S}BGkw!C>u@rcVG1MsF~^^yzUHy(v9KPj*==bDP?Y z`opq?DOJ0_(UNZM46Bul)-30rWS+qc!!~pJh91WB@1Je}m|3+mrQU}~69Wki#UJQ0 z)sUVXWipwq(r9Gi0Szf;^S~%;+>kW8ttfSGf8Ne)F%C7Gpl-A`nV_Vj?}QA?AdDZc zilF~8w*RWoRc0&j97q`jqC z3|KCk>2Gp8Hm0{Qn)DVdoRu)eT@){2|ki86YP^pIZ!4lh?BX+wy zz7JXDwxOe-aJmet#{)lxC48Lz$jct-!m<3UIMjMvqDybM3b1E29{yw>jHkw)(a zK6&sbf5wY(AJ6RPc#w$xjMpN?Xd)kg3(fSiJ@jLqOku{=MSC4tN0ygAV}oP+J!f64 z_p!-I;m_F6Ap99S%9Mm{?}l%%ROz8Vu*oRVUMU(f-qB+2ps?lRD5A(y5r#6=A-BXDYgRg*@V2QVMOa032`fSkoY z{8kIzrU3UO!~8qu!E;(x1N*=+3m%#ruZ|$>Ya=kt2#w+yq!PxD6;^?0h-19L?}q$#dQh=D;H;X_YB=B~P|^pZ@JaccpkcMNzw8UZdWDyZ;3G5< z>IgAHh`_Qy;bxUhf!A_8ONMk&PJ&UZ1g%OT? z3KCU3D71*#5z!GarRAMO0xt$}A82S2#WD*G1rY7jqz)=I728S(kYagr;DfjhB13-3 zqTdc2SchW~g2|FJw4pgpfCg6Nv*1)tvk=I|<)M`pc2l#^UW$V;VK+btu&;!`1#=F? zwjHF1fMX6`RqH~ogH~FG;-Mx1N_E~!XoI;D#UWmGjg-Wo&sznWOX-5X525Qx;2Ge%NhGV`i2uG`YhCs5ZiV;Ln)U<9u3Z9H8 zt(L{U16#GBiQ#B}U_{pewOWSb1&zQu4=Cn8AjRQi+|%l5G`6(>92h{oAxX zCu&8t;ISUGgo226lusGdZW&GkAA**L8^K$@+DHyKVFdu|xd=93oz|I*;d~ZB#tHt{ z=B#w0a8{#M0TkXRg>xVTdD*1qBDRW3U;!7X*O@r5f}%#laGpd>NTj9El4eQkZznSq zCO#gKkP zwQODUnf4}R)tV9v^$-xSAg9A%c_G7)ffyFcQxHJ8?-VHm(nGsM!22P4u zZ*?9mtG2FXh85}&DM46hU5kv=v@S?hK}W#5F4mA>Fb*;xVIurGd0Gr-USRZ&Mmd_Ni#4XUL2`=8kYWq_N$IilI9h^5ZizG=9s~u3w7rt%o!C*IDP^Vsw=%4@w=TmHC|w6ptg=gj1);wll5BK&)YJJ< ztSyU4ekLu4(1Ox*&@a zX8NI{LqD1y*6{ETdyC0W*lJ431b8Yo_hVdOIotQVu(tl!(O)RGWxuA zsxh5TZ+Yp-{>lS(=N0xkmh)muNCiUGDk%OW`Czxem{AM(0f#A%-xL)kSY#rl74+qUw^70$n3(j^ z;>1LIWHAuCY~3?IZpneehPWlx;6K7Gop_$a>4VBGNkHatOFF&fV3+i_3%ev`t5EFH ziH$n;p)+@J-H*<1LQFBTIG7@dYu81fCl2HnmMOM~Zr!O>pjx06v?V4X4s`e`%WQ) zx_As~K9a)9cAoO@vZ;wk?aYpB+C1Gc&wN(E5UHCyEs+|8Y-*c}08Sw_Y*hRINEYh< zEXzdv$c<&v6Nes&_@Be{sL(Ylr00(bqOd;3;#?R4E^Vxt`&6r?n%5)3ewsmJ<=mzywOt|^-wxx zm9a>@n#2|n>7lT$0?rr;_58Oq#t>T!#lMR<{!K*--E4H}(Z8E5wlF6S`G4crBo#$g z%H`}JWQ*X5#c{X0}c?^d(ZQwfLO9GOnsGtavzX#t_+Af&3< zwIFA!6`mGHN{_>bDS0#hw;h>OFvp!s(xW^sDTU1Q5``3KkFFlcf2qq-(5V-*=mTma!)#r@Z^TxYjtUZ9@9 z%~NInCHn2ZJ1SHJtko&8A4HBiElBtmDCnQ}w62+ahZ2yBtyp##A(NOxkoD{D@ zQ8WC_;mn^p7y-iJf9D0AN#ut`Q2V=|-}ac+m$q@TTfWr9@xA1b9GhU;;tF~|opi$Gh=JL4Hd zeY98@E=5V)l9}kyf1Ke$y;X6#7G|r}oEmbv2ICNXh}jmy@pmo#2gRny0Zadb^4pXr z8FIGT4*L6V^A`t?rHg>vc&zm3zs_S>@*>2U(?Se3#9)zH_wRQfI8_x1MYTw<{6AA> z>3#}#MoW+W>x>p*EQGW|;VkJ06Dkt~%x*z5zC8zgq*Q6i_QAg^iNM(t>noz={LMe; zt^MDQXsM-umUM^}Wj^!bOF`$j8r(8uEA6D#lI374>=cY}7G1RB&Tr|FgWu9+q|WYI zx?I#%sIXK+)b*5U5u6e2gYr(b_35^2B9jcb(@~ECWT*ty)nsfN9oMD-6UmAwY&Qru zPfB-2)n+4Awb7_wM*seJhQnpJMQVuE5N$9eQQbFG`DIvvW$5-n`I~M=!(iKYQX8p6 z8#S@tPli@ z=kGNtPDE`kpF`l1E7bjUZG&g({HBdtv2cZtTN|~Y;qse1E2>pe!GEU}ViCN}4>(Sx z78o~#;gTz<0wX0cBkaG(MN9AfvN{x&J7XW!J!*i%+?UMjeXdF%> zcVfcrLri|t5>W7(r`v&@k%2nR*q-@~CE)5IDuwCXs(?);VA@n>(6xxNB~(np_ubfK1S zs&gVxKZ#s}n+3J*#N~G%5E@9xa3u`?HY~1T09$oKsK0QqYA{SUl=|BTu5(bMNNPZH z;c$hcJC*wj2e0B`Is^s>k1H44iPT>>aNh;vuIKsP2d@P}0-K8(989{qDgaui#34GH z=fc4Jq*J6Qisa!Bqz|MmvF=;nUz}=i=K^u8K;XdCRqlMyUpR302gociIJ6v!KL?0Y zT=2mPf$e?h47kHIFq}fnqGGt4Z1EGPBJPyo15|)Wwbllx06|TIX%-+(adU=7x=pq4 z`7jB#&4U^s=X#|J2*z<+SdPGJ00 zno58&N{bTsLVz*~ilxTG?(mbZYZ$X)~~1EpA8wx$kHX2EL* zbs|8a#lT`l+$>PUiXsk#1xm3{N|*rU7VgA@z8Rq4Vz7;QZGe&so#6Je0L?30bIDPl zE-ChOc7pvEsPMw|tq4H}NU=x`@r(iZsaQbUV_7y(;U!r&feJ6& zD-3fjK;ebWhp=p*h{Zk4VxYnc2@X6PsPJMm2&o4uyl^}oJS9-Xin#PSP~pXhYFzXi zC@avaV5J1g3SgpW0u^2?E(*s^4ve258HItG6KE$;?E@8FETUgrpu&p{ z_nAP27YoHg9jNfa?X?W9kq>Y>NSl$u)B$)Z;K7EIGEm_KO&FolKq*!YDhX70;Zk{C z)UH^i7^q);s2PtKGEL7vKm?7)${@BRsVvUZ$#?5;up^~> z5of04e=h<;AMQ#UazeEJQ9V4D5XY{lg$EGcH&^85J0l*}BlmyetQ0(kEf>=37<_QX z;A}+e#~8@!bXna3=fT;Mkv+%g(lRPKD%R^vka21o1->{SyWml5TcVJo!21F2Q}8IZ zoYq2)f`b4e~b`u6(nm@rV1Uz0ZSC2s6!^=yaWA&yNFVf)mmq!Xm2A(>`;Z&cNN{%PP`E< zpzTm}Qwe+I@?$H?=20N7>=v#kZTT%UATLOl)ySA)amoTIF&a8BB_oOxd5z$TD7gVd zhlCwywn()gpQMB<1_}%d%u}0!=i!reDV|5cWB6oTipQ`ESSYLlV#}Z|LJxi*H4I9I zge!Ot=@5turfi>cGG-8@N0yH52hId>ERwN!MQHNL6%|jRU^MyUii*d`Llbl_xC_8r z2u&L7Htac0{sBKaf@(Bvhdx5P72nG{k3oPJY8%dn$mB#>JcuMHBPX9MSMeMQ#*K&K1B!9uP}0Y0Mn)16Y;a-<3{D~_ z;1p+Pa3oF9#w!M1uFg+IR3o6DT%omXi<_ReUp+!G@VThU_F92-Fjv=8*7IYm6$exxw~;0xTvc3)=zW7v2Q z6)<%07wINLC7VPj20lxcAbBqXpChpf4NirVg@7sICj;&PJ|eow9_cHGm4ySUI1`Oi zbP)~Ikw{~qj5G~|ms$~qihJ+G+(MNKWMwE}SWwZ69#g?&=@e=s!7Q;T7o#4D zvKoQnUv5^I+=2rBlHP;(lZr)Zp-fe<;Sd@^@}(kV6$5wI1knKkfk%3vY-Kq6KV($V z)f$*~o&!V`L{t?6Yquw21&3MrPgjIoRJXC&_aY025j>XChLp$(Su=`^Gfgotc11y*7$G+TC%ll(k~LXe0wl{o=uf0&itaRp25=@hTq59iI1Gc+PNcCGs2PIz z0)@TcF@ng=A@|@hq?8IMP)LEGf)cWCn^+gCaus_Fhx%P2V(v2K;H(2uoIzBItbKb0 zrU2-_VAKRxF~=!Lxa(!wLADjdJ*F>VN`R})-Q+{ADHKZq^d;{rwT9w!z^o#|DF%K` z!SJA%!91?Sp^y;Ek_{_wCqcl8FGRv+Y|MK7=}%BwTMQbwJuxpBLs zJ_vXa2W^o{#gR~gBuvOYkS_V@^35l)1xox%BEcEPfZIW5GVMuJ0EP@j0o zoTI{|MVCf`q}}4cR4~!au2K(9O!^+j z$7Qj{Q?U<3xa>j@rPN^UDG_=&^*xDa-5 zuo_p2%ccz6OvqlMBhvH+E&_P%P!+~?AIc5v$$?1eg?S=j3T{tuFC39k#<7ZnyW5XI z1!EIJK|tMQ8%@#aL`)a4a>5jc^d{(9f~zaR)&NJ*B=n$2mjI`f`~#ss4#{(hFh!RK z1-RS=)0Dlae^4+*DeZ7<${BGuqYmR3_2DH{LC4}*1Vbt3Hg5}p$50j~q?m*%HDW9X z&7g_&6Q(u(qi_e(%^pRMtzatcuy3IS$SLwrDdD}t8FpzyqUs3FnCd7>4+@l{F9M?xZK3AHO zzeXmQoI$1l*5Y8^_Cx0ZVBKL1Ljk7}9kz3ebPxp`3DI+Dr@=TzG6qyg_sF@_#*tQl zYFip$5_Kdb3L^DYtu!vhu*Jc|^F0#iZ@zcF7(*-=XPe#Ro!r8KF9btzIs=$348DAy zJXCxZqF^$%mjnq8g;A{_FmqXzLN*2peZaFP$B2EBn4^)*&Rt0i6iOP0s7(6VFYO3m zHVRM{M1Bq>2vz+^;z`>OMN?6AO-3K=WmeEI?q**t_f`KPTk*a|F z(V`cA_7ma(tVkXQLzxtK^q_8gB8%stdgC0T3s*;8ti6FO@km@EqH0s#aa6$%Y!wH; z$H|F6m&6HME~MqQ8w*8Ues0F%;P*j2tBGRs+|Z>cI{~>e#etz<@^&BOq=^(E(tt7Y`1zzL`(YpdsHiwtI`S(5B~_V8 zv5~OuC=yJE=wv+<^*4~tgFAMlO$UC%k?-8esBvo}?>jB-fUpPN87iuW!bHk;U2!mV zd#$s8cO4Un{0(G}v7$G8445;YN1ZUTVg9(gRCa#-MFMS68HNdaR*@%RH(tdhsea_T{7$J zUy6}*nIUm<$@_#;(nwuITAniW1j3_b$Q7U`KOS9B^%}*4GOVqF zVSMrvMZ@4S7)7J_jKwJ$1sB#K@Tp)jK6k&OVR$;LsAQP@_J2Vx9^^KNpddSc1baiW zI?}U=O}qhQu!!>u@#(`L4v;m;`M#J zu47bOfjFZBfCaCM@566F9K$C|Df}2vF^sADB!hhaxJjRCz}4nD6@wCM@(syyg*@=0 zRAZ_^F4!lx=-n{Ql!S}UvufK~bxGDI8Z5d_DDBrts<`LY2iUGZeY8l?Ck%A!g0w6@ z!0^@u=(NBtbSm1f&hrQRQ_zZdiE}IP9R;n30-aldrWLeOyR`yeD6myWy){9f)?IH& z^IT!<_yXH^QmJ%s%iy1`jXuFZ|KFTpbpwPreL-uaQweUZD9uMfGmU#QB}AoDY2BMC zAtW86a&M-Hco_H1LzyN8&y8`XIZEqL(9E6aNC_&inbS(P(;F=w!bDFdQFAasm75u@^$l4kD2Lsm9Qc2QRQ2 z=N;=#AEZWJdqmEau*dU$L{)%4ui(6tg8x-ZAvdXi7AohCh&mZPe0iwxIStu$1>L3`naPtUVrq68bNJXY1Vl z3XLuHaU9Pgu?#kUjMH%G3HlW5NFd%eF#d8K*pO;WPd5%SI5o0;iY4*>seR0NdsVwc zb4I@uLl_=s4g9VCt$%~N;jHK5_USYi`6+0ugfr{7;()( z*6`u9w``shrzL1T#L(ViOs55C-7|3fgK%8u=2$Do(xipq()(IR*c$ z!CD3E(f{fySS=X_*G&+NMF4S1-lZ-b+II?=2Z0U#GuVg7aUD45JjfIK!C^t&lZ{qs z0fNDUNN;e(!+)9y1z`n<{99PegM%i9>Ga`$bqPH8K(IIvWO0hoB<+JX!BB>zJFotu z+ECG~LJM=^5ZVMmkppCI{6m|-Lk$bMB#`d4auvjZF(LsWB3+kcvjMs&qiY!*6W1xpDz5F3{-DTd@)Q3v zluvGG*OBv)(;oVq{ac53QRO12QQ;bLnof7&95jc+;&c?pMM?)M9waw%da`Ri8`;w} zpGh@Xk_?IUo@tqa47GZZ{qzIj#)VhgVoWt!;Te{_;;E7=7YaMP!$w?jTe}e^skd4! z#(o)A`k7U`b4-`^aqVL|N$%}VF|i$^q9xaJT{uICl;c7ugZusGhi!9w?GIo`R!LRU#S-nqd-*C;vOxxqr&`u2B%8!UA5 zj^mvhEOh6LOmOuu#Ew`#aGM7OHXXc;^O-=md-C1`CdF=CyN!g~~fS`gDVZsv6thY29F< zD!z_)Zm>}0TE{y#Sg25|L&J7mnK!g1y^7kqJmB(SE8kBi&-Qba~TF!gx z1`*1P`$UhNtPi_zuRP(oPIrTc7E5zY=O7h>2;S33&d)=Bwwk+7O~xR&K=V4ybkGCUWfF{ zr9t)FKZV^eYb;Qg6dqY0fPIgQfA_Q-)r=kFZo zq=!*Xt=c>N-PP&u)=q!N*#2%8rE|g>eh~zelua17|I|f0DAw`FflS*I%D8oE!+N%1 z^A^C?hSIT}+Hjs9xb^}UtA$eNZEd8VE^Xu|1Z^KFXTVcI1)nKG1(l4zkb>&QphF6( zZ1wPNcnK+}GF}8Xyo3}~884z6UP1~g9e8k71w#rdIYUAUs!chRR9J^rMCxLmPDa1- zbTZp7hgxO-9a2z9wF)VycFp%6P*4&2EkXqq#&AeMW!(g8NI?xLsDhi%Dda)5DWPt7 z33*UM9#j`!bjX8BDibM?ArGp<2`*`nArI<*(t`>Eya*Lk%BTo=P(uo;BW)xU;eEzgnXzWA8N>l8uFp$`HVy7_`M#84{4|&4fTIbL+wL+(N_JRirhM? zQ$;E+OT}>cD71`oxG&|x8`0#yvDaZV+wq%1wpvIEkk*S<9B zpaLLW%Ha(FWY!i70FvX?8vt;)6bk_IeJkD|$fr74P}e{%jpGf1e9BJ*7XsKyfoQ z7lATnYIOt(mZ>!nC{3o;MxY3pz(k0rS)ZiSq7+OfLjL0Wq@4<=w*Ok1_)+=VFoB>fMW(oW`Jb|Xl8(C z28d>WX$GiffNKWGW`J!5=w^U#Mi3<;Go%=-W|MT)58VOemD0emLX;Mwv|^w%NTv{_ zg(xj(lm-@OLU~wOjwU1@HT24@_7!5=~168C- z#R;ND)QXG%Nd1R`%bVZxx-NzUU9=8W+$>hQ35}}Ydq99O8IjX!Af0G^= zm{wp51qh!HASglZ2}t2FPnC&nYw9s)sb~w`ySk2O7sbU3R(omK=&aK7_Gpmp}Y_TAO}{%69WBTe~mjXVhdP*`|>l;v>XJ0 z3mZ7;mr5c5o-ph`ETm_+pvDQ7Ad`SLpP{^x0PrkPfWSh)(xPdVpz3GD~O^9 z9xM?8%c@y5*jeGAAg+o8&R?W3;06m*FgGykrIb=9gtX5QW zDxNJIA0ka2$}emMsJ@KK6RNIhX$FgT(AY?=O5{W>YX?lF2Co)jr2t#d)j2`XXbOoR zFZ{7ZM!MBIvr>aUs8qa6s$fyDWr$R1nFNiR(TZ9%ZG45q;#d}0KG3jKKGRhYN+h6G zaT!S9!_`?|nz}TQ<0)khoMX>S0F)r3a*(6->K7qg{RpII@_=zN3Xw(9>5ujj1jaIELBvE)U zPl7@18wL?;52u<8fmVPg2)-r)LQrc2tsg|;L5XzroYzgL;ze*!$F#MK2+kr6DRLV8 zw{VP$b>WeM{?xLp0P$ToGW5_jZM(rc4A852 zo0*})HssZip9C7Dwg3Vs91NU`9%IJ?wt^2Bv~Va292}Ow3Umj60aaI84qV3ukzP1D zi~sD3l&d>0-B9hjTKV9ARd$m^7l0?2fTw7+9ogZJQ#yC zc}@!rSL=tG@5GHH>hXXAq)0^@T_qurJ=9r&Q^7Ytj9CLN$Vqen$Fo}G8BO5~ENK^c zzyQYV6$VxfKCC7;u*3*N9{2jt{XQyqs#RJZyHYv&oe|-cBZ3ya0|AQ?bB9k|27(h= z+3v-VZ!@ARlDtV@Rw&^beaj z(r7gxJ!oCT3V0Zy(Bb_U)*1c2SR(I@4#5mDl*Ig5m4?&8+aXJ7cp|V(K#PT=0be}P zD-f_8Sn_hn5=qTMN6{i6L#qJ`O$7ssFB~p-Uu@A63>u6K3pEr`2t)b_*35!Bq5IM= zR#d?l22)aw5D#Ji{dpgm(U8>!JxLl0bT6_9OW6!7SeSevwG*Bgxd#|vN@@>cpgDpX zpoR+)4}i)H6$vpodI4GxwfLXHQG;X?dO!iTlpny4ff`Vzo1H#)Wk>?>6Z6pd>fUOTNVPLf2bxcS-H4JN+=rD?in4pbI za8Mn2co+&Noq4Y;5wsw9&;m^zB&b2y69Gt45meAvF*2lUU@&ZpA!X2MwSN! zVhuzuYk&j+Ed|bj2}A(Y@UlpVK#l-dR3SZ(65H?q04v}L03jWD1sD!Ci@XBxl;DX> z2@p!)$vp25U-lRnyTJRv&`@Ew!yzn=7?i+Y*X%(QNWAEEm0Um0N$`A5$hQTX4#432gK#KrM9Lb)Eez#4eMK#0aQ?f5@L8|3BZF*2BfjU_`_+Xd&K!MtkXUaNT2lp18d;vIiUF?yaRD3JFlS)lIM{821xi4 zw5r0|Yl2r^h&AvI0}K*i8AiM8K;)qx@JIlYHUiiX+^m5ufcH^F>@sqoOZeAvkoquK zq+hHGK?f*eM9uyS0)gn(+X8sCnY9><)MH5#BL_C(lf;xD0wAdhrxi=P*8>8e-xC4} z$B2HxB9xI&u|Lp+4f|LJm`Hv=;V~-c-}|T#_ySY_q%+DJK+8ceOMinEuxbISdZEy- z@u~}g{=HkN9F!j7L-K@Sl~MFb4y%9+!3z+YDjXbMc_9|T6As#kf(qmaPGmy?Jm;WD zWLQdj6rL+agpRHp5O3??ePD`!!$W5?3_x-St;qU0q#$%d4Wxncah({Eq{@20fraoi z5s3njzDknVW){Lx0bLo{tau}c@NB|qR!A_s@{os9IwIIMWwG9g{ti|Lx@Bx@3h%OeA2EFQoSOQNI5p&1PKn6Br0HDAc zk>jv%)u;-Ie6PF^$oB+5=0qA6K^#~mG9O0x0?MMzX9Q~%Asvlc^n)#XL%)xqA^H$N zQroOT(!~ViOG#{*9Comt)rAwtlE>cz5G;bHjYz}}5`&kR=w1ttDP*673S?*?x>vYG z5WR9lEP_`6FjdT*hLab8gOvc*V{=i!cLHs}4{G$7I5vRixHbj=rx1$_Z~8^5m!Rcs z`w-f&q#rYWXaY{GNF>hb0ST7CyOGF&3qcW*Lu&902~freD6mNwMWD|@@k5bd_W%OR z-~$L`NV2xrB8S;SC$i<_00I%JvLE8nV^l1H_fdJQJ`uZJ0jBts#Dt-aa!^qt}WaOxLC(B3{qlRlqJf1cru-)ap4IvG`Q8+VDSMB;<$8@1{u7Cn!MIS9gL=n zmkpLKDF(wJgRc|=ElgA7Q^+Vl{vb9W&I8dNA$OGq`Lu=3;B+0|M+&Dj5_|<17p@s; zVAv%XToy|Rav|LbVzO`)L1&q8iV5d=q;pG1VU*U>v0daS@K?;D|O_ttkfYxQF)&wlV^~F1W|^;ZcDFg&1Gq!0^H_WiY(s z9^pG=$3bKjoV7q+Aqk0bmdMg2Vd?aIjzK>>}iYGfEn0B4NJ3Y5+$3fW&Pv zWCVC$3}{GXB*J&@I&$F#b`shM5_qB@)@Vxdz7qsWZ5I$qao-8ZZzqqwKN^b*6keDi zLE&Q=5c7w2gpE*GIqime8p=E38Kn1627O^=G8_(`_>D`>NbTnx!K4=xXSXNqBbI6R z*C2=pKP7teUp0eP;R6aE2&T9p=M*SF?mi9=NP7+@B8xC;p*+^Il#{0K9o=9v2%6dj ztQJR0$TlGMPtJP*=@f+%wlJ%l5kNV1(YiQens3dBgd0x|YFpHnl7O-QB!dlM6&S4k z*eMQrb00Y$od|&&k(`t^hdrW|aFq(Ofd=IWp$u5eg+zzv;TD`J@};YjpbNgLj#NJ9 zB_Yy?MO|$iBJrjj1BRkg)#YRAF7~4gj!$J>6&awej%*O;*%MjB7No2L2Suo>yAJPz zE~Q;jRH{1cEn8&(oVb@N0no{Q4-p-U+6m^>kW=B2v>O zSBFEFkypXHnhqckYz?NCE>G7x{RgU~OGkv==H)|4$Ha z^P!>>g%_2EE~NlC)<9N>^3~8Kr%(~8=)i!(IPk3s6{UtQRXKt_MAeO?%0^Vp$V2)^ z%NldEA<3Kf5=IJKx%T`MoVSMaLNeTuB8p=}ex-gnTkD*Qsw|r{Qgw_L`hDh9{W*7Bw31Ci(mz zCn6dGpAMvZA?#|&DeVoMHWstV>I)TE5_?t)J!A2J_X>G}($l2Gz z-u5FH=nWgv(D@((>8PMXoL!Nzfn0H<1rjdcG68Ck98fsIkP^GR0Yr4_tAGsL>9j9! zXhSX}fo+O}F^Y}i{JN-t1Kf|OxbuefJkR2^Ymh(e>5D3S6&Ykz`XB?EIueCF2cta+ zFB>woXcZ_?9%uXHg9C`mB3s&z-RTSGJ}ZbwgTt?mgm5`S3x(&vC#6s%kBmVam?$I( z_~MchZ}3V3#3ylP2i_LDp9gMs1R~*fmN0`51oGwznK=vpk&lIu017%8xLC|i+&~)5 zCmm4A9uHGerUVhE$KVB&HYXj1r<5(S1QfDrZ^U35K0ls-Ts^fsC~_9zfOiOgST;+M5+$=m1+`GBQ}R430vEVg1!zEmf|i>x~#SyPr$UbLq|g`H#_J5O=* zu_XuqC2{K7aLIq}#Ay7!UB(-yph!Z^0CiNvMaHzqiFF<>OQyv+6 z1QzrsDmhkYVPRVcdFXs_0WpQldWZU?MMjx?02$I7=WW2j3%M;l7^YL5FK@W;sy*3{ zddb=o*rjq{ye&k2`V$C))F-HEwipf0d$2gixkpU?dM7<>-@TH3M2?mp`l&-y~F4Y)EQV+_uL#Mz$RxVvn9}@a%)~tDc|CO*7 z?K_3N(YaIGat}QAKv-Bv^Px#8x?hP}(azk2J+%~$_kKI!*e{kQy;`tjMU(?=gaqH10`VavGBfB3wg zHR<7d%0F7W>OD`g_0L_pd-LbJLx&6<@z};q>o={xZ_E1K4QJ14ntk(dO!kdtcMtE_ z(S7!rD?2y-(7e~RSsQC#zkKoH#YA(Bf#nZaR%E5W_s7u&-x^bo4a>fLIpxsdXGRJi zY_AbsH9T`|*$+-EJ-@fb`CAot-yZN|*FUdx`sRrt{lc3!sk+e+p8Vj5y3-E!%$>dJ zvE7=lZd{qart+OzHAajt*L+L$+mlA+{r9J`OEL%7&wOFw$6IE;Y#w+~^VRjAo~o45 z;^3V>x*y(CI&AgSt(}ga9;A74V}-r7Pyf)PX{jT}@3bs`Hf@`(>86Qa4O_Nx-?6HI zr)s#^xKy<(OCy%1f7I&YYTfN!^DBhC`2O{Z(Vw-Q-#sR#$A)!}EKGl6an>J)x?k9M z|GdOqE4FUkxbOa9%Z`qCwd4AE4Ry1=uk*p+(G?C6l8%;L()-i?Kjyso-Rp-p9?QJg zNV8|n1-|K>Z(n@5T8XKj#Vr{7^{U0o#pUJJ->iRUZCtJ8?N&@)7(J)qm-9546Q+(@ zS|)P^C;awA_!rB|E_v$LjHB1Sy7ft!*qra`w~LB7Q~F$=Lst@>Jm0U{sNAcsnpWLx z*e2_fZljyrdvSib^%Wj!E*{MMW@++y=AOTLp1jhq!-<4(hpX4$JF(d}UBYHeK-cf| z)c*E(_!qOw-a6gz{M<&rj>>I1a>x147mST+Z|%|c?{fP~*SPU>w_7D8ynxAvG8!E+mnP6*WS5SaSKg; zf6|c(U-iDTYt8P}PYhi9!^`E`K6PhN^%VnOD_42jCrf@Pr78Ih|5?45u*XImoHBR% z>Yeci!d8qOn^o)kNAGOC(P(D!ydAwOSl-ahIlJ(+j$z{`T;$icZG5P0={BXC#+IJn zZ$hunj(^#{c<>;m&MYSbObilV;_P>^Xb;o^jXPpxaJcns+@Pzo6Ggm6|pC zkm1^7rg`qR?xzOFS~X_u01HdR0C?V`k3_=CScH zbx$YVZJo2P?8oCvd{Jgezt83l_~qL656;D1wUlpiIP9I*e=6~;c%w?Uiz)M~oE_ai z>yzpur^TFG*y+zJ#?D_4yWDZ)_b&}^GiEgPp7rDUuQnuI@ACDUb=MPSWR@KHZL_S` zGN$xh*8OnR4&^_6=gMdAbXxG$$lQBXpPZ_txyMkA`>^f+^{Xwv8Cq&vx0EY8zqvf+ z{g)r_BfS52-POj9U%gagUd7jXo%?%ro#}PjOkLY_=9?$x3~O6+lsVh$lKIyO@3lNPWb)(hy}YtalPbHi_Lu#A zkBPgX&q(Z>c%%V)KJ`+^+iP0%>l)W=N9v4TO-834U%M{h%F4fQs*gV?%shMg>I1_T zCEQ6GmEI?9*@Svm4VzzmuggYFSbDYet+6|2J=t*4p}nm?$%!ZzWV5`oY$8=5Lx-~(|4w??U2~(jlFG}|NZmLxI^>4Ntn_3 zSynrhIbHXcxog=a;?VFjE6rb(II*#7de)T3UjK2i`qZrXLl-Zcw4ly}FJ9?+B;)03 zn!1B7rM%m5N~PP6Yo@%}Y{mXNlUpDCHS%cbY{KqKTw0r>8&7mSvb$Teg_A3_nb9cw z&W<(epF5l{x$Yg1XR|2-ZG`>{PRP`%?Nw9 z=8m!_KYRM6T}_*>T%K}q@cK<7$79jPm3{n&^$i}#e(|RjlXDup{K(?DYv)gYq=UKf z^lwI1v7Xv^bK%01b%!0;ma=db^Z0AmZq3WC)csff`PQ}DADlXJ;MMVmJ}kGseAa@8 zDrb*m*Un$j@?FiNBL}9}s&VR^>dK9Wx@P61-op$T`rDKtJA0kHJa6;PRrfTyzA@pg zjdv#u-rDB7b5E7Z6^Gwka5$wxorW!&*ZAC!b)?C-!$VeXjla9-QKC-wC--c=y;g|)?z3$jhA(J%VA7*?TMb$n zv$f)uYI_c8-#D=7bzxlYZ-XulXfd1H+{?W3uaya_7OvC}2l>=A^j&b?+-KIr8a)Oj zE}HktpI5%9cjt$`@vqN)v)lTQSHFF^)(^Wn%{_mj*T#%#YksXZ^66izkBEP3-<|5! z23AddCb9c%^~_3!XYZ)qJJ}?1#Sk&|*aweq8uCNyN1x7}*f_qUY4-emf1iyTQR>~_ zhL_s??QsZ{F!S|C&t0F;d)9pe<0~9GcJz_1r_C=uv$$#Yl`#F6y|OBHE>~v4))_}v zU-<6RF9&`3!0LDZObr{fYIVt9XD!Li{*~Xlt$MXaZ~q-(82Xwnwd$`|J6!G7Q`LVZNfsWyB;%9#>nj^>-*@wC z!^iiXyKv<9`8heQRwb?ti>#SgY4gJkIPIu~(eIw#zj1F^?`FI9eRHVfq?bBab7yEC z-S=GL-zC?s(0-A5@sA!yxqdzSHf)vi+RVDA9&Q@bx8v2^DQBx^eKUR#ZOD%7w)(fG zz4+yjAw9x>d^qKe3SFu!o?ZW?=#M(w_gv4k0ZmKlo@hKQVeO3LyJln`DAzoz{MJ){ zKJfm@r*H04MWj61X@AwQ;q| z+m=QioAbhtr{i~jgYFNjC%@OZ_nUwB`}XYb!ocL}>xWp^mS`UP&Wr=I{xtU(zY_j8<#6yqH9A0wu?%h)lW=*;D_{T?hW8=zyuP7IFvDUQ#Z$ESImE4c}W$k}v z%r!{T_eTxxay?^g56#pECXOAqzV3<+iz4}Q=}E2kri49$i=C#l{;pP~rP>76+asN zN`ni_4n|a%{?^*1qdT3?S=GGz`}h3tYWu63YcCnUn0fl`xvi7MMs@n6{gSmgeAwJC zs$Ck=GVR2%l6xo3zPHB14=$Q|GN<>IU#D6>UcI{Gn04`;zBZ+oLd`Dr{N-15=XbE0 ziubY0FZJsE%EHa%TgA5AF_bAYd0ytN!|`=14TxP^akM(?(U#g;e~Jf}mJl~?&zTh{xzoSwO_EUNR$`CVfZ@12&q;@y(1#Yv;*)+;$?`?8;Zo-%p!(-P^jP-G3x4|WiH{ZwX`A+kO(;9;MA^7zhvRqUma4aR>7vxA+~4o} z$oRpM8TVy0j(O|Y22;|>-ru!&Xs4m_^0t|6tBq`ObltseD$Px;((khergW;*E6Z3Z ztn1P1+gtDX<+*q2Uuik)g(sVJHjU+abWbhaH>~Z|Nyce68V_5^ZYVV(X4aMan$VP= z4gX^P^>aOz4{F|jWuHGQ414;4&%dhw+ogmdjo(Ztm3HaCg6ZE*+P-S_W&XqSF|$TL zyZ+fVKkdm0U!O4V?6G;Jvp=nWxM#gf>`dmq6Bn-EZN99uHSvR=MlO8tc-!IgGv?nr z=tkqI^PiYFA$D-%GG~_eKdqWv_0Q5j&6;twLE~#Xrl)N(%^Y?0*&QeOb!T5MvHiiL zE1sS9>g)Yh$EM{}Y+nDy!!w3DOQiErNBJ~1by!HK9fB|iM4`j0QaS!r*sFzbm; zd#`qS{IATCY5my6nknTP?k3RiFGqUoPsTzbA$^J8Dv>3h}iNSU^cX`z)H!zV8cReEIhZYbVSY_2$^SZ8q$EXqxrh zhRUOt-``+P(%#kU%eTl}eqmnb#e`e_?T{X6*Sr;qO+yyYOgA?-#56)^B*jMbGq(>YMuR!YJcs zYreVM=d*t8ru~tT5_a}f+=~xKH=eV@I`PCWdq<_M2;Z}+;-)7%zcj1QtE&C0#kVaB z7L0iLk&7`^zU%hReGGg4Yj#_MJH6`f>wTt2<3Y_MBRi*xbFxjP|EMq>mY4 zns)2KX~&zqIJLr!@5&xwS1hQy;i1;ms_@1n-SB&7EvdNal?|UXe}81oZ|mx8xmudY zZOP102RCH5?RvPxs-b)LR^Q&d_uHd-pFLQ9Y?JYG2Q7Nx*ji2M;})HDai3)mMkMw; zbaiypn@=XBXTK3Mw{3R9hHJkq-cr7GweBZp)z3J0e$}dxi%*xYJSb;(&uaS!mGR*x z9=+Sm_~+22N$vN(Vmz3AdEMFN`<^>6U}j2(k8XCoV4kz-_N-4bldt?5)@W73=z;Zb z{#f;7f9;6_uQj+b`sb^);*TYze3Jh7d)X_kkv|Ul`}n*P4;e1xB=ng6+3tN!K5bV0 zZjIr z=%414j2U)xXZQCne6+lJ^2z5H9PFbZB#( zBL||&4ScfHx%#CR_qlbhQC9rww>R!zr8+om(fLcUV?LU;>cq;?s@X>)DhZdCHP}A! zm0cY&FBr1lXsGSg_v5<5roJ-u@YKake_u9f$VWT--;5XLUiu_;`lHkL^nLp3&ZBR2 zT)(s4<79748MWcJ*-s2e-L$6s+I#m;9vr={>FFPH&Rv<)>|jEl?@!HYeELGo&BL~( zmiX!2ag`&hbm{w2;^WCz_IKMeZqmUYD=qr7{-uxiANzVt`3)szEcvZWx@KWy+nh(= zZI?5+(rLq}aU1VWJD!?6d|cU-N3%aK)p+;I4fagEwU9k@`^>PEl0TgMbj!4{y((7Q zelf1^*FW>tR~Ig9@mr70JHPyR#I&*tlWSRYD|+eo4eBuKg4VR{m&&@~CoX61-Sz$s zVat};8}}Z6qkZ<9Z|H`t`FmvBFk0yb_g*-#b=IRB_Ye7^`<7=0?zpgF zey{jFzqYME^p{WTZQj|x-g7yv`7QA?a~nonU-tB@ea}sg?r>=N-eWnLeRrjObGYNc zX>}HFO-`t>z}!E z<&A^AvIbnfz zGnGmD;#ey2;Ir(K+{Di}pEcF2xNTid-NiGnHJZHtyRPQ2xHCCrM*jT5HuKwmzq#;_ z%>xGCc=nfDRktMWesS)yl~1nAd2?XL+;1;Gn|N!-R|`&te^X)lsDbD1?4CMaz4zO> z)m}L|^s`M1#=pCI-||b#R@_>&aNh3kCU&^JWA?h6XI`n^I(zr#?5v41hyK`Sjq1Tg z@0F?g<1c4ki6|f4>UP~j$z(ns5=zavUSreU@k77rmR2G2%dF(v_Z&IB)O<47@05hLviVTS2^a|MT%_@hLG~FIUv9PFQ<& z{;(q-VVfV``RWs2ABZZwXw^+!{PVjK2dmC(Y0<938AIu<+cE8&c@^89xm7j zls;FPTfaPf9$#hnl0{8+JobH?3)wq2-dx+G*Ngjii)~2oq%AKyBj><@i1i)H{h4v) zgSW1|`}T!e!&rj`? zv}5fL*;g~Bd|2v-y-A;3d$-5e*_xXXi4(pa6&{{BJ6v3SeO~1g!|R+W(Kh4lYRlhw zZE1;io5k6`K0PIO`Sfc;5lt8%`{f zJ7M4XoS!!}Cv*JF=Jj(2-|etv%fs0*5fw&nZ=Q2c{mctH@7DZlPuPLqTdiDPuYa|% zPu(3=UA(vS?MIp~nA&P^%+!|-*7*fmg)roaZZ#T~x_fntZuVoBpKRFpwMvtA@Bj9P zoNwk1IeqfV+1Z`eMlERBaP5VP&D(G2c~2*E($q;ik2YNY^VmOjp1Iur`~q!_@#K@r zg*baI{`r<8`jl?e;Z8>BKC1^uHeA|xR#@-JIbENaapCIa6~n8l9^W&)W|RB-PODz+ z-oIBIeEL?(^)IdWw=`oDe6W?~u=e=ejSJQe|M8G<;IUF4n^VF}mdX3(FB&nZ|1@3y zq(`hMS;e&-sToBe(1z86-^ zsI_U@{1YqAm45Hbq|9N9g%PTUue=!ZSJmBH%icQr&ChqTIz&%c$&DLap;}DXq1*LF zEG&^*xv6eYZmr~VvvS&IE4s3rjV6WBKU# z9c#;E@0ll*e68}e`r{^)xccXSnzS<`x2(T@|B+>D$}Rk<><6cgRc;$O{gKh*s+Ico zsZZm|uRK5LHeb5)t(e*87yexNZbxwr?UQYZM<)M#C!^t{j#n~!Ha&53^ZMVW4{Ou0 z-M5c_Rchko3tuK?)tU42Zw(to_KaG*>gBGlHm(tOyl&W=mCjB6eN$a4_tv_mY;yc2 z>*d7Vzc(KQmGAs`ZrkcsL)Q$R@$&HxYgOzKvorF^X0Ij=yC=;&ujlC4(O+I}&^fwy zYU#+g;;%k>`BMMBB`oFRUs{ox3uWbts0n4)>?nKr?48|Xhs5kUwswa#wL*u}^Y*2_ zwYtTO;gK6Fja=PmZM~|Mo27Q$@@h`Knm2yg+d1X^W~uzL)4#2MZ(h^N?M6h_%I=$R z_v|k(>3&N)F|O=$X{EoPyDaVE#HtJDJUDT}`sy)ZXYWM(*>ir+YR|o~ZEVv<)l*7e z?zL@aml8P-F8R7Tx%20g?Q2MWbNK%3Ior-|Np1LoxvKupJEyzO>3Jw@#pK+(^Y!JE zW{v87JbkC;u}Y1XN4DSlL!0IsYNXydXVaYfHZHYxk_;(7kJVsnm zapGT<-!?A|U%xR-Vxs5Et{DB{UlX32Tek0CnG5gf^F^nHrWb$dytU^3*nzFT`0RsI zx$UkzeYjFNq2f@(8lg&R{c+b%&6#p{YTYxjy?Zv?v26LYy0;GI2&a3jZ?NRSx_#9j zKd33SuWDRw8%f!Jr|hR=KAW;Vx8a?(1DD>3sQ&Of0IeD8_n zkH1ytR``W8na@r;vU?K6T#{eKw9Up5IiV*3GMJvPRW=>q3WG z<)8a&Y^U7y564@LZ%vHO)mM2<_0i_uL$*|VU~dF7W>(7LcZWPNsgA1G_PUwfE_BcO zaC6Rs(aR2u9n*Mwvo-9P2V2${K*~&oiKBK88+Rw{WRJ2JUTsz?P9684?u{3pJ>Rum zc#W5zZ@77RYKxXrYc2dMVhcYgJazk+!wui4_gs$;wm(0^aDMOA4V9|j?%r(4;P2|J z-5V?GHO*8qa_9aZcFsz-)<4`~X#-PO zoG|r~!}lG2Hh1ix@QGaqrk1oEEnWWhqqCX!rmn3Xvut-t%&>>fPuEw_Jz1(ogHl=5 z?`E%<@%R(x2Gkn9Bq#0X?~f*rcvW{G?EdqNQ1Y<``#wE?yv(c5esN({na<6un>z6A znzPNmGw=9r=9hJv>|5Ud*K)H_dK7vEOsoHM4z<>jT@ zzBj-8?;lN@^T6dvjh^{q*xqVQA8Y>o4}a85-1Hh-=JWFX=Dcm(Y(Dh;-rv7_V{iJ^ z#O!Z>{%zy6FjLb}V_uQEoH1%|rIA-lUnu?l`1{(|eRfsXzj~hu*Ir-s!^X7lerZ#4 z&)m(H?X5Fgwz&81-ut)xRc77ySB^F~qux5^EOE|F>!*ZoyK(KM2ji!#@3|`Wtxr2| zf1$z2&4;QiUbyYV#tyX&of+v)WRD$&83McT+7Xx>`4Ca9$SjE5&DaOT+CY<141UnZwCneTOZoloi&N> zZvliz2Nr>S6MnF!68or+-QbzP;Q236K6PP~YrTUpk{585kKD8Q7HptbsQuq`Q3I zA?R&304%&~)l`{6CEbGq-mnF3I=XYGdh}%qxO}L;Bo|ipfdk#s6HhvC(#9<3qkn7y zP6{G#D6TN6LcV08l`r+%jlz<>!5``Pwu(=67>>9u$N zdgQM*nO-B?;=P7FD!Zlaqp=M9$iT?J17x6gGj!I|(SyU+!`aEC2#9o{zHmjq{_L>+jDEcVQuT`MOzYciK$sM})mVv+i$G^X~kRC3c)sG3WEn>385tNExT_4jb|Jm1!5;`_yA+~ms&Hl+PBLG8SyT%?4q(C43%raGt+w?gynLeH zJ0w@zVqm|OfhWJh3!_&2yK7bDt@5k*gC+JQ@$R_u_XqsfIJqRSWu5Ucz;bSeII*_#TXBx3FY|l$!Rzs}-rdnLd(p69FU;m6al_8e;(x^Kz>W-z44j(*6$G`i-uA`+ zXzgkd*HSr>_0<0e0EH8WimqDc*6&NQwxH(z9y)u;_{`s;FV)+!dl&MUy?GLAVjqof z6#b(adzbic{_i(C#)V1t{Pgqx{qr5z0eOuKUK7`vDz{dcW{?ou8cLD*u001BWNklC&OxR5X;HUcDfn>rdPVuQQ-p3kT+Zd<<||rZKgSuZI^bN0pPl zSKk{LFrV8rtl#13fr+!JpWfn$L2*!s6vbY0hb|xsW8Lc|<7h53jPCIo$j9jFbg2Cp zqh1{4*Z?f1<}C!aAaYGimn-_$92*PE)x|&C&-4W`Lw)7OaNA<>Kd$cWWL<+$e)mnz z7dtP#?*VuOobXjJyXHZo_AkG(O#$c6v(-|M>u>gK3N(}|f-bW{oZea4JolagZ289s zJPQ-D$D5>sx~B{*e*dbO_t(ZeHUQUV@M8V7GikE+>b=BIDTuZ5)kPoX7Hrp^cEgHV zYgX%`S^%%wBot4B$Qd|Z@-#vBmzDXVw&9g0Jx5v7m@DmEKvd7qpX~B^dHUC1*B{sd@re%-8GWN&b3Xho>e3^Lg3;-cfgK0N&zca^-?!Eutw1tU(=iLhK{k zO1e+0k6N*{BI?^Z$d!GyP|q~_Z4m%(9Q!k%>8A3>BD$(B1X^jYDiom>SF}sVCFhe7 zg`#h8BgSYLrn&sXKmTqvf&Tg*ezp|K>+=^j0eT9soV9tVz_w?n$D3<@Y)7Md- zW-Ma^aI?9tl_xns<-!Hdh016_(4KX))iK%aP3$C|lPk6W-Vo32-H6l1@dNwb#CIzN z=0;&Wv{@`FIx;O@-5y(l^!Ok1Z>{jlht8)x%s1A0G+jht;zvqMpVwEk_~9~MgVw^4 zz5bAX1A&*OiGKX^wI>AzxaEN$l!Pn&AbT8sveV-w@gOhEz@F1~Z@C{EfD2Fdq*hj& ziB(apyty2kZl!vpv$9|uD*UjsGLu)_9EtX(SjLDeZ5+EYaLZJw_~$_OYyzHb6ZibG z9T^b~j71!}`~q$AY%Fd}m}5 zMUDJ+ln)jDte02yA%4&ezSG2l3o$Qf6>ugsXk6L`Va0{e=fUr+UG3;z4vmE`r} zx;IayAl@Lbr91s4K0-Kp%5X{XseW6wJBG4fUYfD;mK^ZtA^u5a`3}c?E zjJCco{}v18Co}p5QThQF!d5ozuK@h%n;!2+Fy5sy{eXgj5K{m;5|P=EkzM3Q#K#Qy zqyaK~Y=A?0Ke7#h;-jGRmgSjN9(X-MK%!&d0861~l^!q42YqD*VlG{2Wu|`Cd3)sz z0J5P2L%<=P`p%u+_he8uCarS81Q-wdRS=-b#37>Wlr1bYvKpq7zDICu*1?FHWjSn`b& zgy|*7`{Bp=I%7bW=B=lP^PHv*!+VV<5eGK_d75AtM-J&q&-y$WZ9i;gxH6+G>8dF1 zlMV8$&q5AA7S015kEo!q%TgAT}O7Q(Mho|_`pbS{cg588zmIdKT zTrGjiKL(Srn8IZmgGd9032h2MH^;Z}9Rjg`^s~Pex!GbYd9(JT3pW8xI*Q*VegV7} zLZ_=ebsr`H^@&{A0JPbWlCp=sFwy4XDG@FXRhN7b(VWR>u7IsC`^FOqY(=93oj9ak zSXs9)4IDI@Y)^eb)yn=`w#r>6hBFF3%&xfTc->;P$rOGosXcj*2YdPC$^K~1%7D(` zK6^{&XjywUZ`;e+OqOM!E&eL{*?dd~7HcR%|Ep$>=2^CaG+m4DllfgKp@YD z{z^f*kYyf>K_^^fRnW5y!QXc_1j*;K#r~3>g0%Mb_H(#49ez4n4&-`=V=;VL{j%^_cE0cl|+ zhR|*0ZNG8xs@*o{9p|$}w1cTw3pN+nmFjw@m$)8p-O4d(YhNe+n3aK^GN6nilUHT4 zQ7(7TlPj~|e8Ec21Eb|+HIncncf8YA;r$AifB!oMz_l^44?}t}9tCAB_~?ebjz6rK z%r*Rdx?48^^r}O~j9JNEstrMTI#6LuB{nd48t^0gN0Gi=`BxPyw@n9TJ=#eiS1o@+ z4C=KrP|vsXz0WrQs0zFaQwzVG6=`aKR2u9C}s+gnMT_k^D{q~2iowV z$BxziqDBI5c=_0hjCujaMWmHFQouh3klm~VdEuLYxeg^0C0FQ8M}kZn0en1=1VEcf zZs5ND>gnZs`_;p9E^x+yVKm;zfA}{HDxaeR1A31+nQs7cLfS+rd72rLtDkiTy`F&s z7wh4|56=heuLnwF+mO3K#NnE0jlylXYojhTKi9rpta z=BY{et;8s{x@JSqE&02DU%(#w&whN!c=it*eQQ5w{PO+hFqAddX}Cfpy<<(*!#@PC zliRn5`$%pvXO?Qf5j(wcu5SQ(Gb8gd-LpP;{S4?r?@J4}cL!C3YeZwe>8@#ZWRHB3 z5&NB7@tw@x3#-l2zKluB+64s`yEMqQpG1`n;$Sn|4VsOLFiMv&h35?38AFJo%TPhP zM~6OFha|vCh#xWo`E2i48`BtV6^%#O z6LTsTD$A2>odTZga$cN8PiEbSDy8wM74;sE`AhLP9%10&y8sv*+R&BhDykmS@Sj5G z3*`2vc%}cviY<6?CobF5*A6_pyq-xK*jXhGFmRoQi_-Gijd(0-I4QbXAGi@PHl7G@ z6Y$ONo?brV`vBFbc6Gu-7rQ3wD%>+Oayo^GWX+h9c!fGUFPHPifb_g0>Wt7;8*%^kZo^fkbgSIL76Q)%7>VaAP2x&>RDlTDc^~6 zI5h0#h2Q^pfCitw`pW+95E6)OWAMf7VRP{1CGNttG4O!G9~A6mI(%Y)4NCFj0uRf5 z7?KCC=fIV9!XPg;7(EfNPXV5ufB5y&%OAg&+MyQaYp;{KLR^wh$orv?r=`LG`X|rc4;? zV8g&K@rA0k>MF|5pABGNI`r*;ktqDo@i&^o=77FnH-6BEF8C&_ccyoxcL;#B4h|LK@Zpd1wTXa9;Gv+y$K)K1$j4k@U&pw;T641iKm4tM;Bj+cg`d~C zZ5Fs8fLf@!<&ew0o({y51UxZ#wj@xcIF}9MB6PfA18~7#1!%-@A7P1AwOjHE{DvLm zBC@p|#iIp8kyBN9`7yS!6puvMH^2G(0~3Pmwz7srf|SpcwoPM z+mg5V(Z8Pzj19n<=Rz0aL7QjZ{U3Cl;A@w7f(`OrXW+8M99lZ2dE|G(R=QB^N>vrE zY0X5n8AxKPW__dCjjAfS-1N5!k0THUh-h7Yh9mLuH!}1j0?J^G0YR!KVw7 z!>|2HApR_ne;Hu?>ImFwbq@tVImF7q)Y+0x$k(O1Ybyq#vA=FOcjs+v0M0xmxTp_q z0=g6Q%$SC)k%0plSX<<4Gy9P$u(dwc;La*6mbG3ZogsEGU8oQYNGx^m2C=63+7b((c||8sEke{Bg=Hzx(|>%;D-Wt$ag|)Cy-+(e=_KB6zv!6M1aMY2yuXp zf{rf|qR8`!fYufM9b!PK0vo2I@fuC2y%|Y+Pyh1=PcQ%ZM_1~-1DNCNVT`v0+mbJs zeO>mBalURqZ|iMr0M5$4F3k=tKz_Ed-u@1kb|BbWJ8&=gjq-JEY%#|{6Ts3ZGYGj#>|nVSwkoOr}A{5@hJ?gd#puIak`2N^$wn0 zkSNX^A1+R8LX3sRhpBT6uH_lO;4*nbv z4mC!&zybNEKks}W0CIN`F%rJ|26&k5;ON!*m*|;K z0kozb3WDIrx>S#kZ)mJ#Kxbd=8g?#I^?+oL1;gt{a*}E(S&0XWP1hNTxmcW`nTxh{ z{agQ`EE|NOg92^Wqb?$&Swe+VFc>1?l*UHI^z6_3^e2dbvX0}1U-+=A%>}f1?b}9x zSX+sa7Aw=PM7$|8CP%Z_TmLJ2(T8mWzI?(Czz%&h5dQpOfOi7TKMlkNY4tAyG+wB# z9Dr>=n5Hevii-~^ifJ+%``Uih&fY%HLQm-%4acmjaq(^vMxL-wQq8v%TTfQz3m!{L9}xBm3efZ6)m z2K^WIaln73KM#a)gI0(7kS!cLAjRy8nFZ^E{TdmVZ2;hOYyvJwJuW=Ik}ps`M+G5_ zW1fLg{O38@;%IT7;fkOT2?Cx^LKe*=sYt85b-4^_G70_3#w3_{uHyyU3LBr}Coj4l z!Gii^Vggk>>!^=5X!>K{8MPbZ1rA075l;msHz?vLrAYV8z z?iDe$JU8381s8*TqYQL60OJY31=&7W{IRf1m*fThPE*;sbWd~iW`@SE0B)x~FXAoT z*VeqrOS@<+^elN^*jfWD&JA-?HGy@kMxm;(Fcz5+C~mV#1%9??R~M?ScqoFnKB1`= z_RBHJsRMJ+kt_6prHP9tyOTx;@vn10x?_8 z{3C)d{Odxl9X3X$5^s3LMu6WD@T~w%m?7FI`vNof2~Pt4%)S%w-}aq=J%NUR#54K zNwgO0WzCGpG}hR2fozietBzWi0haN}S1OVeKfcppJv~`iV zC~cT2xN8XHb+!pu9p9b=Toch{y0bA{W~Qq(+W>S?gSjsQuUV91k=hs7K#dG+XF!Xx z+I5ZIO1e@RV2stLW3|U;aqD1>h09EL@<5=En&%ODIhCeuO^Y>11-UR+T) zi%{GO;4Hfb>?ni-DmQ_S4Zs;`#g)VrjezO#UoGU90!;AP{%YVW0ug<0$IMmv~-yO|Q60ATZIDOn2B;bh#ZzAN zrFGwYhn`+wNJl){o$!dwHysAFyK}h5pYJ{6b`4nk8w3Wz7a;Nagg(C5ht}l$Ed*!* zBdjHL;ztZjf?=%v^5yf>4}Sa?Zf6Q*AB6x{4v04()ZT+xadVPrnhPfx+&B2soE)!!Lj*nSw7{N zg>!aYg%30&gJ1!KCYHgt8UrfVZcjZ!p#TGp$LV-g2V}5kFX7PUgDWn0nGd|ND4W0t z&ug>^xDoK;?lHJNHv*91g$)5V0@xIoU)MF9@wgGdpACLx8v(;o2!Ax=n*eOAzW%HK z`Sfi6l&~HaOwnvmu;U>u0(U@YV#Ca${r4!C-6W>uV5VJrjE?}W&0wpKtFA0qt#IDQ zvNJo$bJ&eJm{n&?ryGYk%-<{nI{TN+gtRKD3S?G^+P$zaRlF9gXsoTlu9e{23>YS{ zx`l{16l{FXPMcozyy8S$sK6j$3^uKZ>IZ(vk{8%P@l+pV{7Zo3Q3hr@U_iqHyXvD8 zN3j!q^How{g&Ru?Rt&~wSj2||-vhw7{OJfl76iT@U?g~^VVeL0ezq4j0d~ia?-4R? zn6S?gU>E;?Wq%_0`Tu?Q^zz5=J?0diA=eLKVRPZw0jbloVCOovqJWhq*rt1(pZnGx z8-P1FKYr<5Fzd839N2L5hkJqVzM;W=2N}T9h#8TW$RopA)r%s;xM{xUQM!IRXcSsTfjfElF2z5YVbLaPVxnv25w{m@ z>&GDAl}D%qbYd2Ou{d61z^@%NVG#iWJ#GZ7SN@^^8v)4q3xWDGLEi|l;9~=XO#^>K z$i5X|!Nso!ghk7r8T$%98*KUe^56D@L2_n@-A6sBu38MA=6ir0CVFZ+c=9ah?L5iD zR(o^_$0<4E7#n~yvUo=}wBQ^I>FqCoWAP63*%{Cb&|0rP{D9_B2r>HYWTREEJ_~eT z&$)(a?}9TtjI*%Ayj(<^e-NlG{sjwrz@w=1hz$n1USU~SAwn@lku4h!Z9u@&9du>5 zm~bC7DL=BK2)B+SfI?K=@^YK0orzmn~~{v z2@GRm>=nuv1Y<0Ca=^b3u#gql=uM76%@2H_|vC-~KLKEc#5QDtB@!7AyjgXwnGanNem)}T%SXlN!fU^8dS1wFUW~{@FLpZ`pYcD*RFZ@dGc7WE)NIz)U z$m}3&@v(kr`1b(h&+Or|f79Vp3^oU>CQeb`1(io zy@0Rr`GFl8w)ghE!yaB6#~N&h`iAvA;@9!ACz98~U^v&P`jDP;|2g>F^pU0w+qB8dFbIhj;MCE|SF^ zh$FNafG_=5o&dlKS51>x3k{6d<3lfAAwvdOfWs2|cq<3A;|06i6rhD(0d)xZG8`W3 zqnN{o1wwzJ%P$6+A@YbbntvHUwA1vZzY>6N*unvO-hO5Oe!wUD+S`< zYXhVA4l;lR=J-sQYjo$bO-#`ZFhGYz8wJ&9&!Z?veRL%bu!sakFY(a2z1c>9*E^(* zB@}p$)`#0D001BWNkl-n5spH*#}kg)oY$Ui9NNK40_VOCo0b5J%#knV$noX zyJL8E$?ZTjkf!1vaMu{Rz;|O|bRRDR`K*KPE^%Gve5|siV(tiWg?D5At@YrcXjOB+ zaYz&P#uiTqvOLpfPwoJZi-CXsCiik#E))Z16LA;J4FRzxkKzy0P$OJAETC@G$AEVO z5ex-?u`y*YzQK1j$B33f^ijL@njo-`S6aq_b0_qHpG$uJ+8B&4iau%M@kxNk0;RGE zpne!Cw&2w>{~`18N}NeP3AP#z}kHbvW)!*;6A9YAsI*pjd5nvD71z}$;C&7277 z;;i1wknT7RUaXejTg(vIPQ$;2n`HiB$np9A_NmhPjmuy3x>k#7`zRNAC7tAXUaB}( zzN*jLlSC%iw%1VRo;O`R{NH~z7dw4vlz>5a}07Aj( zY5NjJXbAKKrD|cI2ceswnc^3|pc@QpK>Ei55P5N@t_AB)10rAeUH~=(^lL3P1^5dA zdy!du7@yt|!1L1||M=fe|Klfr_4K2E_?fsqaWG^Jdy=eE#qc(aVK%THPmmO~SSPlZ z47TTfo&Znbd}NysCwk^rc=Nvk(8jpa?4(7O%-v z(h;Eeo=|1+Yh)@et||kj$HL!$Y0j?c1SujYjX9|dy`+$6$5aECgyZGPqxf!s3TKL)iJ%Jzn z%yb)IvEX_$e354&MpY(J zmR(MlDKj&{iKxic2C5#fGr`kK#?a5IF$VIMXz5C>zS?Y0yhm=+g}gKjOx$YnE&;{w z*zB-`-e?~?;p6fD#_0`ld%10&^=-tu=T={RZ!urF%mh2%y>;huX3CTWfFh;BLmELr zZpOLrg4PQ%dmPTg9*s|j@$}`t5JQH#sG`e4SY#mVWxlKRngeo?y*EebC>X>|miP@E zU1A{jgUBXqVqnPlfa9%vK@gArO~AZBj*kQQy#UxVS$rJ8l;n8m(%xw6`RPA?_b*P{ zCIIt7)Ki;f`)MEIaT`-=j_WQ( zm#0gEiA=D;n>l3!*7{6x9#a%NO%hl_jCl2qFkMXq@v>gHEq1a!;o4UI#795tNq$c) z^R^x2>cnlw)3M3Z*5Y>cb24`++yUqjV}84|>GD$qy7bToedO4Ochq$EV}1X>xXM>V zDc&Y^9hVmVWQh7-&<6x=vLQ;1VHZQuCC^wW`g&ZRN6l3dMsx*E2Eoaj6FM_73O_^2 z{wKBYxYdLLn$GoHv>O?3*b%c2X1o) zGrc^tv@QgwUdUQ2ZNIjRrG*w{R;|IP8U5<72xJ1XFs~TE5_Y-<{IhI#B<0+O5p4?C z#hY1EaSga5of)CI1OgREw0c1*z9SdjVIaNA8qtAE7K4Wt<5a91I108|to-51x6_ zf6aC=Zx~rSkd43^TP0l^YRh6I?qCed#!i;pYg{J}^M>a3Wl$H-JdnP=;d#TLrmrvE zX3F|>3l%m7ggGtZZ4_3vT9#uQHhu|TP|&iZ{ZX*#xgjPTD2W+Xx zi;uQ?(ZR}F_H8hAvj%vPK$7Tcr6=B%_ya=m*dPB$5{p0dfVG%PZV?~;M~eeZA)Ubc zf6g`m0fLSlx7Y~4ZpppT@TfjyIKZnTnHX40^`Eda0}#YfW4#CKt&eK{;@@6aI7*JY za*ujhTT0sqA=_5dqUAUJJiJUdu+6RlMeBp}w(Ub~^4<%2ncwvZd)ZfX$ufP3sH-@V zA+RzA{q~jMHzPI9j)OcAJK{O3V+*Xy4k^AxQrd`@WBC5^0k%#)R9{nHZ8iA9MBYoM zg0N#EUl!*g=lC4*_X(pr_QJ^kqiHjEEW5F(0DdJJn$r^i+2#g<7q&Rj+Pu-fvR6su zAXZJp3LCJSHvyH-(&Asn1*7p2j|JG+ZCeZjm|ncLA(Vjta{dcvQnSa609lSD&-C!+ zK(}BSHYUFWXa%1?5o~hyjqf+}9=|^ze(=zou@MMww3=z1BDu@`jH?0- zFz1#jFr5q?xd35+<^{fFj;BJ=g-O|=Zkng?19Lj+9$aOqP;2c`{AA0|`qaNMr9k(# z*M=iMW~ZEuppj(oc;wdTGHZm9Jm6};)(gA^nBW(;CC<48pG*fFH@2GY+`%EvfjAD? z&0zUJD>};ueMSb#C9rBN=YOK5TNm?5?x)RB!qSaF%Hn4NYUuGhfJW0MXj@RJiwPWy zD;H!Kf+CeCd%RAF1)Q2dPM11+!GWCmcoQ~w&5BuIP+%tv>2A4gGX^wb(hI7h)rPs! zz<-H>2B73GbqjbB6%1I?hY$3l{e*A+TfF`s9{oq3c;iBbO@LyfI(W1KOZJ7p>7xL0 z7d8Qqov{&s9i1VD0Y>KlMmQJOJ*i;K_^&?N{v>s@YXBvRd?qFkq$3Ikmb}wi@aWoT z*FwAZ*pJK>=f4Axr4LKzWMsNGAe)|WXTw_zuf3Sbn{e0! z_)i6x!0a+dpUn#Ru!7AN3O;=xQQB}pXnl?qw7vMJ4j8+4ODHD7fnOqg`QC^&CQ5xH z5G0##fBEa&-9ho3zp7F!-nXpqxhe!-~!fv6L*Dz4ZQ-^F}q^m zs3_-030dQ1nS4o4{pEH%{$I|`9tozdUi-7|6JFE4>t~?|v{)>Kl^uSqzD8AYic+MB ztS(Dal4U^nG$3Q;qBV{U2zk^JikH0X&946mHBmiZlXRVGFVNZQ4ddaUU^7o*$M8u2 z$>{TofkvZ?;xAkLA|RN?0pI%iXh4wS&KUpk`}!$>DaJ<#ptcV^89=*s=oBF`&}e%H zWWrAJCG>;YN|4yF( zYz_Mwc}_G=UVB=s@7ulUjAQz>YS)ASUCpM>f~pC$d-B3o*pXSd=$Hn393LP9n68@L z%fsE6)LjEzX6?f6I`vq(M3J8Wzy$BELD<3T4b`x*t?-PEdF@|fbBq^$T`9D}H(WE~ z(k#9lheMAhcxO+By_wPC5;eLP(;nok2PA$p!-72Qt3XMYHRClmHF$?(c2F4n~+;4gog{=EPb zBLDnu1>)Ixw3~o`v!?^_gMkzj1Gt%Lc>jFv8eiuo#+sn50=2RWrm5$8_07uu}|RK)Kxn5SU_h#p~bm z_(9`9UT~C+06G{5+Q2Zr0I=vIWXl0q)+hbh^Yel{XcGguC4?I%d{@AJDwqjk9FW-y zhio#R&MNQ7Azeo-MX;avae69%%>a(0)*P>S+4qgVB4J93bq%nO7nimpAWub4PZ6V? z^i%7$m zT%g@LS|9QaJ#7R)v*3a-2Mid-0k9Tp4}Dpt%O=3s*dy5{0I(PS14vLeAam|K-{;sz z0cODVRc_B5JR6QC?d?B)|1b6w;BO!-$MnRZur4O@W&lS15Kjl_e}`2>I?c~Xfj=U} zZdht_Jway_Pb1$Xf(<5~Qvlp4KJaUq%O^xeXD)DO9C@moVQ<*j$^a&lUc~wY;H;SD z!W>?Ir+E2g(trrSy%^x`^nfCjc2ikTaOOMwYrdjqT9oBPJF##G5vx z$xx8(shcA%=Zp=&<+(dSvon)8Il+%AE!HGQdJvVN9PN0a#ULf#+xRp~Oe`reTE*^PPIUuKcQ^o?-aQ ze_oxf@L3-=`8lH^%+XUgB6_i2o8D3f~CuyT~mj} z>asI9HRMWqV75HS5JNs##4|%Qvthn0U#3#bp|}HL9|bV?=pi65tp(3%>qou;cO~Zm zigSRc0Dt+n^+y4KzUI+x2;jTg6htr_s|8-C4q2ybkiFTTse#9PZTbxL)^hKq?;x zR0ecM1~l6=`?@Ls@dOAxp)jvX0iM`3rAeZeQnQ81fmJV=B?Jrxjd`cWZ+yx_UE@p*T~j{u;6ps46AHvw+L7_}brR&k4pF zPfjYe6bo}_!s;o2nW^w4$onFG@=x(y0*)sQ%EJ8pFTbgSExR)xT0vv1$lL4y!sjtg zBL4F%&w$gXH^nGb8(V@IG!L0U$L=O!Q*%;t z)cp|cZ#F4-=M<9zkFi-;&@XrAu!Z?kJW+>G6LEh)k-b5^6nb}ocf`TRzLH@Q(w^J) zxI`P?WGs-S>zU^8c!zIp zE!G$OSs?m=!h-gX!%D*hzQ+SU>!F{I@7Aug3>@^X3^b>t zqr;WUPKp*Dv};-$a*6S%xhax<;%$an!NE-B!Qzv`l73=|WWj=_#mX`VZ1I6k*eoqH zu{Z~w!?HdepW9vUGbbo8c5t(yal0Mp;ozpk>`eBB!yFHv6oa-GD=u1S+o4tjV8m1E zZ@Hi81nH7^5`gjOFcPDkVwC_qyzCtqb|)M+JKRZGB5;8+H)^R?be%96)sycDcE1#2 zjy!OTO{5eDbI6}@G&EOu1&cw)(ZX>M1KRIEl0UPlI!iQNCFS? z)C{ot*@WSo;T7cO=W}b_tuE3A#YsrxjbKl=t;|~7cIdXMQ0eh@m>Q51GvG_pQG+X! zkp^XT1xJ?|XLH@=6H76sJ=aECFhSCcy>Y@w2L_C0r2-uX^(U4I4iXjDLecDe$}7kUMI63V>82 z54AW@571P3oDTxCfCuJ}2($_MxBu{Wl+50WvP-`C#cyVivl#si0IcJ}xVG5C1`gTj z*~}QxS%(JVO>)`GGSEHyE#{&7m_0T-@&pN1o>;qvhzZ;&(pPN)vf~B&8FDq9eUQG| z;xLdhplPNlmPA1UVbTRal60t5E5NYL+^$}=Rqp$Pt2eHBkN^;mSt>WiRDqD@Ccr3GUUH0f zaEU$Gj<Mo5`HXrvUcP1moZaz<}HiKy3az52lQBWk00kKMEAaAU9aK%XgFM zV*u!b83zK_k;z0$?5znFWi|3mdUpBTK`k1#U@MY}@eyb0*@)Qu- zk{xt1#)Z{;r6xRD*{#s26HfwI=7mM8buW0Oa9f|O;1^4?z6=yZhiH{Lkd}3UN^9aH z_xooB6I2pSR<&!{f{tFm$&PsF%Z^&$AkTf_&`MW0v^cU%7_{vn8Tg_zPCV)5IHV&P zTFJAGEPquRvmdY7<$f%Rw$O$)7G^G*$E@7|us~104m}G0?Q*+dd85vlR+@hs({R^Z z3LC14==RLIypdX$pY0a~Fzk|*F^n-63>Sl2AE6I5zFAL5a*o;5L0{=1b2sSoH0c)q_QG76_x3veI#Q`@SUB_=Io!;+Hnvy%TG1_J0|Eqn|I`N>p`<@j<*& z2GVqvM`P*7FxoajNb=u`HcD2?*%#1S@z4r~7BBJC8mq#fk0aY~&ZG}neo2m2KC*q; zQY_L{UwX15Jo+u2b%cNQR#&vOAn`i!qQWKs|K0O39{-?y*<%d^xqirKh+9bs^P_Prw!iRn5 z&EEsec*@8on0$~E*hva^ae#+FxS2z(dr2g_60wf}a^)B3 zw6+t#X|_Lxq3V3qLk>~i1b~)CX%kLZ7-}y9;j=9Bz(*f?;;V&B2Y4B$zOd@Ic=TmE z$0ogu7gjv9t=%&Y=Q>(iywCMAtld)vFr5xhrKakna*A?!+3*lZ z9Bv^o$e-+XeMFJWMZY}44%NwmJmq#>nksWq!X}`^QmJQ$?Kn&w;!@PDBf3~_iDZMi zp&x914Pr%wq6n!yJ@^;^2miz$G}bk_Q%i)u<*y@<6By-MZBkh#JNB2sLvm>bE+|#1 zgjqGy2*vu`EJVxbfC*gLC$-Vf2+n<59#O>EyMD|Ro zI+_xTKW0+K8I5k)G=y>T5>yz7iws0MXgYYUn=*kzUN$13FJ0*gpIx-H`aP_8DZHDL zd9k>}*|^#+$=bWr!5Xf0Jg@WhU^@~iQ9pG$eb~|_!S9%pSCUB|bGw?~F01Zx6WohU zX26>tRZ$`fI2%i441!j_?z1<&)p%PQ9BuENG`X-NAj>s3i*kuC@Cdm%DhX_Z(dfAj z$p8Q#07*naRB`KnmuEu#Ngy!xqJD+1I*m8zn4B*cl}$l%+O^PS&dm?bc^OdoI?v*w zrR*xxJq44qI1AUb=(4yPq0jq-&qZB4>=r;nugKAfK6tRl)(B#N$BQU`15F&T!Dk#z zA2P`^9V)kL;=D-#Lk2`O`?9IjPtDO2s;@bjf10ywfEAq!S;po9Sn+d5*JR;s$3Q3&4rr?neswYc%8bT-?iQF48eHL- znciXkvk5||W85r|y&Oy7xnXy;<**mT;GLZTm8-Mu?zFe%eodZbL9?j0)fO^)mBJoa z^~**e_-*9E!3InNhE{GwtA)N~pmi*mm-w7EE-GDcmtJGiUkIwR6f7VI`w=rxt>-p? z-0zQPVWMp-R>qg+)tn!O+oBl33GcrPU|7L17SeUR&I?dyfO1nd745aWtU6iSxTYo` zf~Y)mWx&os zJC*6Vb6#I5qBS?Ys@mXHth*b52CJ@g)UR6kRBJ+z$QoXm&O8(G=w?^KTet830vnJ2 zZ#{?VdUA<36=UhLzce+m@TA2@HKKhokZV?^;e&VSW<#y}mC^hZz$JK>A99vrEASdX z%VMow?}|Z&q@?~zy9Ax_TSoM)X}uS3W$>-8A;2<4>f$XegGIkX;GYesj^ZP@ZNCDK z&TC}=o3QSbZO`9wKnpXX+*Ly}V=}#Lb+@GQBP|=!Y*fi_R|mQYBU4qCH)gS0h=MHY z5J@bP=!>2-ZcORQJ>N~cAfNAHSiGkUL>*WOi6vq#Zx#~Fo7vnkOtnc!Ix6nnNALK> zzFbHGO#8Bduz*3|XnYJn+S+^vDnC)`VjMD}c0N4VZl!I1(#n#cGiw4yj3zAdLQJR* zi$e18W-p8%hg$C~ze6o!Grg=;Nsvn|f3(GTD#+;EQ3lGnIu;YEnJQYey6Y|lHZT<1 zTj4Kx3OiX`*;ExxwirG1f|q@eEk2BbVTW`oEO0J%qI5zb`e+!25rUug@I(X99!mBY9`2oo)!FHr1j0uq4DuE z$PHe923g?pYrrxO#H->Mowv$>O4N$~IGwo|moqH2#DK-ts>E#Z7O!lRri`C?l^w`J z6$-xudVj;WP5m%)yPPHfc zD;M*LHixPE%K+ADt=DS%Q689NtszsL=2LA)&{E9d+#p2ptL8#L5OifP_$d4k3$7Mo zJ1DZRxL1DQMLP|nU6vJ%E?p<4ahOrN=Ea?G@)k~gBw)@D+2&y9;)JLS>Xd{hsK*}#%S{Fhv0Y%)yyi`%_gh#-A}BjlpV{)w1PYu0!ua;d zLC)w73c404^!eru3xBrBHNhDEKfslaJENGgDjo`*EwXCqCp!bS?N=IedE}<+w^6OT zQmnbvCLlrl$C2<9U}EYCKx<+4r~rUwSTmi$c$EyyHvlMvoaD)WuYd_7ncAdQZ3rM& zAq7T#(5)@-aAbbg%`#!AU~k#3Xz8}t%m-G7aG58WY@#oH(3y|^s~)%rJ6F_nZC)LX z7V>-A1YA9+VPG)>`=`!2aDU;~uYp7jM^@*)x_2m=x{ z`_Ul{9{Sdnqw1IlahQ+oMhoT~{|B*B>R3joA|bXS~}q0zZP2Id=pT+}iR=bGFob}EjUCyZq1=R-v@%QFpZ z_L*f%bZZ~|C9L>4X89AZ)tCJi2U}TZNl*GWYjJ_;YT9*0E=Q7f^F7cg{=KYxbe@XI zzC7TLu`2X=`pQHUI84V+DE9cDI3w7HPaF`4Hh|GA^I(6ai_^a8tY5GRsQgnEIw06_ zo7`Z)T(%$P$g>y<92i7Gc{m^k%+%*#(8oZUBjYGCTv9DG#=dloGCzE4jC(hmn_@70 z`Cf$KkYt$PQHa!Y-fSJHq0I&Yp8YA1-$b~Jzxc^tyPNU;rWu%T02B@;v5WHp?@ee~T6uAFuAX3fqfuE2gCd#q?$u`j)M0 zS zxbPU&NeHn@D%q7>xmZsKmO+&-$~>gy8x20g`R#jpME}Fy8>&b+{inxO8EG#Pyt5yE9W= zxRch!MIZLCQ1$Hgc$3SD%4YJqCw>JUoma_#rrEZ$gA;MhaMY=M-mTpF9K*yQsiGZ` z8Q%+Z`X;~etVe*$oCbp*37|_owEW*&74(4fi30qxkf*{ArQlT;qUL28 z5KZAQzKdRXm+z1M6{)o#(Ex;EjJ_TGP63O&v8?rC1fc#}0kr*3`%e2^K6tRew^YOP zMG3hf%&uQoW*-dnTUeNZSSG^(S=(>fz&6?uJ)H=wjSmXE<2OO`_@A4J7*H8k5MTHN z!E|5`?r66VWc~S1ehlmD2ldt=LwbD%#s=W}9A04|UnTkCG=3Ic>Y-enwShxLf62zU zK1<;qGFM@>MjLdGlo@xha5Ej4;#X=3*9t2 zVePL6OdLlP@x<{vf62Y&MuJLsi_JvDQ6sGfh~kiNawtyIx?N{(f){j|Ad_j#fF--7 zc-soW>psieWVIZ?jJ<%Jttn8|N2&CpO_AFf@Ar{`u>rXGdB_)?E-17(ti=_@F0Lf! zmiM+_1PerUbxxSs#W{)Q)RK*(vCJ(G&Vyw@vlORZbbkntZch-E(riP#@)dxv#5-`K zC8rLHrujl)kAVD6JqkH_F8B&x%Li#MHum;{Vjqgn{MvrH>o+)#Px{kAbl`_Y9C~0( zhy3&MRfl5bfnJT{eZ)Dt4jY?M zOn`_E8|WM1|MwgW-Wz9NYyfU@0xgWTs zz@F<5&b!S(%;c5vY4YYmSOh1}%&;vca2@S=}P zQr{Jb(M9q1Vjmi2+yAr={cud2#_RkN0(~_ORSa_=MIrp4;b-x+U9J(-ix?C97>V5A zXkw!~@UmZ{dC^eR?Ui>rD3+a@LEQ6-{)?%Yjs$p2AI53D+7n{C_ zm*t`2P3Tm-OFHfOf!*LC7RHOdoi(z(jAsC~ z9`PA7nRKI)1wV$u9z+x?#t>!SzkM6JEMa$onC97^JfAf!~FiF58&-u_YFb4#n9b<&2`)4 z!FGgHHWU!U-XsZxjf*=0Yf;qgpl(@boL4aHA{T}Vd?1{MKdRSb1=@(b!Dy&e_^ERt zg%O1hMlL64#WzyLUo74I(otXP7f(&L>8V*sIuvcK2V_@ z074(F_+kk!J4Gj{WfQ{Pvej5RK6V#=#;ifwuqU!(^$4qHsK+~Eb70>(12}_u>R%I2 zDXzKjg~1|YKRn8@wSJe6SnNL(*0N?eh|7cUuwgW=iCo~pp2j1Ou7nT;YduL#d0UctqA!QPjp-gLDHEu%gYf{vgur!-HIbR}MGz=#n}ytdW+uk}M4u+s?8*Gm}L6TjCsW^UeX^OGE6k;8wxkCNNn8Y{q@oE6wf zqVIL*bdtSc=0+LNHPo2z&eKvD4V?8jr86UpH7r;EVw-|S0CQp6Hw~)Xajh8KDZS^9 zDzrI(PXK{2o=kw951NpF>*y{xV}f>6ajqa-Dia;Ob69ZT<1O|uHpXi${?C15u&)*} z{}+I2Gsec@fBt7g^rfrw%DaCe&wLAKXPW$Aw)z_YYf!5T1^U*)XY-|*BK}a(fo)G^EgLETiosV$4TKp^3 zsuRXWbIT0OHvswM#R)7IuIAQSL^_9Rmvq1vCfi%W3j-bLiOzlDdaZCh*}d^L7C*Zr z_eb2EQ*;~Fep>_iAu^!LbKfl6x@ebEraSeF(6{vq&w>C>Sb5_d&J$SzDVE?}z`IhC zQP2VxQtO2RRz)|Ch4?3khfgOA@`b2 zCI6>=eKSz1KP0sC#aZ}%K=}xO0_v8x4y(voB4ab%;zs|}3}{-{Mmb^aEZ{_7lIqAO zCi5j%tBH+%wvqLP6$Y|3xp1<*=0DqhR5~wg%@__9|3-IoM+S~$K$qLPPQJ(|WS*y) zo)Gzxm#6gi^18;=CdFw(AfdHdKN8CqFcTP$8;HONLX)-%`gi<+F-|IkZd8VWPMW2# zCwbPzHQZdsMH?zoD@@qG?m+gYFaF6v*i^R^e`DbP5~COVFQ0u7e&_EzefFQAW)ueP z3xaIrLr%P3-Tl|1P*`t@zjfG@L#;7l_0Bm~I*Yl$;Li_jm25QJcL7Tp%6St|`E|AGeHwPf zzP_WF%u*RswrWhq520cCN65f@15i!% zG>J4CvCxXnvX-|c6J9OwpkrPZADn!_2j)E=WnnpKkjY*mPclBtytfSGOA%vh`}KH_ zEcUe}6>7Iv%W5BWZ|0Fj*0_xTU0StC?~k;@P6tP9F9iFGAniR}tx>K*3j=vo?Obp` z6<1ZKGIpplH?t5Y;z7Y?Tv5!Ufa{JQiTr}c`@REU94>>z?dl_f#UKq<-Tn7~ZmK8Q z!3*W9Z0vCJ&LMfK#!!{fn4+4gVygu@)4=6^SR-%EhHz~woy-R>zaVS-;-P)iW8Mj7V*~vzGmtOi-ep)1x<$D5<{ZsxWm0Bl?Io`*eUx$Se-x-(?8}|Ml+cO} z7i8HRid+e$xOWBALRa(mA|^LwtX)y(1}9ZfNnNZXZ5vUgn{BK3M>4qw(A~aubobA@ zerD1v5flw**bAF}_aENK4?#3l9BUook1DMh9J0L`Xs4^`#dP9{x0Ay2Vm!?f)csj%rMtroHCmML^WGr~XfG=F;W&As#wF}=poMsVfx;xGEPQXsplVIax zfRhq=z|8igw2j#3uCcQ*Nuw^AY0XR5=f=ZWUc}UbVgKXDY~&`{FV~Y9o$ThQZDa8N zw|A~Pj_g=^t*VpVFiwwW`s(h6=h5bm0UH>@en!89{}}MRhJnWPIj6k8O>V{x2IC^7 zq*R7hRHaDn8_5-9kP%WU+m%v*S`YjWuj>_dl71`8Z8>Y68c73AAB7 zRa2?^1hF&esmbDGc&eeNBlJp(#O>wdWxa$VXRAEwaMx;=%xlCcnYCdOFLE`!S3Syy zL)L}tSyE>+Zj3H+yLVV)SC_tjVr`wIjfzoyIs(VfbWEmY7u#KUsM^?$2`z<<=s{)8 z*L1F~E|YDJQ7Vv+`(>5<^B?*dPJ+~iw#bzrz9@P#706p+CDVC6S5(^2UYl)`EHa7~ z5f{oXbl9%iD}a2$PyN(SY)mX)7JrN2i@K@PxBQhwUibFJ&&!R4#dRMA*H1laHqO;= z{$Stt&+#b;3^oA$&}wJbI%K-xfKG$K2ZoiKDCaGNmOEQ%$DK9n6 zHqzCjhMn4Aa>;Z=+UHfS)wEPH9bRwAKJ-15`d1+Y{+mB^heyx(+_F29beDSvzYx}hL+ahmjE&j2{d)an6?o}81=x(#A zk1X6OZww-~oMW@G)?UeL(@GkJEr+bD_LsWl5agY}U<1&TiQ(7FRnBK1>}uK;E-Ux> zY^veyBVWQe*7DL@oh@FrPd<@#I~D9F@=;e6w=RUA(Ma8$aHM=z< z6Q+S&?p&+AY^1BJSdP`)?Fv}Jrr>fPe7j(Y+B{3q-8xw;fT>-@c;mGTv0=GXg>Tmd zUx2Q&6Xzm#3(djlg^<l(p1UzvTBV+$J^__UQkQgS-FY?lCrB zj@oSoL3s&*0~>&?a53^CJz^^x*~ib8Pp{ka3B9F0`C>%nRC)c#R!R7jVw3mnbC>EP zo&2(IQbp*9c(c^&TSn6+;M$Eq>&7zd1rl{W|Hw6fTo4A+ry>w%^s+{k^Byx!zVT={ zkBQy!S{LAv-4uJuwb(vSZHBj7S6i{_JZ6bNUw|(7E^i4dO_b4knjE_w!8yV-gjL$q?rT(tpxmQLnT3~Dwpm98pA%pISdd*L^Zr>UZ_c&3vjLbiLJXAF{ zS^K*JTFAn+*+dK%*o(>@tfnEiH2i1vB>gD65w2AgetlD#JQPapNB`9ZwKL!O>n`6H z>$1?hjqHrO^6sJta+Rzu`0ipNKcusx#4q{9YqgolL*{7|W)>TTYJaKQM#NWE&4&0Z zgScJabwQ{X6i=gEWx7E6PpvW3*EFETsg8zx|}a{ zzs1$*R!t$!kU(5x`*dhL6He!BZE={!=47j}rzzw0c|pahpUiyvlp&CWb+K#BXpN2~ zYqIqPE(}Ahvel`$qv2H+z#2obBfiI(VtY|9{scpE`&kRxjEk8UBW|Bc88SB@a zM~k)BsYFiJ1}*-U^S*2G_alDa-!)~SH+y%f8-d~^W3$zx|K=-^mEHITcmHYv$HNKC zo&Y?&_E)R0UerprZBpv`phJ_W>FP|lbV4-$8qWi(il{_WcqeGYsFOO1HB`*?D3ZPa zffzALr;(I9E@@b0`F37ov5d{|jX3jK!Y<#{m+2CIR!b0U^>UF2eoBDfs^dD{6OH+t7)9B8c9{KGEbi@31fr)eh zfw+KW7s=wHp)~T@W-af&@}E2Df*b$VTwR|1Q;aO$^hf#W3B<@z8b8ZU>1v*?=h$sl6MS4tg9Qd8VNTztWfg3RKM*geZj6Gf28 z-VK^q^7u*qefD0fn&QS?zcN<#yZorn@8nI~FaBXCNN!U)BsX9DRg6u76DoGCTh+gn z8?Po&p!LIb)nLnR7U5F+nKOj}0X6^wC?6||i%A{qaY0j~LUl<4%hht>acCnDUV|7R ziZo0gmGU;geMxKdX}E14qXAhL@aov^DmPbyR7)&e{i2|%lB}2|fkNcsEN_K{zsai2 zS9`NxpLO#P+0SJ`L5i#__Qi3q`spoz`a#BGY2|@?jdFS7E42mms%zUUX}l$Gi@!eP zXM&K`&4An1Mc%_zd9<@^y7cJ3#A=OHb(;8gtp3iwZ2Ds)>ulomcVdcnBCx#y*w)^u zNrWu~G{MRwo2MoV@g=D0gza6f+6W9{#YUh{Ro}q8ZwBQjBrv*OFJ(t0>fG9(o&5dc zKNu{&P)%mK$xUM_#jV--7Npi~K4o!HAT#uM{$g2M8SAxfR=vxLW3lWao3Kc#b1_nd zzWDlk@uf7q$|l=QnqxV2LO*pe_h2rQI0x2~0F&wQf3^Rv$NjU#--3jT()dwJ>TeO0 z#b1@xquRH(5+qLQFxyN$Mg-clM0sZd%OyTbEB;x#KIX(hC~nKISmH$`$|a(zYLTBUW~fsPO{9`@+=oC6 zt9qGkm4v(r1_N+uGgaYFPFv-j7nw2ju)S#o-7stXO z2+Ws6l{A3n(o)Vc<+sWaU1_!rpHUsMZ39~cJE9zEk(QW}#ZSnUMjercPUSvM=pvO( z?-#mfO3RhUS`?R}D;n2gOuo9zjW33i%`m4}{m;;FEX+-bd`=_Zd;cmfSiOSsy9wwz zn@88~b+?_Qwv2ci+I#Y?MJ4Jq&T=iyXqHh7kF#l7TIjW>#uuqMS|+#5L)Cb0v$!^x z(q$!r);%31Df6VrN)YdllqyzR+56i7YnuS+WgGU9_taiuv5hoe?|d~c0itc?!+zFF zxu(Tmi@g52pFaVJSRUSFifJ;5{jOh&zy0`~zl6E%vav()R-P<}UH||f07*naR3H5p zll51R5rO7r-iEn|(wzycFL%ABpCDW1ej$}@A5R_2vdBjo`Y87?BoCczb*z;o@7vqk zdVqml$Rl0z3;n~=G>LT4Dc7N!)IMFDuMDS|+!ll@W8n7T1nLO$cB~JtrB$|_?$p=1 zll{%6TLm;0{VuhWPtkI1^0yy}y0C6vWla?sU*w|TmdgOMYKpD5tyQEa0o5(r<^@#x zzATxJzIu;lfpp!9pD^@QyEr)(*Vjed1mEq8dYrq}QCa*=p}@JV zUXjG9p^DodN!?TyxthSB={jpI@B&>ZAYWu#&N`CD@dN zrFSa|qz@x7UdC)-lm%Yu_^C2)n#p|NRdwX0Q(i7gJ+FctAuFZn)qShY$jb(LTYeT>vz5eD?V4y1Y#*3$tHDE{`_%h}e(tV$6*Zh*{Wee{WsZS^C~-4?|!8n zu~AU9W#KC({-w(gwlR6#Wh z)hvxzO8Y~8p$}cyMa)P;uQX)gpLNRTn2`@3>2qG?k2?Iq`((327Ywy4T{u1p5A|M8 zAVyUzc1I&=X_+s=7D>U51RB|Ovf(118kd%~N$O3oc4@)3)!DyxxZAXpcI#IH%`UDX z9zkQ-{>xRFb{8KFliu=eE?U_RZ35&oJhTY!9tx1`Ebk@1_DHAydVjxOjH4ol?e>?%LTWf3Aymd#c%%&R)WsJ=u`4En9c|3>A z&23~VmJfTS%4FkG^zm!r=4y83QNKIZ=5&5G&t*Sb{Qc8#wYo4jyU2QzHeS>YeGSfv%6wXa&0+&itl`7j|hN_`l zgFWYMFZ%;)s9&edMs~{Ei}Ue?UGCD!UvU&$HnnUD|9*cNRD08u!|n94bLU^Im#@XO z)Rna%&oc5KMqs`H7!CMnnh!K9L@N1cQOx@AjkwufcDbDMy`RcqpYstnWJ*WJs7}9-fgMR0sMV-d3|?C0vsX` zD_9J?NHsDCPm#jB#-55fSM!so4D(j5V@%^rN2Fd*{mrmQ>KHG>(w23p^<$>K3HZS# zxI+F={cIup`eriCcP)xO|4moSy69d-3Fg@vBg6{aj-*q4k~ej^xU`~Y>P(F5PVI*_ zD!!=8Svr&Zzbg0DK5V56n=11@nQQsHK=I#N{5S9XXMIqi9<3vtpp!?F!fKvYB1-CMR}ylGUek4AEo&xV#-eWT$XI>h?rrM zeS2Nld{`PYLa8nz^}-V3qwU(BeMh4dJH?84kzN+Tt#g=g&$7rz6_JK5>Fo)`u!?kE zgQTH}v{=mV&TWhiPL_L2FYZ{1_Uf4uK0dHl*7_2wEazkV z=1&0X*o-mSCPK(_%QZnlo)^q)6Z$O6ep#;kNS9;eeAF4TNF!!n4*R|i*@Z5AB8^y2 zmBwYrQcd_MUeZSS4UTe|87Q_yE3w|=G78ztq8w@LgSP5LcRc|Ov+ZL(5H*&jO@PK} z9j^*fgXJgXWo0sjbgtJJErx!lUa}^$xMfAJ`f3;E**8>{x{C&j|Jb8`oAW88MJ?_9 zu13}QU)}~#kaDz~!h}s+JHlv`x?^~&*3nEW`iN^LZs)IB;Po#SYwJTP%cOqTuYNGw zHw5zapQ=+3Z3xsi^KD=6>vc$35BEv$_e;EXE$n@B4CP&)j8fLsT{+xKT9unNa}P?_ z5twfPMlnVMAQsU`Jnv2>C?>@@N}7#sIXF?I(O} z)dp&q_huS;O;-zxb6MW|*W&MY_ddSDX$qh_-yif?KaQqyha&Zb(0t{d2Ws`vT==F7 zQM(4Yp)aEGodMC`@3xvw9~v}IT}x8+vrSN%zcr#7;MX!WvmB6Ctz8$bp5bv&F611~L12FaFluKE zj6RiZ$ol-KELlEAz9U)od9{2@p6Lp5oWRP=^NY#RC@V3-J*#s*^rWAMfQFie+4d0w za@)$a5wNBjchdqn_t$&WU#FGTmD8QS0+dzOYqx>sacX1B6N4yd-P2P8bFtsa^Ey?q z|IN+^YLP`Nw6Jzz1@6A;~()#Mzx^S1gJA5;zdQJ1TH&vAC zY|MB4u9Dm``kyukTDa8@?}F??ue^%dAlOkp>}MH^J3CVGW{bbaOo3+=?iH%vweEZ2 z(a#86w*i=ipm1LTnhCnF=*RLkQTC$4uMkTQzo;z5OUa7A3^!EEI7mJfff#-3jgA3n z7BMDG6bpM>e0|`~qlC>&T7KES`1`<8e2uZP$d!fOWYQH?sW;tq&*E93JT*{SUA&$0 zR~$3&-|JT<0v1`@1X$4zHz{_p5hznqG98v$%vf}%Upp+-$l|Ll{>%Adev*3#y_Waz zRjk6&|JmKX+4=vHwoOId9QY&uTG5eD`rmEwS9j8}?0Zs{&SnAmI}>07aA&~Rh1aZ! zi&3O?qF)+tWyT#|_*d#%3Ao*6!Wha` zFR$e$psTH4*gZzIi9zTKd6m^V+TFeC(%pRf@*dTi>hLyOxh~vpCz-#eUW3U+ckOD6 zT8-%jPmrX_UQAP?sB8}2i z&YKX8-=ZnAU}~on)yJ~Z`jdmj=E35}B&c5!RB9~E)+RyCkE7(PWVUh8B3`X58!}Xm}bs^Ghen*(WjMD|>@X`5q#lvAR{JaD-TBc=mtsiMjMb?}&)~3bP zd^Lblu#`=Kmo@6o+J3dKAeZKwz68h?wAn`ky0{*!hS6e}7ymM$^dZ8!)>~?S_1@kA zh*jHKT^DH=Sz-1$gsO|r19&{IEA?iy;N~96KIWk{L`7e;b(da0A0Vmvt;2O{u=26U zd%C=A7z_-!dt{yp+!&&aGfgQ)cn%| z9`DmzIP>zLzPMYs@Am6&TEyM0>?k5&*+3|+2E9LNu$W4Hr=T#F*P^RjYy`YyFR>xe zgM?~RRK;F-U+kkr$)+swZqa;QR&A7@=3$BFb(lUj2wr`QIn`OaZ96@k zyQS`r6lSLCGV_En?;wY4xL|TMDb1p*Z|xKYzZ5qS{F0rRRjS2YtN8rz zJ#rT1VP^7Dhh@yrAL~!g>D{X=z$L&}Ymc|ctEu^-Dz82Xtg%{Dwb;A8-VV@)!0dlE znf}K{q59@JY9LRXPP)^VFcxpG%3rEX@l}>nO*}}vCD0arm+sv0%SM5$v39h@e{12F zpF=&wB4ig?TWkZ zOM_fz&Mz(REqSvm@lS(A?yGB5YAd3B&fpjG{U$?IYcHPY_vXV{@6r2VslHR7 zexXj2MyA8J zOD9VB!RwBC?$O7dYbo8402_dJ!`0~3g~U?N){BbA%_FM?yW`*9Y}ln5fKT`AGh{Ab7mm0WtBz z63^M<9yf_}{#z~n(Wp{GttS_(3Aqh(RVr1Z zL$=9{>`e)<0k{aKMyp)`G{XH(L8$`NQ5^Yd7UGMl*fL(3S%(&WZ)R<$T0CX9YD~I| z9g;8E&qg55c3ba;9gsFGhX#`{%xXXt+X6dTO^dn7icQXF-0A~)TG4Isv<2QqW>%-1N|V|2IsHpM92s543S_IO|a%0@=jrH0oy-okVpP_=ntwZ+}vpRcSG zTZW#bnJc*tJ>oC9w(z&LI}~9Nl}RHYYN7AaIfmfJRcCU=FEHR?o*M%d!=cF$qH*cNP)HtBH7#R^zTXn>Z2gnzV0I ziZNX(lCaOpKQ2lSGV~MzOOR6z|okK~;#J zjzB*9F>}U^%$9SDezA6~%u~RY?c}o6SoQTb9A{q~WJ)iWnXrf>fiK|ocl@h?w@D4K z|1lTz)x1_JGCf#OTkI$s7}cXXT7aT#uXQFio9Zlm&8ki>)(~E?L?L%|HFmLmgfZ#e zxdkhwD7MtZZQ-vbtI1T=s!5LPMqL{x*%YF7XA%r^sq&N^nj(A%fdd-=ov9eT2iv64 z&}OfE>)Cd>iqb2Vy+q!tNoA>9z181k`Nf0Oy3D4TwM>;+xtcbkW>PcKH(9M?t=!9V zlirgTiqA&k0PFGy1A;jx#2n*8JA)wLFrp`UP-Bna>woT}j$A|t(118hbGM^g~ z+64ak^@nL5YZG91`1(G8SjK%5U?2F4PU(YxIuyxo{%u3xe>PVQ(B?p!f_!0+VR4b7 z9eQ36ck>>yG|g3;lOz2lc`@5u2+w!OZU zTc&vR#jZRGJ?qRN`*9ScwpN@Qbn_HJN&z0C0E&Pg+Vy5g$^ep}e0J;9#=Xo38 zI;NU}8V&lHO~*yJuv{oyaO5dKtHrMcwKf~L{w}?Wx*gWz{Cep7^?gw`d;Pj#d|=Sq zYA@yY_RIVC?qad@Yk}&_H!b`+{P}!|8F%{M{ZsuGQ!!j+8LwY4Rab38$SjPqW;H>I z38ywUr3_@Jz{$$#Z0#;haG!XT@6DV1a%sV;EE3s-&a#IW{^S#(hG}ot$}Lme`eIie#&%&cOxbmNG>;@O-vIc4 z+&D`csys+%dG%(??~%QIWL-YN>kOY=A;yikXu*#VDQ?P!b|?MVlcMWny0L3*4S8Hg zLm}H<7CNP)SXod0asqYq`t*(bz9`6k-`^(8_ZT#8ZySfYB9~2p8ONlOo!Sy*HKjgGXfo+_xLXv8 zs4V!FpNr?^UZ=K(%<_lc;}82%?e^=))@1`lC(0NOSJK7U_Cxz90`m<3C+RlaV}?Y! z67{M@U$MHlU2&zh5I^Q5Z!Ol*k~N!=d?brFO4sz?>~8Cqc=Vec$nO%+NYOf^pYIeSJNhZGTD~he~`c*ymulCvm_+g(b@Vr8Mt4Y?AWy(%Ma?e754ZzVeaoG%* zMZJ2#k0@Q;T`{ay()-Oo7X20EFC)Iq*wXxn$M25L!|J8p!MDwT$!uZ%?u&U@X8du# zmu&^L|G)fXpZfPrfEF#w`-Z_n#aH?&Rpb^^1^X%Dk||YNUPn{ZVk*zFr4RnrgIRii zOrK0VR(q15M;KmlP0aAe-=#m)Gj}wjE00l}CTp1~_((L6O%8o78K-P-Mfo`humQMi zH9d6J-o4I#POUOcWpsRV_ z=X``vLsW%#(ekqezZu;qllu}Oo2+F*Gw*wqzUz83sA8&&+_Mlk{|4alQGD^a8BX?# zqg01Mdk3PO=(nGJpK;;efrR=10ga@zCLi#4r%6lY!LDb4F~tks^Djes@*TEqPj zysh|JsI~C>VlRLF$X+%oC|<;NwaH}Thh=124`1}_WYnfZI*)7mR!;We{F^`gHbUG! zZEf8M?KUfhYvL98MlGgFPAR+XgZ3E+JZ=MU-D>tAMrG9c-1dpA7hPE9)o(8TvkSo7 zZ&B(4CxZ=DvKnQ(#*R!bkg@Pz0PAF?mki}wb-moZmq++HX8W{%EHXCC{Wk;36tzXZ z-o4v^{ca0-+{ybq(v;Af?%EtE?`1`=^E>}_Kid#!15pmk$hOw$Sraw23EH(lLN9;$ z@(+LbU2%_BcdUix9LfvQ9B0d|*|p5ldPQ~JbteT&*=40jo|V9L8vu=#vfWM2rfp(XLj#ziHRZ1 zOz&ba%!C+YFjJPvGKLw3+0RR+@9%uiU+4Eb*LBYIJJ+Y{lI!L5dfoT)`M96k{k)&| z{W4CZ7`hvbb+b`?mu2f)Kz6$d?U!R8ouoaL5~MT9uWq5PxGyRFeXwg;-n7ufAQE)_ zLOE34;|1$$VD>r0?%L7YoZYIeNV&M4=JO3c9Z#3vb$#!#Is7!bZ2D{|+cxt0MUNL{ zWz2ipT)HRr^H%c$gq>%j>1T_!_LaIWr3RAN_zu4ld{2z8hsl7`Gf)2maht2uZglkA zE_2DLxgwUx(NvD@sxh_iUH6O|T5eXa@a<>FtM5f!`)HJL_n;a`!4fE@CXAY1aW$j& zNrisneXu-GG|PCq(opvZN;2PCG!duPR-EVXW5@y%-O@pN#HqdCH`TV>(R6~dw!rDo zY6Z%g9-Z?YUREBy2A|!wK=Q_~<2l{cpG#sR1YhljQ*Pg4T|@!?N;gI1|ZI$}4+}`&ei(lwZnis}jRY0%A<7m71vm@`) z3tAl$PS_F-_rD3DSj~++vOPJ?ICW{Sh{9v5efMIKq&Y!6y{i^Wl^Tn?TzhLlpl8EL z(0XY`sE1p}zeZ-LUN3)TMwBRidUq*LUD&+S@(Q=BsKk>Jep6V46CLlhcLaACVGlTH zs&z%;f17hQl(6m3X^~!^ILG^FbmJ+)8^p3mIfKKHf(LX0@ zzQ<`2v_H??T8@)L&j+caGfdU%-Ak_Yu3!f$Y{=BR^fJ73{ZW@+IR#HsF}6FVSi~Ud zCH4fR&k;d?d~~gPfYLg>&)*4;cqOB;!sWzv((-;wZdr(D`Tn=_$5r>5%8e0lv}VbL z{u5vp6c_UKSDN_u5VmdmxI#lgqtDOU5 zubI|pkwfSGmYzOv*~qirb;4ru zca%^}atdf8Mco@1&3%vA)5DsNpZ7&ivEAWS4mRgvC)%bE&`-8kb!@!eE^k3f1e6^| z#7@#3gpb~eKkdSgA9VJ%vhqCp+fw6K(ai%ZYxL!X_AWugK@j?@=U;xe7llWraf;2Y z9Gu_i%%CfSaJaUoE0k>W@zHfBKAg4f#ul{;S961wi}*+>pVPuCuC^Y@CKQfqR{D%T zS;s?1l9pWw@r-#rIlgT$!dD??Ow7YT;suCcz)2I2D@9Gok~iry6e+)zq~k-=Sj0&WHe zfjosvM}wMg=?N#dMsC5&XCf}zI>CN#*DjtNu<4kttE zVSGLtd^DoK30GBH`K#2E6$_${DmHZQe}5vRz=7o_xB!K?DD|F9p?BAYd{vp8N>kIC zozp8SjOn&J;#cfdrkp;El`1gZw7b|(t~*9;b9!oYdfG_IaELcMjxh>?SEk4*D{Yy2 zt|VxHta}Tg)n7N>$p3L+>v`Db-?9Am(0P#4NyhLmjK<~CLq9QZ>6!Fi@Gl#auCa6J z^^-h-pLm;^RrIr3^SflJN2r$@`wW$S&QYMo%%kAIqDg0Zvs0=XYwv~g?C zb&k$Ow+k7`>HB(uM;jFfi>~hWV0@k5)%iM2c|@7})hLe)g+&(+b~^tpNgQ>_ou%XJyLH}9!%o5Lo{BA(#92$@+#4<7pY9t*mlNDt~_gt z0aHgUc$Ivk{9r-|-rAfU!5EkFQPLe)vv;i#URwbk78o_RksnYn7w>+XBzt`az}Ly0 z#};@5?icCdmojFGo~a#P1SK1QWN+@4#6=MD3ld=Jc5(ks&%oZu-j`Q7uMo6X`e@0Y z))VmKs~M{JaYR_mipBmIWcmF|WsRebU6x?vyfWlq_x=l1Tg9o{dI&@N#qI{)vY|_t zE+QnS^LrQ%mRQIrBd)rvIAv1wJWa;hP9VF!bHk8~HY584vRqy3`?rNMTplFA zRzDU$PZCQ5amyL-jc0Ic?KbH=QXWZ)S9~}wPqFV#>MT=+NLg@E@mq619v1;LI>K~iU-)*+8AW_-c zM847f?a!ceveH!U&l`|k+W*WeJ$Ul(pf|J!q4)dz zzKdMl#HCx^^&DA8kfiP{%aQU=x8HWYZQS&)uiTCYjLgd`DyBBs9p5%@{%Cfk-PNNT z7PVL|F>Limb$K4{J+w@%Lvvy9c};6nRwdXu;!WjFJxWtODierN)u|2mQD)>z z%S$gOD#^@&tUooU`1B^{zvU*1&6l$sF^x@HLB&>;sI`Wm3`_86-OZ{GuOpp3;*s9R@J{ z|NockV6X>)9mf~NKu*a-zCiBU<{=pbMhp3Xl>8f?RTmL$0;J~u{#^#^sNlHS)~VyF zedBZCSo#A(eQ#{h$eIlbMyD2Zr$@t98ZN$|8s{^B8+%_wU!|fDR3c5hEfe=COQrc0 z`0;$dm}QH--vD|)uu(Rx_CImgRun5Y@AEp+ut}yrIt~e7WzoJL=am+lkJeGB zTQX(Myq*0&9$1P0dgk0}nSekS1f(GB&`B8u>biIrdGLyZ>t*s)kc>~3ZoqS2yx6fS z0nc5;(mDdDo*!3X9jl zUJ5~wXrI~;VY%bc(PXT_NjiBY*_K{K{XIT@PFqSt7!h${t@p!aM(?4C(xbz~woFljUDv z7LYJ@a+O&kr=yHi+>-DQ-2WmyS)~V}I3$w^J4TlZ5CIh-Bv1u#Pv;&T z*et)uZS-CM-1Ono0Wunjwg3$8c2Z20;bWZ*a7p02HI~k#DFxibyzAQ^OaJtlr{u+Ok2DoZwN7AFep`?fOBec@ zI;>PZ9S3Z?aF-(oZ@8f-YwrsnIo2D^yZ(BsM1UM$^W~r97eSx83?QwuB7aQQ9oY^b zXMg^Z-oGQU4`5GysZ)fEJ>LcPHjxwp{<8NBXir(O$Wq4M{ss0{_$HeEWpBYECncWK zmXWh*fxUZZJ55=C>N}?z%}l`000J3@6-3mh%M-7t$*X8>!-Etp@2Kjk#A(T!j)DjU z&$k9&2RwD~2>K*l_O3p_T1mno*&NY)KR~IkZSBm;Mb17h==ZXX-(-aEUkGmhw|JSs zB5Fu_=a*@&g+pBWk0=WBE^k-)1E0r20Hrmq?duR?k~*LU2cDsfi#s1JU-v*n_eaJpk)jCdLp=5CN8!Mpd$Gb z?UAza%>pp@P*wZuetmZWkMBp?^a5kHFyhru0CCX&@^ev8SIsZD>$nlLBTc43E(=a= zhk2iD1d+MGlv5>RdxXHT&C6yxO)i3|6tDL=AXPMkOy5frc``eO% zNB*bU+bC=A+U3jh>fg-e*E(%__igHooZO0Y^6Cu%+tmJFZcqv6PeJYv$69SVHF9!W zRyb4#Q?tgVmZMl-_s_oM^4s7oC?7HxV8-auj9~@-nZP5lVTE_oq%YShAk39Ux zIR3{t{>M1}Ct_L*_y2>#{~8W>zr&1fzfdhLV3Bj*&S0~LxYfuY0+aHVEY+GW{|R6A z1&6Q&-=Aj>a-ng+qSa#R#6w+SUN9b_^LvSsmntypuUk{}!0GU1qePSgi~Ws>dq@sy zAS{O&2rB0(-xw9QH%NPxzF$u;TPmR+lP1rLZpP^}B>y$w_~A9xppkepTd9ey)F;mC z6G}?F!38%m$-lVi(_4YLAZiydb@Xaq>xc>3o0w_N>6{l~rrTdZKml@E>jUYvwKWlQ zlOv=ge5rNu}x(oWPVmP|s74Pn30Tu9sNX zBMmz2Vhc%uXMt9@OpJG7P31nVevuw0af{PwT%fW}0hoG5FL7GqS=X-Q^y|0tAeZhu zef(STAty+R&?=~|ye5Ll8{x66^4u{&nDnQC^Z~IEDkj<28EI)ja7Nnt-Rv6W&WvWZ zWjdzQMiNX_)%;ftolcbMuMi`r`O&6MvZS?KB1Z8GyMYP6PyW(?g~4dwad37^oEWX= zZ02k$Eb&}r&KQqa3TkBTwUx#{1UZ}n2Bd6jVt*I@;KX*%+xV5+7{?QKDilpyJRtAu zi=9JMeaD3v<-~9VB=TEpheXd?KT?hW}vUHUfMV@UyMdU6Wf;0ofU7LcY|+tABPbV z^iQSK2X~O9wMrDrK|Wt zY&*!a9Z_DkQm!L1z*gF&muI7?Fd&jWKVlBN4>A7XBA5XC^q_4B`1+a|Z)hPP2rS+wr*5FUkD=@t>@#nP8T z>-PUXTjv@*JSi8n^y4&qLe*YPAqU98C7evSud1STh;iWBMLmT%+|*>8A5Qz@RSU8f zC9-?WuZDB*T5UGw5m$JXsI!*B<6ch~3y;DVs)M!a&rI!|@VkmPNFpRSET(+DcFNQH zi&7<>eXDJVaB2OVX>u7SR_$@b+#5%1ogi?W!WqlkVOD{8%MK;@@h(hSDe8!S>6%Jb zKH8{Y^Z-b|8mU^h4Qx~>3VCg{9DZ79V7@~mIYlz=aQ(oc=mOiAZI1)0Q*AWmJ$5wV zkNrs{;Ul&MZ$@ky=+DuRj0Jl##y`LfGW)o9h*fjeu<|l-9aAnQ2=5CPQ+pf1QF5EL zjFrj~fR0?`)@K4sf<@Dt3`KNNi%YKoJZf^_rptVU5UKS_yXvY{i}&$MQj=faG_7XO z*Dz{(mi+141#yzsxi(YS1oWz_q2G^9FD?OiZA<(@W6--Yty-hlZ<@ToXa5@nJxsieVxDN-gm);{eAhQ{Gel z`@di?&4|fle99jrs^oM{Hl?MrzK8gDg15b>u!&ldfA_Shf?DDmoj)O-VIKbGMlFFL zCJ!E8Cfz3at_{9O;rLDaP~FhDi<6OPRMcm_AlgMvQ{Hc8S2AEvfeu5VS6L%#%v0?_ zPD{HtNFwhY-pMSAOZ6<8haRph7D2xr4JXm=4cE)RsH53@TsVc0e()ymIOBj?Y{XAE`wJ)2mO8pA3sJx|+GZP+$IQaDdYcm*@LzAZXsIqU zR#~T@mjUuxGPPdXjuunzX?q%Eo;%;~L#ROzoghcy-05+PL!L+5?;>u{Qd6P~Y~VAW&$ES;p65|{@cf?$HtkxY=(n?-V4*F*>Z@f79@mPIk)-97vf z#(`gmW_&FuF3j(z5jCUm6ZfC`e~-PT>@{itzP=t3z_k8sbb@Ch{2is#Gg3fMc($?b z-P%)D3*+wPsi4!1rfD4SjxJYM^fl* z*kvA7IAefwzFulL7k2t>c5QuS^meuh#>Jb0)FZKcZE}iFvCJ=CN?#HuD#Qi(jFR16 zQ)is*jvamhDB+7WTh$Zq;%{z`+NtNNIb#p`sTK7pYgl%O$%~UT>}Ik-=jY*1xi)$mYTN$ z4S@h^2GN{=0!}qEvZn6djZ8wEGstv`ctN6=k58U-sn4eunSF2{ryt|_Wbx;JU^{x1 zrnt{qYCWbIb9X=v<)-qaU-o|j!Nk0ifTF_|1Znod$8;BeP^N~Is&VkH-xL9M(WMV8 zY~Y3)k(X2;{H2fUKQQZN^P?t03BukdX-RN{gj)GicQz^rfn|e_NcBpybo@;%4(S@B z$5))HZ?!W=Thk>OL+%FlHM6=*dCfZRQSDeQKltguAAwkXyS0jwOI-^cEr75$QS&%s zds>WdA>BpHb--;99rU=XUK;R-ueYQs6zp$C=v(<%HRB%s z8GiDeX?Ec{1(X#43jPl$MEOx&z5Ow@@O$2lLnh zi=C-ixs`u*N?Sh0EMb2B^uPM-rSpM3(dHHQoBo91b&;h6PiB z38&HzC`B$nM7;AP&ylfR4eDz$br&M+KJ_n&FzvBgHLLlj)-pm<(>f2DVAgdLpE+ssW-d{qHP7$vZKj< zUpdMCX@VgWLd7(2v{`Mt(ULf`4>}(TwdN1Lb^n66h}kyL-jP#l zo}TM)O!G0w_K37@LF!#2%vnd0I!7Y1`Uw_Xa;;vL z%#ZKxN^i!EY=NV;NMDkFN5U!kBy4lkvTMkv<6$-7LAO>ZD+?h^@>-hHh~+N??Ti3$ z0bP(~(HmJ6s=+$*P1wkV5Rc`wTRB`!L2qkqY#alT%nlTJ8r~qGl zl(GGD?eI8^h=aWuteb~$cNE%_Z6nV^h!vtsR(``>-7iJY5#B9m)*j@z+MBj0Wc~zb z8KI}ywAIb00!1cE1wyx>E7zuGb5%w)fr60)&9Dy^-;Xf1cX036xhTxk;R2cHuOAC7 z8h7ugZTsSCmXnFqQkaeVA;Mn#Fp=n}pmWb)=Tc$9KgvKlmJtI8#bg`S%hM*DD20lm zvPz+qj@4QU96EE@4?4c5+dFBvUQWF*d0s%YIPD6(tFl*pr0y`{ZSksTHHD&=R?aGQ z^Qg2}y{Ht&u9JkAY!o!ds!E$+2wvwtFuj#esl=Lqzr})-Jy{u8vv_Oc{BWmj1vow7 z#F>Tu^r+fim6qZMvM`4JG)+WU)7MGqjsO zdyGbY(K8gC`nmlo%-LzsJ^`P)6|XI4HgcXmuV|yHAd7y&X;P0(4<-(TLQlJwWrOlC zVXz5 zJDwFPQsS2ecLt(&x)MxG_S4uDitWP&fv=%ad4IF;2^JC^!^n#-tXYxvp^ z!=!!A4HonB4&}rW^af(Vcm*q;2Qa}s67m83Alh%6Mb_FstGM`C-QYEzy_?ZCZ;9&p zzSBXt@(n~~s(NWdqpqedvPfW${byDfR~B$Aa3%y4T1WO`6$vKO1LmU&A^BrQwYct1=9cEN+1I7T=H9B;8sglzxe?L1)K*Ah7 zCXD!!dgvO=s>x&I6C#Zhxu>Qz^k9|00chBf*FEDX22tbI6T8bC9?h3%L$cdO_mB~C zSt`&4u|TZ=U?0uKfg`7pFh3`dCFh`^hI*9D@9i@ABO>boTH7YrUFgsA7^92**x-_U|6>=C6R0^V_E`V(^a%b@ zf1Qq+-+eE~cH@kim=BS#PgE;pgn`T8-oa1T#yrYKb`<9*SW12;gL|!E)?mrhz80tm z)&7$_ehkoX%5+KSshuyH@$XIeKJd^Lk!l}`Us{%o-G3cRJ(PBw0Mvlj>z z2g|B%)pMXFDd9!18HKhE8vOQ7ejV^AD)5a3%W1}jAxk2c!3{*vZN)?*? zHh@ws_+`K1Lp({CR_k%GlMtm8c=2y7K)&*5lhnnHtm+?D>ZPRv7f?qEL88*5ActSI z)4&Ie@P77;tNMwQktvJEl*jnvTAkKgtARvK)jTES79N#^C2CV*EDmHfL+5p=W2erK zoC$d6;WIFM5o_s`rM>nCQdFMC0uEv*SY>|EErLg)xK^ljK!mQ>Pvf$!z#U=W{%jvD z=AesZa-7$juIdQbXPA2&b#Q{(=RYW|UNG|I)<@bf%M@`XP^L4`p*3NTOE9*vJ`&?KJW1bGRWNvq!oP&7n;3Q-wJZw85>uJFAFND!yb!uR z;y9hqnhsl|hvHEzJT~x!2`wZ)U^vEeUq@faGQHJ7FtW#?6^Smnc%JmJ3;)<}E2Wk! zxXqk&00pnDpKwm9)kujn7bYAxB~qKuBQkW~n*?IAk$OP{55!#4Js-!2!U}gxqcDM4 zzJH8@_7y@T`^SjoK83uJJaQhfJN`I+){o~=_RLEDRLaH$2Y+%$@S4&fgBFJr=|ND{ z#Yx@G^z1;yh}%CEdXUkQ{R;{Bpd1Wm{zzGaZt-u^tVk!6YZn=VVl8vdea-9w!2 zMq>y2(mI5<^WSI<@5(OF!sUM&gjMZ@_*7t7(T9z1MU{e?1}Jgxz}lqB_|%rt;^-gg zEI~hHN7L*Hq4fx-1~M8~ZA;;sHgL@GZcXtN&SKqE@EfI}ap(TqY*L43q}LtG>{Gl5 zk~<{?p&VY*52-GXL(yk{y3aNw`+_`R2$qjHUx$y4^B|u?Mc#tvlVKk{42td|2t(z4b7rF|AYpjo)R_HLju1qtx`{7;fQIp=bnYq|GLKVYbtN%YPKb zv8mR~Ks?|kj~QS#oP@BTAqLF%jE2J5?Pw!cII2}%Qy7l&_Vfw&2Q|!Ff1b@JexdBE zV44tmmCk(jSGb|bDCyNz{}XBemhV7GGabXwm&Rk#U?twf-8xxaOS}=wuZf>$*L%lB zcAbm=k(1F^{Lgi1H40atQQCZ7^ZK<$9=|IGMGb@66kULqdPS*yaQ0Vtwtag1$bxMi z^&e>Uws`Q>Hf9=?2uXrP%8`8a9*?IUBvRAHK4kurtCf|1F(Nv2=aZ;r5i-!0KMnrO zPtN$hGvTVjq6xH3%-m-o6q?~AU2S4z^$j2oQ-Uwuqou2~Zi2y0oGZ?-|LkKM5s#-G$;-=fnQi+3&c=nK`(t#%JOk#Q)fufT z@mI*dyD~tqcFWX>g|u0gbwGFwkZvsBspOslx1x^??QltoN(Yjp6}rk#2KVae?NEL? z=z%k`=_n=I@{Fzd81PY-5jdjUi4> zjkPer4dqWtAL>fp{KJ7qsFZAj&W&#S%xrJgs_^3B_&pW4J~PMnwlr+`0p%7}*_+}5 zSnV)3WWKJ(kYHQpVS3^uDNKQCn6B7FL8i{^O2S7hN1PHaxN5*?ad3t_K6Fotou5|h{&0X|4DCh z88*Rb+Qq2V4EQ``4Te!K^-3&-g9mH&!F!Cb)Ko#d%0TF9_7(PFuAv<<{I| z8_G!>f2exb{$;wg9n&6XEOm3eu>K0xk{R>_8{}Z4DY<z{lGnX>czQ=1V=RY3^<<@(o!rKFhdsOvT#xOij4MmthMMue6Y`c4k`X-|{h* zmbPE$Pcn;lZ!muLa79(=Cm}FLW=g92LaNRVZ!f&Oi89wQD7j>I($}iS>*gH2d^U7I z@atvz&S=3i?^GY}lQ@t5voKb2OU3D7$3ronm%UNFxlAuZQutJFaT|<=?u+u7Zy)$A zIHE(jC_zKY+XT%gTXNWHRG0IRt9fl^rzDOsRjBZ8GBnG*jQ4f;iOaj$`k5)ncb7kW*# zF@jM;r#A;3!x7$D=LHKIRlC2$-A8?NhIg zQJVq|54clE!PoCi+y8oORcL?j`YXifpKQ@lZ>zczl%(4;%<43;Syfx}gMS;SBFu|# z&pVGqu($GI70l9NkFKhnTe?UuxkfglL$&hfM_wRR|9Sk#78Ea4F8ilMU(xr(s>Ot4 zACQo=mtgPCVYw`5;@jJ_pL33fmd|*L+z^__eA`?okvuByMnAOoT?JvJSl#-y%dlTO zGCr#`9(q9eNqwE$N3sNKSqW>xQMgD}YIt5-^maS8(mekwn=3)Ccr>H$$e8bH(2u$i zK7Vk>KFG?cUl3B2Vg7h|?7pZ8!9nF0p>*Rd)Ul@X*?P+gV~BfQwhFpLaXTPlUe<({ z4y&r|kq+^m-dc-`mqG=7HE_67tw;H=&sTAnbw%Fr)9$PQBIJNh zb?nB9fJ5GXnkgyp@cOIioli7Vho4MGqk0Z;mUYbi+Amy1q4WqIUSOsZi|YVqTNp#D zNZpI7;0_Ic)h;QD3vlr%i}JT21D&Uz$1Wf{8@@D>KG6!n+FfcImOJbak_~on zbb=Ta5lN892oGCQYokwL75Q8?tu?^&+dco(!&WX25QzH0j5K0FBU(_*h9 zck6Ge(1-P}o&r)(R%I)$eSE!8^qZfKKYpJ`(GQeJmg9J(K3gwsNbZ^|<2S>w^_86) zYNMX^Y5LR48{^*~P%VD8H7%(eYR+|#)e{?M>J7EWvr4coT2=QJ^OU0$f+-N2D?=!Q#OV#RN|vE^?H3?;?_p|p zV{p@{ku+R%&-C@=x1mea1!)&{Le+n@V3^b1MXoL)@rq~T+9w0UBk(S)ait?1wSsl# z7okqEIek7BY?B5-H8{+^-HqsAmSO*VV=wOkVPIHsO26K4kZeuGQ-Tc~e-& zqYl(eP46189H>@!eR-!vWX*6`N!T0x<$f+2&k?_4g=$X+TLX3(xJ!Qbjn`huor@RK zO5vTz%==7sK-reXy+ig2oA*0=6dHF8`honS*!f|w6ym&1`lzuJWef1Bj{6}t!WGSX zjPjPb2b}W8whW`SwE58DVnBzLFs+hbvUCd28X01OrOk?D0wH11*fBOV%GmN`}zW0!Sc5Sz^sN6E)X0=KfaHW}ZqdO5vq z?EO;4^4gB_j2?flZh2i>`m&lAWne^GHiDpq_CGIcaWu K$%-R;0piBH&10s&>ek z8vpsaJt)S5gck9$L{m8+_`r#3L6I-pMy_l>u=~tH4FTY!ft8rE+aaiEE(v3M1I*Tk z?7(dYO&Ghzw}0`jfVDLxAMf_AyGrD70^F%(oex=gVYwYtNA{1SIQ1oS4TPOgp*}^s z;-#QH1jO;-T)6c$0CFH+uzjMW)$IpnEbl^gQhL;n_$>Ev)X-287n&VJ=2|vaW1F41 zPl0$bU6mu|@xeke903w%qQF*-OHEcqyDh|yZbLWcT!HkixwFd5T08XtXzfZys6v6# zqx{#}566Z!Ivz^fq8z03L-n?g1M3}WIITaj+da>^)#T>kK@&n%ahy}F%Cm(wmIS&@Eu)O(%D z*VJauMV7S?KBo(RjnR3{BcBbx<^~_a>N|ODz+BhXiuO-^?&rRcF72%1R&IJr*Kk+b z#-3~%$)t=Zk#s`h>-fKw;eO?RWA(BfiL5Si<-|6`=buVdJCz_0ks`D%B`bJ|#rc&z z7G_hCH$xo74e z)NohOk~w-v89639sy+}&W*Q+;8J;u@;yI?@lDZF0FAJhwphx;zg-F)j!et9a=ZmaN z!w-JTlN)B_z7c<69M;O2UG_P6s&oFPovBDuO#;;ER5>=g zy!aYE?XcQBwGg4F1d)`|S0rm1Npm*u6*YZMM`sPA{1MNiYOY%B zbJnR-iSU}$?LV8FMiyreynGx03MA0xAE#i0zyNvr5- zK{gH4G~jqc=;#2pP*RNxQBItwh9|j_kCR|(Fspi4Om>bZZj*~Y@~Ew|f2%%`tkoxd zPv;_5j@gTkIdE3DzG>_Tsqf&1oQ|oYnmU@+ubef*6c3&a#`y-G?Vi&EuV$=Zv4oiVs^w%x}ZU( z2E}n`WN)c}TyQF^cq%j1nbTgML=zW~b7<->yW@vqzk3{Emd$-_uqE|jhx#e`q4KJ2cjK9fzBK)NT*g3DgO*8SQ`0m zReqABeZNH%ZC^&dNu#;|s#rrjmfj1ZuCL|ZX?ZQo3F7&eXQ6hv-oBTzr<=1Tmvc4F{|rSBralh z3n4qChFj=rVsXu?EKI89?ghOY69>KhxTcjO-V>`e*HIPGdOWhffSxeHoIhX0;09XI zTqeSECg6U#u06;2)9})-KcBrSw~x zKRKu
w~I-9Etd2f>AOW#t<>p!9YDQa0$)CN#4>QJhQy_X<5=35UgFN#;lmcMc=TUc9zm1oLvc9*Fa7JH8&o_&d@=t zgFyaTn#%ScxQ~$#uL$ShrwNMX9B4u$%m9*E9#@81d+&O2-5UtUjS#txcqOKT!O56- zcZySKZN-4`JaW7Z>ehc~+Z(nE_9)N>WPxO%vQ9Q?D!O5_P^WfUA8+DRu*s49iroxO z`_P+84728I2J7wqNcoI3%qaeL-^l0tN1GJ#oc64PALErPP1$Y`ga51*4K!A!= z4%xq_cGUHJHrM@TrM|mv?jimeCxVG_TNSL!p645==msX|1Yj~jrk>rVA+I)3UCMEw z7WeBZj(ehzmtfY4H=#DaG78kKA8^2dS)zqKqQP7h(OE6d12y4tx?p5Pk{5K4{+%!| z6~b9>Tt)&3l^ZgRZbh7{A>3%#!zQQAO}hlRMpiM6W1qM{GxK`8yj3QXTA1;tVJ#I_ zrh1!lh#(8Z;6>ZY93mnxV7q&Z)d8?&$UgN3-sr)q(>eOc+2@|Llt;r3<*)#)^MkK? zc-xJhgvEC9r?m*frP9oNLHlhQk~`)Yr#@rU8@(B~`9*bG{m$AJcgW2-Oja^Fh?A+F z?p0Yg-1XL?n}lU0d%a@9OC zKZWQh_`to85I4Mq*!^iZfD)2@&Mj=;dv)qhH$q5PM9pBOpc3m!E>8~#r{#@#Owt%7 zE`ybbxaQ%o8})Img@S|i7j>L^EN@Y6(z;nvwMzPAQG^zm(|O@ud)8fT>iYo5rd?#^ zcr*V3>Z1A81S$&C&Pn3OZNS)0lwdDY`y@G@<}!Z)IMkcaMW!N;cVlMtOSfnf^$oz* z%c?xbJq*E&@a#=lH3KXli8SWN4e3!nStLN;B0z-}Ol=p?2vD^-JNqmP6}6^h^dbl` zT-90rZ(6WFJrR3152`L!Rk3{h0gZ!``%tui@K3vxOT8D8W&`|X?BkMfoSzenm?ZcV)i zsEN;d0eL_o&(wMePJjlV8srI$D|Cx|Vr#IY&TCg@xmXD~9c@?2aiTd=rXq2K7l3Qb zj`(AclWz-ux^hnBolHX;VA#Gq1X}BJY0I53wSeG*8&#!&@IImo?Yd#I8&Hj zy_~V}V^dwQf;j7~QJvf7J9xFk&Ry+Ar&R={(rGQ~r+pMTcjcI2N{f#k#9(Uur7Znx z%uB3Wb2!WWqt!Of+t<~?2v5*lOdX3|`|vTVR@^}18Sn~@^^}FLANoEXQUgh=9pcfe zaaU_!4E<1_4)*xq-p%u?JFc-ZR5}vxbUJ97~r$U*2kbaRrKlcUr z(FnN@^k*W0vXD=O8r<0Xl;fSl?6D>K91Ie= zhgc_p=h%^g>Bd_0zF(06lfI^`rKxCwm!H9R?o>wSvOSc zIk4h2_}5Ebe_%E@gl{!cb2ZJUh1FZaP4lbi{Z2U_=2lO>C2+%cKJEmzEC6LI=M{*j zgl{5~8n=EgTblncsZ4^K9f#gG*JW^yMgH;e9=%{Ko%-ruXnm`u*O=U6tANrDmq4m1#N4y-_R8a+L!&m72Nt zKn2vcvoc3+b6`1ef)g8Vat~BgTxbqZQ9wcTNAJ(?`ycRla^L4Z=Q`K;cqA;^8v3AZ zE77kGgMZc`@FogLW)DztuYy!7t>Pm z&^!KKQm&DMk}>q=mKVc(AKlHL{m0i9!0a)HsrLAqUES{L|DS17xamn&cY=MNL}YG8 zMFwpqs?iq!ojqFf@#KujE+%P32Pr+CQNE386@^~P!ex+5UzGw`_UU!iQN5TF1K}O1 z#zqsDNb(t~G4-aFZUpjrUe(^;@#v|HjYcsfHtH>12a=h565KVs&diDm`c&V4!=|}H zd-?XqHS}OWg9(Ewhi`f2z?yBx#c;VxLdY`j_iE@5gj|vxs_g^rkr18Z4jJhEu z$f((bwFTf$eX1!@B~N=hJ;yh)MgUC1s}g^^6{2th?tsfZsO4n<@=II#^4KeHsb|d0 zSI*qs3LJm-?mKdF(DAGe1tZDoP=0*V+%Co+_BGItUaMZQK%XhSY4hc!AiZCU8Vl>k zoV;5lSM2_FsFwlb)Z!SEaRn19YAq{`@AA|;TT9nM2NaGdHBrQ7R~@j0=G$_V6MCYb z;I*ovmBu0hPlI2EP*)@Mvwa*C(#M<_j_}}_>H*bJ!!ZQpQxro&AmsHl zuNiT5_UYWz%u1d@-a19Enm_h6~MsziuN`AdKU(EquEmkG%KO%uqbb zf$OAhR1PGSbR3oEVoW%=WYqJ`lolyvM){<}KWYYGn$sE@a;A^*FU%0iQtzM?sNGcfQpNQZ!Mdyk~Dewum&pq;H;F zv%yPLWtQk@a8X!4!?X~)_9*ck8%Xuc_g;E;{n`&2g!=kMu^|NHIj*+=8f1Hu1>$Thqr{(rd;X~b$IUXjnilwcr);xu^u%hG>LJ`m9RxPhg6k^ zZLS`={&8erxfDhF$HxVBw*(8-mSl@@~ zAfguHJBn#1Dc7CVS~rJESkRVw5t!m^u5btfzn)5WZrbx;yq*%njM-9a^6Y9s6e_`O zAhd?~F^Qq|9n-{Ge)z1deDG;JXQ#mMW;|L2>ZBU`IfQM`4#M7!w<&L2=rEv25!ay1!ub4cJa(MY_LE5)@Rs;5z;{eg#-Z1F(L zwTn>aa&9hd?AH`0s#n6@ZbiTWF=n3fwqE8CN5%+jJXbKiI$DYArCwjLkYZI6M+)Jy zcNaaWtOa9Kjr;sEBtim(_yaVi_DrBf!Mc}M2|Hg~k_Y-{$+M_?KxwPh`scwmVAz_}+o@XdA$6Z0GM^C^TjJ zAE^TS{vTj}_HWtILZ07jf)R7~pe^>o3fY~ke_6(wbla+WCy98Zec@rJOWm_|Tjy%Q ztud_Kco?s}nI=yq9t%ihQYzIbL(KIwItXWJ7SRu6*h#^Yw;Szr;YuJzt0QQHlm~IB zpl#o@DJ5GYkgIfS=IVAM6!_!_TACxf8S2ou$^9;Y86soOv~b+4D;z@AAWvh)plnomVEEl&hsNR*b2y-)cMe2bGjM8 z*jQ^@+WbDi_hD#Z8n|DUL?(}goE6uizHdzQX+!TB(&R9z!kkB6e5{0UkHBY159J*m zVs*=VL@k{mDIwzrwQEENh;08r(>yk?TNg<19SKla*S(E(@O$V>9+SoppWCreF4d8l zDER@+MkjbJB=zR~E_$mgZL`!_n@JLDJteL~4ZCn*Vhi7KzvqyTO&Y5&Rm} z_AS(5)@KSyd|-ZsW(~&FH@$#&VW3$Xgu^muktO9b&_D749*ttPZ@q!t#EiT}*|3jw zMCII(os9ZcZ!CHLOZeEpN+dn;sRka})k*e^*5Wgo%=m4E47ptRN3j(|TXup>T6|fW zF$Yn;FowK4_mg41#+skUe5c-|9hSv|CvL43KMrp6S|bKJC`mCGN0xC#%quS>5vN*h*?YWNUhP+^5fjfXlTh85^Va6ck(A(yWz`i*;@}!1AhMm(B6A61vj`CqGBu zvFTh)QsRu1Qs3EaTjAOr-TWs;nH`>Xxi3c1u9MTx<-_QMKG3z7Q=eL)We9rK+wh?PAtb+eQdznfw>SUFqK|44*8zSK#v`GQyl;-Ax3(x!wQ z<@N>+IzV)8_5`F21vKcS;@)7UlN9*7S7{)(EfOQJD|%OlP&;D>O66VPFj^mR^i67Q zsz>bbK0FG|4SuaJQvW0@PkFlzt;RW33t#PzZWQbB9rsERFnzTcjt(ZTXNeuH!m=gQ zVCUZ}xxf3z7-{*+rJPouf7>h`nixZN0B@73tzswP(jdV@@M%i8ti~iVc{KvUg-n1H zlYPw>n^?M|-7xy23ln`t?GrwDCyLvhpVUa->h&n9yFm)1j*;zfXe-UP zu{fGFMH(=m@%5K>nMpqix_s)=%jN?KeE+C2d~)aJ=DckKar^tP6VC8Vn46T{_Iip}RNC{_-S4i!*}Qev=h zopkq?*>oKa!ruB>Z6~n zS=3|5O7-YxJcwSZ&5?D9ln&azKOQ(^v-y%3HUqu)3w6+(9B;ZVt0wYY9+#S=de*A4 zjDsj29WMBzutD?u{Ni2|Bra8owfQ_BKE~Z5DtZ_YHH#Jt+lS=4A1$u6i~|h4|r8jLP_Sxbn65Y^?0K9?4i zm-iPrYc_MbelL_+qZ5W8)1Q+dn_sbl#9kV`5}UUQ@?At8)WlR>RonNZjYN2X#oj(U zMpMA3ffUD90^zg{Pgs#cPCXeyEqDJC5mgw7DzyFiF0he_qzHtq&YBOT+B2<&AY}?g z?MjRQR1TQlP>jtR0$mOnJk(D)@l&VAMgf$;{-tvazC!oDWLSV$=MKO+$C=a-DRvkbgu}2 zL%q!G-IS;FK_`MT7@FYw^*Gm(2_mw_W8~=&k=02Js5+8bT+*?7$kyE)r{=U)l`);j z|KgYL%gmniqRZ#8a#w(`F2kD^_z-yka=`8m?zPLQ(w^>*TFPBo)mC3bDk<)fw@srEM+-6Sfl;wUDsqlyy z7o!;t+v!hltJ^nD@rE6WAJ(u}ZHcoCcw6kbl;70nSDX4VX+cNMHyT+XyxYJp!AnH}>R0w)wq+oC^TgjL#Tc;W!7uxwf-JNA z8M*@Z6nn+X@AEI%HqSO`0p+OLgAoCQlQF?HqURdqy_%Z>BC#zeZ)sc}Q>ekb`f4WW zjZcCivv#j9mYuE_U6--x_Mv_{#D+SB-cV?)cpoDGpEwJeY$-+X#eN;Xa3qbP+jVN| z*zII()tYD%zSIUq%v#+@Nm^RW@($V!{qyK+)bh|eqa>PtigvC4ZJSysvd?xrtYcT? z+4+R`#-LXY;{kr=T8B(KebJ9&>38`JU*~F#wvPja=sCwuaZ<4Qq1Kz5F;c%gja2`q z+0Q%J6T1%8g!EsP{9kQMWqEtJQ#@QUJ5>|GWZdN)EBI}#73<~d+3L0C?9Ju4*Aez^ z_GZ)^Qv4C|HPTzAp>+~&jx6#5xoCY#cVb*1xVK6m0#B?zkF2zuJ_y}rZ6WvgH>^@Ea<#yB^9jQv<^2PjAuFErS@ zkURiPRsq#@kPr^wY6qu6Mf;|cq69J7RJ?Y-V~wXkPWK;Tj92U_g? zOEVv79Wb%rW>L&{6a9ekAiH>YS>=P3d*JcvYr_N8DmgusK2+q$@{fG1EKi3X#$bd@=y+@qi@ku;h(J%3UKI%0pQG3C(Qe+w6M^P6DGTBKZ}e6 zP*)|V`Ki{0A2FkbP?J~tZ_{u1B@oxQl=d^U9ji3!gEt=q6 z)@EhFH>s;n;gZH1PPj$>t^|HbHcH9TGT-!@WzexKy9`e!eJ#t_|J7E3tG7T*Y(`1h z(WOOgq~>^rCy1cf1UuR^A~-QA#UjGFcxz`Z8;2y_TCd#m9`h=M&5q{rZ`4-!$kJ*CxMYDD64i7AYpOKl>!y*fN(#kxt}J~8gNHv;pdF`3R*9!Y;( z*w|zIDXej{A)>Rc>iiZP3M}Kyy`*n3<}4oh1Z0&qs`!J(uD1TL7pyg;0XQ?4X|gn9 zYtFwW@q@E|S1yIv?3`4ZYF;)ll}lLe=^RZi;fKkBcHUl~>*}s+r0Hl$bX7Lr&n6lJ zXjqS~w;Kb@lP9w7MDig-e7?BueSf8PJow?)h8vgbZ!&luIt>hHF#|V#x;IlS{Pl6% z86x1?BAp~6vV}L_;XyqHv1#e0wth{zLR&qJ3*?drg#pzycgQSzn)gh?c^Nz%x=~$4H)D7v zmwm$8YBCm{nP*>c$W?1U{_}F4(+YRZJoIM8T+5>KB_C7WUR}p{Q-&f&nYjh7-FzsZ zo9n6eenUd8OdZ~F56s9E?fCXX(~C0C?XGn#a#npSCmPN0^KtpX3}_~;3`1d#KZ5j| zUyLz?U^*p35MrQFG?VhoJadG0O?@fCY3n0el5I!iN+8{NpQJ;x?85)royo)$-rDhR zZbZw-!zhsPj*|l?iV%%kb?kFTO0b$2A7X!uu`J~0)+U~T(|<(W%WpmKoBBrUN4MkH zzP*l!)Nlx!Xr1nl3vYRzK?`yA4IOIw4HV0y?1F&NgDX+${ zHEgq}?)0cLW5^wAU(oDnq^l&{T`G#VxkgGytJ@n^;wq(O9r5^f*8qK=wq)?kC-!zg zq$YkCFE~kp=LEoX{lRA+4Q$9v@TzH;N`Dm_Scv>)k*71AsrTpF$|z#5UwSVNmbF*k z7v~#uHHZ4e0(B<%rfF(2|U6VYZBd9>|&m8om%+o zE7b!5Q~>#>Jnfki7x@=xUmgo#o$4+ROr83EB(~X<5!JJ=qvwQ5-c)HF2*Vh;9r=h! z3ZM0av4Y*QpWz9%amoF?p<0#i9Q?IeA_A@Pd^^GfR0TJ1K)u>WOTlWw6DHcs zzOCs}m9L>+orxLg+Rgpnmg{)vl@ymaa>ljKU2Mum&pGoyE(}=nWx%U}Gv}#(+A$;I z`R0+Aw@5Ef+~)l|z(G2j0Xgq<+`>bSvurqY`hiUM{8W-(hbQ6oMF&-_eHO(jMC2is zS%sF82pt_eyoz^v#UQXqT5EC#;Ndx{fR>e(d{{ZOJD?FD5AZ8r{QNsamf8Qbd77f) z?4v+mu@Ehv+%V&iOsvr#tjsMkO^Jg4$k}rqOTXx&bAmtAj5>~(7vN+|J&eEz*)wfVQTYHmzFsdSvz6BGGj&R$RD+8^LSjc?fED%Cd z)X5kqBd&RgYlSH3QJii4o?Y1l9c&jyOd>GAGJHiI??Bh>{m4m0h1;JhT_eFul-b(sE=4R^AVrLad_CyB|@MBPX3BG0tzt_0BZ# zToTdI)7%WlJQZk^RFXSP%@rg(b%;RvIj|P%v-r?R9E9^HWa3+vJWIrQ4vtNCMRt#xKl51XKNc;eIIsdhX z%29ts!gcA0TT|jyN;a)Mp*KUwiVeWuM9#x?XOYde|r-+n+c z!ohgzqrIBIB`QXHXE@`!4wbI!Yw!}&=5?@UGn8BaG zWx274O6%iyHU}B~Y#8w4`GaS08YU%9ijFot3sQQ8J~{Udqgb8cx9^AV`wNFQt53n` zr7+MKzVpE{{Czy`0;k>M)W*_EQFlk5@D&*lYoKypvibpg$ewj(L+@P@KFwZ`Ve>hQowBZ8|3AN45LDH3qIF4Lh4@ zsl7Y5N21S)q5Lp?!YBL~3pR*;voNkbAm>JWGa4G39sWV;RBtmgm-@=}%Y9pOB;_Lu9*e9@ zNz?{kG!>~yS`zilb0SSduz2{);K+JkIlruUrS*h53F`?#p!>Ktk>(e4G-@ta;kQ_2~O!PF^Pln_=+Tad!TDx#x)Ml>;l9DO7wU;5E zZK{~LmJk>kw=d#=?aEsJoVy}CBCu_rx6_xF(`j`ZcMkToYT&I}%pfX>=^z8xa?kae zXuQ53<&E^f``nf*7no+|=$fEMh4;~AevL}`UcJzruAy@s5d*Khz1U}`axYDQ?*OAy z{vQ{>=ttCbd{81(oJt4+xNz!+1`iceG|)z1zMp|Rj&}r$$Ra8bAf$ZUZUI`L5AI8Z zkyl^^62gaH^%?^IQAjnOUE=1LVtX-93}5ufIWItHF>nl=zWsK`&n^4POuuUn4~2pDHStT&3DS#n4_qAAgiX zUy#{N>kCL72zfiq2=;?7f-j-Qv=V|1-O|FQvjbhVhXNX(iGkXN(OR_`Auh3FOTUNK zwIlBQzzfnIlN}&&QKv?36S}yRtG8IGyyPBv0B&;%@{D&i^fZy6ZwdO1?k^*W{3Uvl z^L5Xz!FO(^q>Xvsr+Zqv(ak&!e!H-Jz5CD7jF-c?rLOwn|J6`>-R;W6kC<4;F1Ng@ zQ3YLb#;!enP4Wo0aaWkMMn!l+5Ku@GAp!E!0Caou6LL*aK@8~S<$1?PV{`Li z?YFp_6P-j{^_Bm8JbkC3r>n4D{eMJZZ|+51|5rNyE59hmWtNJKH=Dvmt8jN!e$NR= zt6#L)U=LjSY`qe(9{zQ%=heo8PNXA1+Ru$Oij+{AHulVpfiym(*sd4u&H!+a%jb|0 z@?=j~=DUVJfwO%B1T)N}S4?gWdR<-y&5yGL7(vL}8fgilrNhfL>Vc_oPt$i?4XVS| zt^MFK<9(0HZpFeF;Vb>o{_Pde%-pEh7?mb9^rLMOuXIt_ zF3M&RsU6hxFc(t(-~k~Qte5hhF5;dy)4TZHrxM{oYfKNbV_c#c>2_Zc8*x;nJng4l zFRgXhF5a7zi^pZL7q1!E4XDsRMPS=Ee#b{c_DJ(#KR<5HZsX?fKv+*VM_sth2Uv(V zO!RCBwPRa}Yevdkkk=cBo(ejt;hOW{bI=G{MmDV%>HtB~L}dl6!PGr2PQ^?OO8M>^abxO#3q$fb`PUyU;t;7zfy5WPZ;_Xi_Nz;nKS$i(U*{ zgr_LK_eHR8JjXZ<8B&sEy48h>!}_ z>yNi8{GLsbfU;p^%j|bla$e_t)6-3AChz2zjYgexU}Kc*r*D*Tt?^AayicBou!2k| zfL~_MRs;*(_x-7I!N*PX!Opb1{S`G(25DvfJa^)3$5ywD2( zp(x~P8_)UvmK;zqS`2Hws6jye{1pCBG_|%%i=P zt5%;Vb~SFCDR#{!YyH<*4|MP}nzH|LVSt2Mgy;<3bqNW4#1E(If^cXogLL>B09=G^s#GA}VT@ZmpHt3j7*8F!@e++$<-;`o7k zqbEWh$9n8CDto0jBjAJ-qE>Shbvr&UB!{wuBJyoSI<8Fk-0VMf=(vfzUie`>!uY6p z8I{=|jM7gND_((??3?e%d0f6d-27c}$cHF4bkvHDj7S*V*l2FOGN}5K71?~d;|uAn z>iz>3FRcNTGC*B!6>j=d)=}Dp0n1(PJU}fW972W z1~uBa@={GD(t1qt5|qK`4pN{>SG6n~$sxas7gHu)RsO5;m!_(pCcA>Isvm^t<)fI-KGg5zzj0$leJyB@rRMJ8T{C!uhaXb2C`wOy#)M;JP_{69f9Q%ysQ{hbL z>UL$`A=l4>yC%o0J+zE_#OfCBffaR|ranmVn~u)TMvPz|GB`b9P|~fnvKN1jFRz?o zN--kYBLo}L^2m!L#&a@a4@A40@eEGP@2YCU>yX)MJDh_x2-W`<8<{ zrb3d!Sp3Cc(d71CBE5L6E$h!*Zv)QL@a%y`@5KH1{UAZi`GI1D%aNJ&W z(00isoMA3=62t|NX2!I9pCQqeKH)u6-MbFjGra!pe5Y1z%gX?ytd@g~9k|R<9}vG5 z##UDnH>0cc7ZX+Qi_cYK4|XqDE+Hj1Rm_D#^fBNu57Nph;o-64vC9IPGC^H=+`N_l zyw!lFd(Uxs2<{eUaX8~Bt&n)icd>fJzdR7mkoYwKgukXQi6aThLK8@0=ykXzMj@bP z()C#tAn@u(Tqe<2O>{jiWh9{ZT36*QVCS;lCl;$NxoU9?S-4= z(dYi3#Fd(zqCDV{wvVWcmu_5;?YdVQ?xV3P@*r&L^j2&$-Md~c`3t0e19j-(dtP;| zvo$#4s1Uuk<}gwi`5jBU7b;4pRWeqlb2oK~SzN7vPml{ho|qmG5Dmu7chw6 z!TCdQaAHeMec>T1Z}Ug-Lc8siTOi&+^XwN-M%kQl^yDxUmYq%|CAAWG;Dlc+POL;k z)#=Fn@xdckqD*Z0TlQ#k8xbAj0a|jol46ar<|5uk6doits2QA|>>A``2F$9oY|Jr5 zt|+eG+^h>Rs;1P)6|)>Mv^q;DGr%rsvDIYyR4>(s+k}q?w^L*gPuH!U(0$`^Qx`9g ze-otD`2jd+s0RT=_flF4F6?4P3)WY8qNj%LHcWnzytrl#%gzU#9N{;h<7NeK>*$4(aZm&pFdQ@^KTowSPGXZS9+XI$)nnq)R2BNY~g1(j_q5$Zk&zZ zmjooDYJJmk)|RmFfXP!ZoP)PQd}#g1nx$676MB%8@6Y}My5HDjXWF!@TDpeZ{&L~t zji&haM&`1)6%TA5#$C?^pJDKP~@9@;mLXjqylkXuz|j+eT4#Yg!V{8c%W z3m!mhHZGr^<+8ALd&Js~>?#Az=2`A_XQH`YEfIJpF0aZD$ft>mbLik4g z(|H4jWS;Q)*|rBM@11W*T~-?1Jw9)&-cR|v7W*035}0}JzCF_?KFZo;K=?Z>H+#)J z;WHM#u8`89`te=g%M+k*)L4g@dEL>=Q~$@&aOIfI@ODX6)n+`yAA*G(RW7e7CBufc zoyXNyLqr%+^=nzs1UPtpGq3|AlFxYBqqS7Vl*h!IrjFf%jidTY%U4T~vRRmlm5D`Y zT2I8=VPw$#ehQ1EXAQgICtPUTb%lASYmq*k7J}L^JG5}y*+1E~-o>@-MBN{yQxDzd zXQm#v?Ou*^A5v?5=TAn}G%uGC;H?vWstXOlK<9Jhu>hkdpTDh!u0uB@gB#_ClHqM8 zbmN1-53$K8Y#)ncFk}RAw}v;?kiPEk84+o)hD8M5!lnQ#z;cc!|5*+1mce!C)KV)l z!|xPzbzEDCod0)%5E7UlsBq}ubQ(RrefJJ{j1aiGD*b9bQ*`Fchb7Vr8TD96K5)>p zqLHOctnKmO)Jc89`k*30LjFpfXPP%a~lt@iF;9vvCE zrTLkK^d>C5=^yRY$jxZzUh!(+6)#YCnhDL*TWemQIT)A1#c!HK%Ifi@?6%Cy0T}oa z?x%i%q$c_NvSWwFdXxX5pq-;tmXN^hV0vy^8Am366}!0OKSOfO^BIEDOy4%rTNR|o zbXu~_-&GPkJqoeo1o>30@GWB4F7js{^NwFFE*qB-h1`h~*f>#xw`ugbSz)o$8r*s? zL5CoH?o@+sI6=HBEtzg7P%EL?2x7*^MSGUrJ4j60i!$;Ytww$ejm&-a+C1l=vejcf zJ}Q)qH7_ZnLf6|uHp-Zv+Ej(OIdeIc9p>S!C-VbekJ}vdBuke%PAe*HZ{KD~2mV~0 znQCBwvy{w**=B7QliCd90O`i8%_OGieTB&nPV6#EM0HxU^myyX+O5*#Q1L z;NgeXdOC!-QHG%|UA&$p>RLIV9kideXd>W6FfP)1k5OQDK)D z^YOxwQ`8~w|EOk_?Cgog!ikUU+y5>m(w5_0HY^7(?j6f9tbNnV978pCN=7u!h2=_(`*j>{)|ySX4roJYl?|Gp_N1rx+NT1ru#UK= z*EX+kd!K`-70y4=F8d->1(Y%;2joG6)Gu&$)O2Jh82fqVbh z8~p)cfq<@-+taUCBg~i9e|s*tpzn|HAA|Ax(u6p|i8OCQ4l-%Z^CkBD(Dj%*bW^jP zQhYMk2fV*MZC7v87l;0YN1VNN)yL_A+%>%dr%=fkQfvX$u!TE44#R_AgyFC2l=tGV zttupPda&7El1Z`XhzY$nH(2c=za_ED+Si`X&n%KT+m?G!)&d8ADR^8!mcBE4Ki!?F zyq_031{jxN8}8LNSwB_Qx;LcZf3b9KU~Lp{hv~~~vu%D`CQaFqh~Ti8D!b)2>b{@y z_x`tc+BRQwJDz$+S+G&eimk#M4P#v2n0?rJQ`e>kvsB{I58A1cKRGIG(DR5t+P1QI zW`q9+*AJXnftUH#F;0F5&t#o|=l%s3*_^#R%@i~~h}=Kx&3VGPkhlAWYbr*zYiejF zv|Gs)<$o%>(>OPMcW8#AXp9e*`VF&c7o2(yM0UzB6{(bSq1=VWkS@4OvN1-jSbktTf&n5iRmFSb|E*}(+*}a|U{d?89 znLYCwbCzv^8T6WW(W7*}E|j=0twZSRPz5`!rC%R;^Vhz~)NXje_CL9WL6+H-C@e-u z$no-tVYVu5XUXD6XB*h{WH|l{W}JOC7&YiImd8)HUhWff@AgFwd4$u=-gfQ7X3$L*=a{a_7&Yl?4z`1hk{sH-0k$>C- z8~V6TYmE2SNG2R$xtvx%t>-@9_b2MGy=jBEGn;!)9_8HMfwNAIsRZq{wQh+_Qp9VW zxOMWXd3#O3gwek7DkP+R5B#E?T>A?CO@=Bq72!^P|1!Oyd%fCrCV^MxFJTvYdsa(S zSn0R*o@8=?!j+*`7_Bl{=4rj4_ej>m1AdQVi?4E#rx-se!(Gp(?ST{ z{ky+z#fEe75PVWO6#zvAfrGq0zvz!(tz<+?k$#^0xx#Ser|bzf=lDUr%KKR@&J&02 z+STVCq$6}!h1z7~OCocRFFkAFm+81Sn2Aj2rS7Yk4p~Es%j6<#=;|P5C9_g7x^hn% zuq;yrNZ{Q%=W_YZzc818C8w$QJeQ=!$4uKj{I&h)bEg4dG64Q z?DwxJ@ci6XO15mC_PVggh`0~cv~lqYhhHx6BBbl={Ne_*{aFvu*L-6tL+)vvt!h>Obh(mxH)?H$WA?H`N-wdV=FVvmT4CSye1YNMm`FggAK?i8lf@W#BSVv-6p;?v{+6g)TO~0lCX&c!P4i{=wBu{8!t$Q2{<{xLKaOie%LYy^DN2_g zJUo7_&HqWvl7#N+r$y~`scd<-*hjPExjL7sVu8QCwul;%8sRgbbL?qufM+CF8a6h5 zQBA&uoBG~YFtJjdkT<^hbx1&PHH7v1I}~}aw$3{>rL%7j1qy##8RV`tmK_`zgSuEd4KF z-`KLHx0-G-95-x1&ahBvy6hL5D-ffqJ1kxvbs_EQBZT;A+~{Ck%h0#vI7?xQEGT3Z z?1TpSV%dh9*0NE##@d;N-%9aDtxfqfJ3a8OlV|)DqPzC}Z+dd#ZOUv)yUovTzY3HQ zf07>f=%b-fz_A}S$PhIiLyfj@JaFW`jDsiboS8OlV{QSrIhc*ul5z?ZXC3*8TPGYZ zT*>;e61bn|6N2>rX(xG)nF8yG`TQOHG+@5&CW2rYeZl$y+nW?fqSMhdLg-A=s7zMK*`6-p0>a5 zFAyBJt7_C2ZkFX4{fEDCB2FRLF!lZ8*}rzq=hQkmI*i)Rmd&&;j-tuR2e=cjdavB- z1f@D$CxWLEUTaew2EJZD)s#!XwtQ9`D$%-_-lMU3XB;+MXfV%Xpaiv2rQeIG@__A_ zxpKcq=RL4aJ=r>v^!jBWuY!oQ9X*ll>bwgs^x_5}{E7c)|AgxCXoR#5b4ic&v8(jY zHpm*NUMc*c|FnKe!h1#NAaMc{B%FNqynj=o-;VM`ziWSX?*n-+GGcFvW>6q9z>9j# zyYnpUA>awBs+^h{=5S!W%2kbLk*?k(|Mu-&)rrBW&k}8?kx|4P-L$qR4T)Kb!LrZa zwGIZoY;9Fry>v+{_c?e-^p@u%03Y)OS9Fp2t}#kk<3*{aUx=6Xjq19Sf?ZkZ)q#Ke ze->E6*~M>3yo?WGRrL6sTQ{}4V?bBq9-1uN)4OqE=pMVU02ld&Y3w6|M;`5`)IXz& z63q@5Z474g#qG`R#NBg=iay@kE^+Vb_{}GenS1K>2yLCcFp;^WhmjwKNy(33ULYOI zmfS)yfdu*7b1@OzbwlUbDmZ?>UXv(}b$qOj3*-_Rd3d@CU-F189~Dqs`{wSM84F&I zb>v2*H@1AFs^;+MFLn0kkfoIMhViK_hAr=^)c>AQl_0&qZnqSdG9*K3--E>DbsnF< z)DFKId$M`IWyK?u_k3kl=AqdyuK^b~!qw;Lb@LBkWkJe@$5TI^yKpjyU#(v-bnLJ} z@toyU5fsHox(rQk4&X7m>Ki7s^*WC%8dh;5d}g8gSe)69@QcqBRBrKfyW^|3!n8fB z6b#u0x@`aZ=^u8^gV3M%>3*aTrcNp?rTSXQ$E2jFm2n>h&gHl9Y)Qt0k~=oLgrsl1&D2>celJRHPnfbK1W-;P=U3 zXnf=bf97bSrKFXiPe)gWYKWhl&Cg1(KCIWWUNhgx$yene8^>V3mq3bD=inYnH7uhOb8t@p9RFlhz5Ifh zmD<3ko!@l@@>l2&;?cJZ11Pl%aLTv!N1Yqp@XU1H<{mih@gj28t=*gKMFuQnJ^I$U zX0WM$jqUbl0UO%9^5TOs=Di~sKBoF?)qmaGb1Fhk!x{$R1L*V7i<9d+Qf1?zyrsmy zgMt`1%n9yWQ{k+aKI^A!_Iq8_mCal00xv<3`Go`WJZlu=Z^4 zycM$O4Dif5?3bgApB2$Cc%;!kOZt1||G)ar&(?)~6wi9Ia`^V5Xn@j!=C)2FdVWUddY(sytqBdamg+ zk7=*YOXkNbdW+pxvH^x)mpW!ar@0cYFOVovFDHaaeeeDs7a%y19mMvI@?Wv0&`YCS zXrMpy4t_uHLCm(~zn84)_SuHh29g3%av7&dSJ$tG))WiD_tf`+(Bao3KC{os3j3NK zW1x^Yn*ycJ#KVo)w86o92^Txh-dVi$)-h%H?dNg6DI~QN>zN+afkA9*p#`fP2oY!4 zukuIDOBrz(Ca|S-c}&@M1S(`p0$d*R?K`_bEKlqcF2c+z-pedjUu5t8y>}cRkUP#V z$J7VhcynTSut4~&S)wn*;a{P;Kw!OI7YI+%5E|n8D(c~N+zMQFUVVPiDDIA{r?2F@ zn;ueRi?60B?8bfF);na|uzwVd{>-C*yTN~1%!co7`rgHo^6aU3@H3|%vx9rIr_^gl zTv5B};koO(bg<3ref|9Gm)~3ArBWJVW#O9b6@0!P<_%dQso#+;!$$C?|vPw zYFljpu$d8QmuN{p&QI`0S}-gzn&I&WOQln@ew|AU?J6BTR+EWLVb+0+ zRowlQ*7r&)!M)rOSxwI?Hl>b|8oilW>_U)2sP2pVp8!BpVEfUpmCx`CO*Br-J%z<> z?S48@Re-xebk3PZ3sn`jl&-qce$`Qt^SSJKhsy!G7STVmOb;ta-X}D)Td)=nELmT_OnmYt8~?epqJl_62$Dbj`*Am zf8m#jza$Zv>XW($Yn9p%<6ueWv_n%?QMgf`@S{7WOY4?x%m&Sy$(6aaVj1ikHNLX- zT>deY!!MrO~nw`0rOP%EM>zs(bbzj z7n_(hGMuwRD~_RbWLpG>i-vz{+vahq;ed|i7)BHc7-350(^llh8?@}E^bqhC*Fw?` zznN}4nkAYuE1`9lU@>#vyZbQk=TWw}t}%=Bk<5{t!}$wbG~F7P_mB7h{V~+o3JTAV z_#h@v(#7)?jKt#M%frW|xXFO3VEfKjO(L@{`O*~1TBZ~yyx~%r+FO;I1XPp}3J<0# z^k3;3jT(-I(zI(Zp$~UyZ8_0mv^p(L?!SOuu#L_*B|KWsgTKhO*Hn5m@x0ZO*kDLb z^$t>UQuX zY@3Muxc4%a+YJ!J8OKa}00C>>D_uJ+}JN$(ogYmwUHP6sTl?PDo0m?V>VAv?{Q$3=e+Kr7uBBN_i9~6)I!vL-v|W8G zXo_m9XcT4_F_k!Jf_}7YSgS3kg<^&t3A$dnq(aG$XqI3}L>bbB&EnWKh+X{|BHk)+bMXFDP_e!3{a>$^_ruc-RtMM$GZpTq|P zPhuCwmn*G>Gy4d3U-z|^dJn*Y2wr3kldI8w0au#qTE+Pp&Xjv!XH?`HMa;^Gdylao z-oE_Kw^$&GIJkWfzL?%_tI)q$@k>glyHLYK<=en!4V;V zQC>_FtgRKdTd}BSDwNvBFs_f^ShVH-ZdFAi60JiRr2&O9$c>*;4Rw@QIm<`iiFoA? ziZC8N5dIG!+b ziF*#YK4w3;hpbe`uu9DxeqG?IlMbtN@Ba?!20b9H>>%yTmtgo?N^& zJ7O!!vx+!Qo|l2ybuV1-bZS6p z|NlC=^j;1E`Ox-B1MtkB4z-h&!*KNJ$_o(%)djwEk$0L;XgCPdXmbL*ver>bY8nD(3myNQM*m<%7Y|A2NL! zk^7xZ&(mVo%m|>j9Oj`;U(igRD_hR{!$p)P6^0yYxAbX^h;CD1g=@4HyvBr zG}~2ID*N863k8Kz)$J{F5&4d;2VHuA#m=oFBCM~EqM-OrOLrtQ!cfBlu zWX%s%$c8A7Z=raaj#5>;8x!1NeS+P<_-)GVO_2@$g+YkXD{JBxIcekkmGD=jil#Wo7z;IMZ1INx`@U*m^#w_U@Qu)6 zn^kdLJo?fSg> zJl9-AwHcP@z45v48=JchdCE9hcWjB5rXJlQH*9qPI->K%dU7SPMMHt@I2~n&8PqIOGW0f4r-pR@EDkNg!N7Gu znRMSeQ6C7LldEgdd@AunHbbS3S>7TnDC^{h9{R?UJ9(|A8B&~l0sM;jGaf&^R9};H zxZsiC*qTbtb_`p@7bVcHX3^^%lqGyS;j{@A#H4Y^rv0I?TD!P?cSPYFCb(elb$znEv&P zG-&|5Hi3oCRD|kM|K$&#f9N0$Mxf3GeZ*WC*h&)iwgriwbz+&N z2S!u%O{x?ze+tngbX}_Ii>1}ol~JG~OZ=mkD-ILmB(c)%^xroS(P*JcgTI>+jyS9# zEXnD>E?o9E>pH5G25=ayR`+9NAb@XlyKk~m3W|3K-R&&Mj$bR0>(<-Xp-H5E^nFF$ z!w8T^79Mkf)&X&)Ct`N_R@m{wFBDN>L7{P5nWa1^6wEV{?*uBrpFx8xvY+|pI8gaU z!&q^w>y$$Ts^r%#Ox~|E)t>9%+I3AeZ%rK+dVDLKWh3ZX+Vs5(3}!(ToMuCtOfFGU zX;VGEdAq5dx@pml9}d^-y`>qsolF#gch?%B1a8Di1ls03sk!;ipEXo__9pnQY%d(S z0$!S2A9)2b;xYuGJBMYr<#zi@B1Z9F2DvB=t%o5Ek>}8D%`DQUEGJU_2`tj1Iz)Bi z?iDz+cJAcKzI;sNJ4AE_?6u{XyYpWVfx#i}W(u#z)VsR~#i;#$_uIAKsQd1#%Pe&B zR^HC=fBNfwq7b;;sAQP8;7X^rivNDZ_+m_gtO7T&8Jpzw&CG*{r-5VCsmdj1?bkA8|eW=d^i@24z{5Zrk;du2%1hxRX z6gqjZR;cA3eqz|z$tB6_jBFx&ZjBQ9eFUNdbMrz4(o;m%#*#K8-yq2JZs1ej6(Rp3 z=ROqUr`*4Lm}fDD4PHfsU+oToqkF0uPG>|W`h0tZzbL&>ec_os_l6heQ@e`ZDO+eH z&E`f|q&+X$r`0hZgKch_Zj{zL`}=)4?Qc}MnQyJBv~;W&N*2VM&jfZ-g2rONq1Fl( zHR+JUR`Zn+sVdwI5kh?31^O|Lu4Eodui=R3`Pto1z=ZX$JLr@9{S{JMBFD~dPMq$UCh`YE) zcLkg5FFymC=#Vlq!Mdptd4iSoS|)PcL(yG$cZrFO0_(P9pm$m|{*Zy$+|%kJKKoR_ z-lDY)<=(+g92`qyM?5MAC+{tLriz{WI2QfP(`?a_ktk_D?t{MC;#1O@j>;>9^qG-x z7Q6L!F}S!9S)(`BC1R>i69*l7{Z$AmA@RgV9C7qPd|)+HbZz1=xi~*&Xb_Ybv#ZVz zKRnp%6_hx_<3vepgnCl+%WK}Y6AwxQ`bEyeQW1B%oWU%S_@wzuNb$GBhpi#?$s^oD z->t=$dYTyW^wf)t%QNPCW_LeeWy`C@6dawF)UWi;dP+`WXc02f#0J@FqjjtXZn80v z0J#np(f=54USLRhL6KD=Hi*c^SS_Z4d6AMrCWTQ^p8c7UTUe8HD0ft9LgcyEr^Yod zdx4Sml6fX~{msR-)AeX^3ct)k2ZNUCl#&9l+Gx}v_hj~^k`6T$rDP|B>$TCC9ruAb zpAD}|Drg!z<5+&a-Fe;r8}zBfS!y%9d_=j?4BxdrTx`|%1Bbb@m06BF0b9HOI0M2(=kG02-!~jbCY;*?b zoIfv9>T#P!yoQZ+YWB@e3ZlqSM1~d&J%@kW>NmfCTZh(~oaUR@_Nci8M#xH1+bugC zT^*Otl*m?N*KRQxXAd)j>E4&Jrk^Cd7?<@BER^BBCC23zmuN^XlI^7z6&hh;uYR?m zBCw%0_xj#s{PI|P6ZH2(p7(zHi$x2!yFaU}C9EJ$u=v~jZU>z1%QwLRydxy|Q4|!Y zTFNzLFBtt+dW1)?S`id|IbGlR^EeuJ`n!mxLv3H&EQX~ zGu=;}Z^dVd?{)%DTt7X$aGh-n#2Mw&b?53qZ+=%0)C zAi(6Zn8)gX^A{dxn&YNdA~4Rw7E8R&OIX>yQG~3Qok=8w>kE9JQ};Yu;OfdGwHm=v ziC=mx9`qQ~%KU`aY+Wa|TM43^J;u{FDv~VX$p5HY3XOidWOkQeB~q zpWNDU+%T8+pC!6FBlZ zn(nj^f7mgts?DOSP)ELka`jht*+9if2$F~IW`3jVV4y;P_jW|;mC5y*M2G)l$32ut)*vXlrAfa<8l`EJP`#p)9* z)B1Pz^KWxOPY#(8cb@&F5jw9vcm%kMy zG)hX2*4BThSbK$oy`H^mA+IoG_b>DU0_%-cI?ZP2lR-6kiGeYRYo_Bw(#BS;79&yX zBrN*Q=T%bIeEWe3yQ%Rds$?1%w&!B&g#_^T)P!=Tc;?jRR@WN1L?_%nq4fsxj+By3 z>;8JYsLJWp`3uiQ&%n}jFnEQNX(POs0OE(FziXAQCw0lq1LzCQz$L z8ky&qk_?Fr?>7un`}!crTOg>=y~wQldZd=f;rL@DHQM*`bUu~UxfP-hqcXdNwjAB5^wl7(pix>;1A5%D!2UT5ls#3bJyDR0)Z)REoD&k^U?_ z#ORI+im-tw(B|To>Dtfkl~A#cU<_l^ek1D+h3CNI;Ym)CS5Ho-ypnfn^`ily1!o{wyeEl6H{+G^q zfjaDO%YP@z#~SJuBFg4f(&az}R)3~Qz$Oi&uG(|Vr4B?wZPm>Xk2$W~Roh7y8QtpP zSD4--L3%}TZqcV6GGtvM&k;<(#7<=8f^_yU@g$=?&3|#1l|zIRe#vQ?-+}bw9-CLc zy9K>T!Bcbp${Me4U-eaGYTxIzJ~xi~ah}(n0ZTLwJ=vo6FnOW1VR8^<7Hs zUs4$ytB#FW;A<)2|029koy64eqeMmVVx6vcOaZ**`Nr4MMum^1&|ica*J@DxzgPQ?l@p<4ElC z?~*<%*NSnX6(XP?x9jTrYh_fxyjbO|rjT^8*K$(GF1lK%hkdS97Uo>&_2mOYap)T_ zM>JNvqoa+9^Af9~)%h;_?6MC{ltz?+7V=)~tCcSY((SLg-~3C|#iGR- zKW#Y6ViXtel^M-ah(x}=lxgi_be|cwaycDTg-{M1(iAmlx~-^o+MV zA`*vA2~I5|ZwWwDh+}ezJ=;&(2*R&TWyNJyA^)_#U${Bs-t@BoBhj8|oG_{~k&}dG zsOqTutnZ#w-9szwd6|YA%<>gcB-Lq04&`S*9oNA0^>^_*V)&87YjiZBngEzC>bJWv zd4Km&<5{`RzbTR*n6($a>^}3fUq(}yu-KZt;#K5YA=(xuVPJ$&PN6uZ`09!CcI4U= zVZ9LMu$qj1Y9AS*O&8!Sc(S}UwSArXh}V(IL6E0rbsX9yzQP()t?_d;kwhizuU*Ui zpTq6CRGJ4_f2L=yDy8Xb8tWDp!{iQ6Z+B*`O=q?j>unLyBJ&^&M)1`10{H1f`)Et0D(KA^q;8+4XE?&Ew{o6tp6k3Y&bziqY7WF zOnJp19kii6HdEI;JVkng^-$>k)7Ld-=RkM&xxBznJeXh8C@m=?xT3fU&dBLH%EZ>y zQ=K%otFzao%~hqXmEBKlcip1AdyfuQk;;H<8ER=1H7f7jc>8R(UtYu39)ehdnV_Y`_qQz$xUaoQIV3W z(#F3c(Ci<7Ez%Pa^YMC@P7KkS+&t6m%B<`Y57@oEkYgG@G!E_5!N6(bEk^l!Q@lp$v;4LP$N|)*hLn_`A>7HB%|fips0mm-JPLRs zU-ojDLGSGbFJ?CPlhZ=6os3U27#TthCj|=sA+Ry(ACd3B^?p1o|C4T+*Vrk~EGJ#f z%@ZGSZKW% zEEX80es-nXx27rFQN3w^pb^Tg&(A`T`Zr<{YhSF{l5}gxFpdw#{kihRtxd!<-U%a8GbQa zZ*1|4=Z$s3yA9jbPK!A5I@x)NLlcniQyK*$i=SnZ3m!TJI=tgXob-Cv^3&-xpj?yo%s!v}B!KyisNc+1am8lQ-&{U{e0 z2}7O1IL1*&{Jy-1q6++E^EVs6qTc)VazM-2{QB}>wuM)#pULTPFfF;)eDBk1jm-#F z94@vO^|^Vcft~V(zfad3|M`%oF$q3UkeEPbLPUz}>p$&sQNL^&DlxIrZzdOy{u8~f zPO`uxZS$EwDHOV;w`H(8S7anb632}kLh~2K(R+fO%Aax9KASzKD6A4^*2o6VO||6G-4zj%=}8m zbvw#)9!B0ArhhQkEGob&(}DBR^^n$2efYrfCFy0#Jh`s>Tj^`x&ZL&vQ^fCRANap6 z6=$SN1vfdEwf1;PD6X{gl-IpUq8pl2qX_bLzWZfr{NV2yTI?O?0OR)tMKU3p1A&y0 z>>dfsU<01GHFGWx(s_d>ooyKYJT8qD1=t>a66~leP<%Iou|$mAX!I^Km|*rR|Cx2s zVU=pqWx@Q9;p%vx3uA%q)_9a;HZe)S}!K*Lb^( zoC)xdFYU6_|0hg*vX?l)qGJ)S&f~FpmwJ#zvAc&WlWfaV-fTtn9ZJfWd_~6@3760} z;=K~dG);Z?KQ92M*MjSkpHV*z&-h}U{VB@cZ()Hb8)eAfHJ*A%B=u3|5SLn~f%okDuoDJ}XkJg$OhMTRoPDe0J zlhvKPAgTb8Owu&;jKPQK+^CHxbLZOJdFO?2?t&6_@!g7|9oL$(Z@0}4)FKYQIC@u? zSKG2>JXjEAoZ&z@c;>2%sIS5<4xNxo5vxbGy+Tjj9hM}#Ku2`rSLuXNW#sZPLo!1C zrnsO=^$BuXN@i>-hvZt@x@r?w+nc@1fDAf*kAMfhc&{{D)jRCBZ_t{PZ_w$G!MBKjSzKj@Br6q`P?{#xgIqRKt z@`}p)!tki;&;Xb@+BiVcDILgYB-6E9IX5TemKF`2@n~5lG!OVJz7DJ=9vpLV6IE>U+sIsaW zmx^{!;Q6+(Y{^E{{a4B7^789vB*=NRt4a$zF;R(EDYW>LRgPR$^M@>?q#*5dI4vlq zLh-?fYMPl4?pi07mce?+*U2?F++;V_*xk&fy6e|BwG){;btZTMzO!=n1?8QTrS32j zpatLjT{Cyy(_rrC^>-H-7O&sTOf;c&Ca}9&^D&rhM+GMVZp)x_8`7n@>sWfN4kRBd%Qg zeYgpryFD!Kv16=0D!r;9wG_FQb*Q}h+=Us;5#@Qs867Cbd!*uKqt_%vn9LUU4+ER{ z4+HzEFW>$353Bg1AnEwbtiLZT6ZoQ{i)4_6=RlP6vseCY`)g5h;S#jjwk!4v-)*IdH zFQ)2RkwnUK=IlQr%x7uEkkTsfXU|S6Ltii!t$>$C+fzi?E55N4mtRZabjs-Vy9=L7 z%EG^9+NrBAC%ZIpZX7IfKr!omj$_Lav;XsJO!lBaM0>JcreyuuvBc$8iYu@`DJi*Q zIF3D!y^k2ya?x}Hf?VpvtoHk6$$)TI-K41;qO+0d5H~ngJ(*(t^e>lB*}e*WJT^rI zMPQU++OFT$BA4E@s_tI}Z$jATYjy6)SVr~#kDIL(MLgTd)2zx0!-+VAi@FbtFK1U! zbO(FCiteobpt-8EZ1|qk&kTe-Q{T!lKxryrz&NSZ`SDe9H_03&)U_L=OuZ~MS6e2) zG0*~A>@gLhhP$M!Y!E=m@c0=l1#%FZ`MFf;hV6saNaAcLofuV4PJE%%wg z5~z=AfYb!Loc(C@!nfG&y`*;GlOQZTui}SLA+7#`6V^|KI35S54Krhq8dkk~hGL=Y zi3IP$m0Gi{t?d!Dke|_~d`Yg8QoCzoN(1r^IqQ`;#EYBUtf{W4vQNXT4QCk_31RTr zx+E6l2lA-?eWDh~^Y|g#lMBoKqFb)84!=I_8?@(@jVpreLF0Yrw{tA3Fn#f=BgNBXY*wF|!|NF}nSK^u15XB-Raa-LxuS~Xs+bjt9jKJN$Y9|TxC8kj7a zco&-O3OW0mR6<=t2Vammb9J3xk44h0Q}F8vJAa{47uYT+!|&sm;Tq^aTN3M5LrOsq zVL<2i|7%-kvRkrlpAx^d+WS@840sWLh%e{X7meznIeEO$SBPHazm=lyvMA*jEqZA+ zkv$cd=X=fn}9ZaMm!h3&YKR9(!!Ib*dhnN1%L z{mW|3`f}+7%yqaY?F`RXQ)Skm|DFH^L29;EFH>)RbFMJdM7)pPUk&2eV zH{_;-aVc||A{k)P*>;=MuC|N&wl<~ZXcy^k(-?a}*n?1%t6VCg_G$)<@`3F1bnxCW zA@~1%s_blA6$?!OGkpEzh2~R28?`sT8g^*?WQC;F8(!1Y zPZW1gq?q^mn+yKH^fMPsxXxV%%*Nl%T1>IWTl+h|(|u6yz7*Y!ZDmK<#tgjiEI6;w z)Pd|@{N;CFH$z*rh{E|XTK#v^Q8K#asFD8|mKNOogR6K|w-eeIY&&^_14lY#vSO?I zN^XVv1>4<)xy`*kbQQs}U)o&WdCsbf%cDsQK)n-;oBSAK-{+%(Q* zCRHUH=5rTHG$x;0HvM;IF1b6V0GzL#XwWiBwuYl5^9C6KE7HjP*Lq?qEpHBb_P2}L z3?qTPdl$|5)82NWAB?o|Egh4=?v*)|(M~}-mvyn(I~zK%s$D!=@X@JC-+svZT0YSG zR$hOa((UlTjZuOQ@jcI~QS*A6qq)AS5K&`WIlFUrs&-3AO)OtMd8x*#iUVt$UBEaS zE4H@cV?#nmH)4S$ZmeYV!J&qe7DegjyQ?g?jHE>sG;up$$pGZ9fz<(JxuR!RRBb0=+j8yj9XV|>^ z8hiciAIFIV4vc3SsqJ!>Zq`|udqTAPUjQt#!Xbdk#NR^tUWrel?04~|K%2t+Hk6$B zED5_-{S40bvqz`;_vLXCZCl)^SaWCT^*d;#D_mG&Z_dsNOPoyR!v(DG;~8pQ5zRT3 zmekRtzgtNH8W?d<)*h^${?z3A2N|>V_=7O(+7^w8%PmN3G|Sb>^~&`%O2hd$SDR{w$gQMwymU>bqaLtZ9~I>+@UUzNuRju3qfPO^{Ei z;5%)>bISCQHUsm22BkETgHVBY<*|iOf);d6^IiRyvzYhV1p}bh*l@lP)MvR|ip#R^ zHLs5v%(~B-Ia#q^_jmEu;3vWT9qH0Obwk~^gD+kJybYw#gHfJ*M!>6%!J2EfAda{t)OSg_V|nQZDokQRjI%xDFJRd~Fo~dgb^3;Isx{w(k{wSJ7CCI+CTT;SaL_z~` zTT+afqD@35qrY73(7Em)_ou&NKjT&|XLkg_Lg2l>WqA@fjg; zgK43~OP}H9yJHqP#5C&N=zjx{_8AG1JYBX5$oeg&xlJtNuU+wRt0`&(aR9j% z3^fYy!J)U z@%vhDTGaNNViYbN4+XLRT$1njO#>&u;emR(hjl>OMf#|N)x z6KaYro%mipe!TGlerz82$O8}Omai?d{v)xmh_@IEBtkyElE`)EQa@s)h4bpz)psgt z-+;Z)b^WUZd)Mmcg%gYyZUe$gx>zZH4}5QuO)-ZMqY!Pj#cEgX-=fq?AG*VhaA>S_ z3FaNX9;_$h*3{)KwWBjbW-`#*y+IT4b#l^uY zYeXotpgyN`TT=|-s&RdN76pA(AnI8dhCHmt)(Z1~q1j0RJfF=fqx;K0V6pT1Ch$+R zb0Bu8QmTfOntXPz@g)SY(ZXA6Hhp(WcQ>ql-lgQG*SsR!X?}EfG{WdJhA{8g7#k98 zsI0aM_@Q5E)lIRswOD@0B|$g=R+|{xoWk_a$8|}t*PXc3IfaElFQVMfeM1qf%e8d> z5lf#R3tCP&&-b^~KU!~?-xv9*{;ei?R}-y`H9Eh9F81usCX-KUCG6F+*~Xuo-)mmt zAm6LX;y{SkEq$wJNA=SikSrSW9ExfN80tPZL}b&jLVO#+#i&y>cJX54Z*?hjwbDhu z!q$4RL04?q*!u3Fx{7D^vFj3vrMA-yvU)G=?;8h_;~#i-zO+!^QUU85bj2h!ei;r_wz%$QCFqCxRd%JA z3E>SWKO22=-d!7`jEoC_zEaQ?_|duo#ZRn5^3IJ|^4RKH{CZr~ajE&v2=KlfQsNi ze=+gId}fe|wrKsC1Ss!vW-~OnW9e{nPo!m+X42;bJ9HJJ&s7k|;3|_5WzF0dzu8Z) z)4EVHZ`AvP1>?O8Fl9>CH@U`(O?~y^C$i<;YLHn%xg{X2KO1qP9537s6G?iOca^1(poHV_ zZOHvAg!Jh*GXJ70?=y9ZAw^6fXTve>-0ja!v>HI*50p@h&;XO#b z{y%BeaVhn!-=Ze6X5u6}w=!T^W(7M%O8dz+pv0uT9gIki(dt2(L`nVecSTh7Tmfuf z&mWLW3Si=;^`DZi?n(6{57tw~>%pZoLStX~?mC9s!i79=?>8CRQkE);OS2pN7P&=a zL<(jbV5Tz)4a1DTRF}zCdmKtVXPR3tXWR%68|)TlEv%>BOX}0yAfAh6urbVo$pE=1 z8PV<(El(a@)=zHBkH`rs-|t#DKBW&3sn6u}wd2;`R9zr%!8atv^!u{U_@_(6RdG)5 z=DJe$J_r9Z4grnuP9GiwNF(ZOVb?nIJ0Vcki8)7A=~Pp@zkcZ9TzEl{mGC8vR}0yL z0oKx({Ly#LrDg&d;rxgTOSZ51n#c(xoSk~Wy;dfD^h|f3znk0fJ)xSHjQ@Wrht$rX zd*;a6nAl;`B(WFPbbH~hah2~<|EFSg?vxzmgOLi|Uk)_DK5N|KISrbfkr&Tj@ko`0 zb_I*NzqCdo(&0aCPcJBhFe>m%u6G8?Y~&jGNv&+C6!jY1Mp}f>^pV8`wD5{(MlO0c zx3W=VCJ^@IoGssWRD%cR>S4NiwHES5HME!N^r^J1ged`RB1cjOGY)CjL(XI3R&ZjU z*-30B66lo=q1huNwx3>1Jo~Dux~C_+)eiJGSBYp#m4PWNFO$ob7BqHEO$csY1}GHm z>F1*5fbAp1p1O|ZvnNPuZ)OR{?ftX-^`C6_2*xDXtEQ< zc(kS;EM9F1vEFpi{xcq@VQe%G1kKw(?#bAz_t9Ki!_?-@0~LUf=yaiN)3Z9(HuWp( z(IHZVb(`fGsgKNloWD}4ckeN!4xHW(<~ZO6zejVm;$JK%6>9c8L*Id{s*ct=&sow_ zgXT|m(>%kWYqtae8xOv4k8$8I-AK&xD`L{!bOGb;2~NnOnH zBR4TdZD#VU9EZ_~wM8LuAmA{b3gY|urZO_D9D37=$r<3d-k%z&O6WE)4A>skZR)ldZqkN$vKKU1kcprCc~mahgY~1oYh7x&%ok?K zh+F7wC;6QjJ8i(tpMM&9l#l<1^YR1HUScdZ9!<_R2jkKgVd(4TlAbuXC%ITwMk8X*YO&8&2G(kg+r@Lv+kbTBKaBNevM=FWXo#wECfTLx7M(R zn{0ihk(E3SKEOme#}|l)Lkn_sp<5DA?Y-3wPWg80TQud`{RQWXV5mEiu@pg0IRrKV zb#xjG-+1BE$M*i`bP)zB@R?^hJkdN~W96WloVEDo{FI)ES~!0rZqb|yn`V())Y|{m z>GNA>d)lk^*COO7Ah!B?JeXmIX*;1FkNd)>xCeW-51RrWN0qw_c~EzF%|?YVpmBrs zNi*80OVOK-vQvCrxdzs%8zm}G@O;0SD{>{kci%tV8FHmGO;A| zJ6CuocNEUbZuQlfIvk+SRVJ3La0LUXva`=t3k;$R?f}&K=Bqrh>`+%2i_F;C-ucqz z$@|v#y^lLZG&2}rMw}itl~{>a_97fASydGN)r;9$QH(zup4b;@FzwD1DqFEizb?po33d!M2^+kP^F8vcq1x_l0^Yz0(YjyVIy{MU z#zRrx!@G4Bo&@>~MMT$E0CnX&NURMTGl;CS<7~K;W^pza?R5p?WkMeXBJ9V!{H&UJ zBm}L+`a$iM=5~+lkU;EGUY`Ob(0=p2Hq$#c#c3B&9v>vTZ%`hNk^wRXND}*LsuKa8 zf(VtFlo_tThc*>1N-KYPw_lRVP_CourB>V0>6aGUS5Tss=4bzq21XOorXh&l$4vgR zD+W00-b_h#kf2)f%Ph#1pLa2wkE zcB^OEgi2BWBw^INJqBijrzw2x^reG8-Wn1FPR&ppO-F4G0PK3BE|;n}e*7_eY082r z^rcw6O%gsSH23Rx_FT=cUU$_=b1`Q6C}-(@9;M!4bvSJ#6X_fRJ#KO+3M!VZT=qks zw$&@80a!I%So?oFr<>kyt%VhPdv&-_sNYp2$jI_!Ik8<=Y@n0OoPVB%pE7@R%AZ6 zPf_A7({0L?uN%N9^ehPn7#mk;m^yby*)jdVws3FYKC2itMaAjiDm9TW=vL`(Cmr;= zuTaCy2w0t3;BIYcdV8#y$L|)EodU|?eP-{8Zc7cVyon~5$kBd-*3dm6Zmkuy=)FE{ z{&$3oroO}p13~#?8-J^3t1oH{_2)ksHsP^vcr6^K0R%qz+R~eBQq-!jA}~Z^=&bVO zFyFCQr4pJFSO)6GraKFBDVNh=&_;j(^j3Q zjg}@(U_~VW(6JR}G~w5aKu+Izoo6U5hplt#R0G7$cUXNC0^T^1qh9f#&xZf z>MlmJhaIoFr@UzZ+ycYgr3Eaz&S5+`b)~@n(N?j89m8x`>W6LWWPk~U?%s&d#c47> zkZ1ipfZA{a&t9Ow(ITj~ME5Wa$n>qTmfo8%uA#ht*E^F8FS#EUK$vf_@ z);NS59RG4?x(0A%6q>m8=eC*T^y! zYxoZ^l0FRB*px6&$H^D50OdN<31yJ87!>rYJg$E9etw_d`BdLPy;iVQ85GZ9ykXKe z^VAY3o(n$6w?!(B92GrZV_b!O+GA4=UHIsydgtr*0-AmD%`EOV1jhR1MTPTZb;c-* zO@YmvZPZV0;zJfhz+#!;oZj@-shC+?v+Q5BXBxL8l)r)4u> z2wzp;Kli6F==PaiiEc|0@KLyf3f#t0?Qa$zs<4ycqj)uw-+hw-z!{EyUPi&j`L9D= z`#Bd%R%o`&mf0$4E)N%7)5sfTWNhXHolO7Xt}%dG0}dpeao-#=mRrHsi_KT3u75^- z9PL_*TANWRNjq0DBpPBYUjk+D{{YIjlxb@TIsDBLBNrkD02vfb+R*M`d5 z_p+ACJ3DOCsJt!)IqpPD13F&UAH>&2aGT>SH1dmdSIcG6L{X*RM<4rnIjw>anf-Yc zUY7w;DTF>JA>lh>_@a6Ljv-e^q3v@4jHfo6FVr9=mxMDcC^0P|ak`2PfcTIViTo^i5_+?`m$T7c#{BO&CIY8~A*Q+?APpaaoiM<15xu1YRT1 zDc3tOZ$V`f_l>BLSs7_@iIcZIy-|yo&&dXWrp{jYQB>0)0oLan7g)&GN52NnR45eT z0E$xGPkI$=Ijt!-#^ZjQ_Z6`cn$GoEps-@zBqX5W(G|IHUi*%Mo=l4+#Ua+4DXy;P zAc%Fb{eJ*|IwNT>V#QrTxTJ3Ja(Rcr&Ak3SxomL`*Ck>*E2 z_vC+|yZqzKe`4Pt(_{wj=YT{kz*j?XO4z_lDj1wV148UJkbg5#ovPjc{4FnsiUequjc$*59_J_?%`~l* z!u}6UY9$QR(hSCvOng3;H5bWkJ2~joJM+;KD->CJ`j+HUd7o)6zY;$oA`(HrBuQOJHEzQTicqnTaG{`R`Y->nxF{V;?|PWQ9~ zOF;M5$2W)^@#JX5V4HJJK{&s+%s(fB%m@5J6^~V`=pX+dwsxEu5crV3QtAYzMSH28 z{q$}mlTBe2p7uLE_m2D2uK&#}y7rR_v9f~JXdY{;)0N4a8~BY$^|DHi^X|=gTUWFg zrPoyje;Nj*(#hptoQ^DQfd;s76T?JuH>lM@9m1H_pEu3jFZj_$cA+DDyt%2xdo@nU z@z!^s^&gF*8jSXcZOU;eHcab3__3BN%`mGn7pwUcDozi)y$Cc7Y}MiYe%uHT$|sD3)$Nh!>Iq^^n`%YraJO0 zQ1m#oV6=B7MeKD4p2E=vWpcF%fLBgWAXvxu=I{jK&@DP`I}Ae#qZ}oBJCoJ~W8(FV3*X!K z@P!l0nsN3}ZP^$9yp2U*H0Bzg!Wdn#GRfTI<3i6DZRZoGvTz>eD9N3ee@P!^XpQ!#rjp{{tp71VZak* z<^}$U!>&tltD(k$_u{8u2S3+8r0vlQBK);3%ULWtnC2*)i!>XjpS%L>lVSfKQGXfG z^!xpfG8zs#M$pIsT(W7(h z`5&+M=llQN;RZLhYv($3Jjiv5i6{y9SAg>Xrs(E7%gn5Sbs&5kMTpl7z0~CG5!QA>;F@*~0?(S;>VAzeO7W zCWEP{x4BIbC}K9S)S)|Z``&Fz`Hyzj;iuh5!lL0<6HDWza}vMYAMl%mE|Vybcuzz# z{75!P&396e-)`k0?}po*w}OaoRQzcASCky{mU~h<&2GFPV~V9-eN3&K%47Rwm1VVM z_2ql>@=dUz^nvVwyn!Mf>hR(@upIJ_wpOD{r^4 z$czr9H}dGY1^kIGC>|;kT_lFTwu-nUa>KuIgG1_|5@}n%{N{gDi<%*~dvQ|~O|?n+4*MJr(MkS8wk zh=~yvxnWM6v<9Vsl2N~hpM?CrBl_4qWyg_MQShm6(d;iA(FLvbY`bu#9P{-dr{Hh^%PyTh` z?A8Q0h$&1Xw}mz+=0TIE(#p5UD6OhQ(pm>Vc6pt=3U^pF1X%KVF0OS{fI?C zn|esGOS7xn(}RN%#DM;=jCL;N-@MIluF#rz0nH+ z*WI2j_WHRtBbCnHphe?s23s{E7cHI6J;J1MI%{+A zlDjSGb0()z@sZ%R!eMVN<|!!Qmd|PJw9Q-N$|vH#eW!wiiurz%5}UR?afY20XeJ!O z77%qo2fTLq_g@bB}{Rc4mq?Ugu4sI0(9H zbt&nNZlEW3Y`2Wk1rcCbVT&QXBYH}DloOiG+sqR4I#YRsiJQUPVNe^4oH2-A@tlrS z(-&O0YR;ZM2BmRQaBgJu3?R|Ccj*kQynp&{)7eD4Cyr(-mk1zH!F)tOb3B%VDD&)qm=%%_7#kE z<4LdsLz!b2!&6SGkjqN1w^vI@1_+(l=R$f7H60o7{wtps;TFFOnwn}~6NRy_F{s^Q zUhu4G=MwC67b2Uty7bbdF;YWR+lwvjorJ6C;_0I=>A#lW?!J`~S z_UY|gptQnrGan#Ozjnssfi~j1aD&L9*7w6&yDc&yAj+&|yuILzhUpr&X>zH|p?NX2 z%VM4p{c6Cw#3BRVOHTIjE$Y68m1bA14kL>qwjcdMzzBz`>kF?i8Su5$4n&&%dGpNq zAkpd0U>1zZep%PD3;$TLWxa~e>aGO#Nzr@ei{+elwBxgNbG3`9AMhDZ)D&5&9vq1L z+#Y0j-SkCA`3ZD43en6o$ln~Q632NKmM{1bcS3~8&fM$wD&p*vn(UcJHbq?^WKUs=>~h5!0U_SZPm`D!o}|krn3I+S`3;G zyfRCaN~ad&*79Q}YOsIP(27Vr5N@s+L?W-X(Wlq0bNF?5qiE&%U2H0XKGv=ah#)(Xpnf%!Q>V`4U(B@_E7|p=|rg{?B5Q4bJ1{H;Lf_XAawK&O1vdRjihP7& ztJ2*W-ZMVdkd$pQ$M_-B`b#FO0hN7XMak8V>5G@|Fp{RW`XfrMd8pwm$uZ$Auj8^O zy>OkHdM?T8^*fg*zPk)-@GU93Ek*HaaCkdPT-oQ-+F_b(dx0x5QgVu|^tFwYhrU7W zB`0aw@MOZV^R~y%v#Ty=qlliUFK#cJo_e8H^tY~MJ?FLc z9&&K2f5hr2;{LEiD$rO@zq7&1JED6|9@>3+3*}WAS50askWkeN`-U>k2Mw^bp=|ej zxwC(0rE_+I=X>R~YjdCw!q$p@iOD~c{>H2;TxGnOb#^7`mmJX};9uYqS}rNZIk)bR zoo~$YD|P=?N&ZJiZl=vX_O88NqP?rPLs^gNgKsj0-R(a$-;b+ImAhoS_De+Jpf~@~ zlvL&pb0ntmq7lZj6dMBF+xQ+J1{rIrpnh|96()<(YuKA7qc8^u?)3#`YQZb4F&63t z8GmEHb7tLsNH>sRATd^16z%YxYSpTDS17Zl3D62f-hOP;fP!ta6Vf^JWO)BK{#hK4 zUSYTN!Md(tI~5s=?Q|@#&(N>`$|=UENJzsJ%Gh%#V86PKBn-b3{pdNQqJ*!3F_Np2yCpw7reyJi0rsQ4RRle=XsrWZOLa;z6C4;YH&gyJE4ONW^$n} z?37oHrLR&;ejbYrVY(L0+nQ00W&(YvTE1I=0q@vZ9Hqe{Y%SEG`+NFo6KxlRLYLGG z)vt9_a5>E}KeR?Gm@zfBac|z?^k74^Ct~^4Y1_=#xN3&XX0!t0{1Eds^v%jr_GW)i9nYAB#uNCG2yzsp;^yRw4jQMWVC3L!KYve*KRL*CygcM(Q z{C;-!I-IvjTk!(lcBssd^*ksEYu@Y~wo6XQw5&hNJ?3 zpKzUbv^#jN(7I^E)}|}C1xz{nRVEf?3)vQB;TL$XwedPJkj60{>kauX<^|CW06&Zh zP5BUTevTX2?m)jS9Doyw_I%=YV%GkhTGB(MARRmz~*6#tsYI~TfX{y91^=q z%Y)QjJdA=HS$``7Ez7EI3<`r&*5k^avvoV67xmSrT+q2epB!d(*YG&fvEu)0A63!e zQrO*@m=h1`N!(yi;>vO`?9io#25m$?!hC~0g`oLFLa!s=| z9%cyBUSK?$y&_+~@UnNbO|C7Nj)P&m+50f&YNBf2$%Lr0Pn$TA-&)lYiZ&)sqZgR9 zGTGRJO))Fs&^3zY!u*vuj-5vOAzo^)`4&7j%^*a2LA>Vz5fqP$Tw@BelXK6mV2O~^y zrpIC3<>juYn#X2*LE&>Bx`cx0r>EyZTGfxGC-6&e#E+3D6Jgh(l=)j9y{Cf;T8`3s z0**~_Y5oti8ba6_tl2^2m2l2c-}tN_2pLIxr2|@ztT=^4AnY@zR<47a@^8P-q{}y* z!gKEpbR9+Mkdt&CY9^~$mEGe+Cw6pGMW>edu&M{qxLKT$M3gaEm(E}c#j+OjYhXQk zF1KFELws&^1DFbczhjBH|F{75wAqZSK%u$JT>Pb=Z&IS6)Jf(sI}@rhl{k_Ke*-SE z(k4JV5z)P^a?;#}h;*;ZTAmDJusLnq7pbqd>^t4DTdQzQ+dVBI?W2_Tv*BO8xR*YK zac&iQpZPo zzi=5}r}4r#z6#TMIFz~w3K{SQk5k=sJYFiCmO?TFF@%6jVGtG~N6zBLE@MPUcUuN| zXuii}dmo_1W_%XASF66YSAk&^$41C!vaAtOi7bT2VXvYoB8y&Dd^3ZMoy}kOi0rH| z#>;(JXybhlqD^|5GcLTM@)i_dy|bRMFJLyrF!25}OB~$r5}OzGxc~ank^{SVa)|yW zmrs!G+r(VD^^Lnuj+m3UACHX8kSByhVEP(yUJw2T$<;jp$KKgG$#t0oH~+8THG6#t z9aqw{Q~m0+rde8z^>BO_b1W_=$zUYV*ZQc55hU=`G>WVFu|Rxtd*#Iqgum+UJieP- z!yq}yB}KC1iWH=jCCF*(?@AK)^1B@gzded5>+F=C9WHkC6%mb@Ca(fwPQX@5R~2I0 zZpa1s5A9^>CO;i|!NmznAuu$fWD%hBR!b_0=zi1s>Jw}H$3R8W4xy>k^!iyGWD+HBlmN(ZUD7_()U?x-g5nRf_vN^atrJo4|b$B~^Z0e;FB+1?n(s?f0mX$K2 zgn0J-X+Uk+m>?*~Ui+G~CZCn3k>v zG(ru?HH;?8Im^)73x4u|v79AyHqd&u z+Jd3tBX!V4JB|URR7atbj;mf#OvdTNfbl-$l(;V(Q$j3;3N<}r3mgBbK9ftIkuY~2rG z*=6x!yrR&}Su*Ey2`=>U^ywvKO_%Yq%jQEI-!wyYl{IgKHc6$;4!3{(@cdV_!%(jS z4jxC{kE`-ttxsNg?LwRZ@N*y8ODuuC3U~f}yvBPgigToeIw`|ItrJW+UnYp~=?mHs zy%$$;5WpHlSb04iA7*3~!rS`vN~iG5Ldeen_L9*ykM=IRstnVmx^}pk+9IOeg_RCV zO(>X+F3ZXZ4!L4J&7@AdCSM?&rbt=nV%GS)`Y-3hua>BXcJZ&Sa89%&+}>Oc`Gjq~!Sdu&CLn<pbYpsC)sJes9|Vlf|h%^_TN z2B+W#rZ0FOTfc`JZ4OPDm7=YI<}{vJ(Bs@Vdpm@Ko8lYVz)xqK^Gd#{I!?Z-G#Yo~ z{z%=M5wo7xH$4N6#EMAFUTVkNdPC#9#)#&=^UX7<3xT6%ZnHnl0l*wF;+ z#2D->8(;b)0{j|z{GjpOEEdBU^i&ko)>HjB_*D=;TUukKP~NsxZNZIEc^3{U$fVke zyv*!RDjLXDTfE6YUl%1k94q3y+FNvi*CTo*KbRY3~e_7kV+21P%uI`_y*fHs`i6N69}j z{+%MpTzb~$FN+w4kej3fhD`UoP zhVfj#6}JXsVGX-`V@>7OAv>}H1&Fix>1J|o*8Zco5=P1bKXb1U%(|xWK|)o1-;^)9 z``{G5%|i2P2prA!G!+u~_<^p3T1DR%r$gd$M{sNS+4Gx*_iMTA5gV@Ria*6yf5lLj z-bnr`1}l7*RSSyIIVtnY(y4_E2jm4Y5I&{;`^_+0$h|Rea4I9A0`)mzC>b?j^DADP zg3o3WR9>x%wKj9&PGa5KU=1{CXSot=9GLezC`L`e=yUpsksJCA$ynI4oOw!2|)~jG}p{UyS(xD=v)wwiuBF75ITKMfI@D?gs>M)81C z7%X|^*I@?|fnR^cD|v9v$Z9djFD}b`gn97q(RxfQHLhnaIOm(2xV+C?B3GZ^#r)gN zQQYFDs2+RUCIQ>CgDsIV0tFsM++|09l~*cq?5KUvqVpv-O=%?)Nt*+R^ zDu9v-Oeods4c$)beR*f$|8W6iHfO1oZ*kQ~jaxH<3i>*#L)4Y7v$XKxcN1X zuSIXr-r?UbWU?4N3&mX$u}_rkZ)(_DeOa2SmMM~1@S{SvVoTBqH5i{Wr{Ci~9DMW| zqExu|Oa$?VWPdf|c=SJpSXiG)S0&fcRye$Rw^srfiUIdJn5ny;mlBrF5*L)D8JVX8IF(&BXW@Z%kIMc1C^&|Hv;{Fj9G$1 znpZ)}l;ib=z$d}Li8!G6VC!>R1&;XVB`fV@8OG~DThGt>NjYt^WFoE#c~Si68Qn~( zP?<6g;01EiO_txx{4c^ux`D2K61^|*KC0K|*VQC^`?2^8U(eT-H4iKKajK6+lTMc_ zkRBI3SUuQ0*pEt`!;3%m%ayFH4&SNd!s}{1Flv7ox+(l}DYp!MO~5vz>b(`oWbkEb za=hweE+0UTG!e6(h(Pk5^?N(X9^~k%I3ZI^PE5E5KGZspm%#-vr0^{5DO!7zCzjLn zGxtAoUV06p#nM9$M@o*wKPA(xmqYdvr+M}gVGQbH6Bi6$JTwD(==wJd)D%o8oyAS@2eEW=xyRG9XMV5XH(Z|qW-kO zemw^@wI9^~C+X$i=;7@q^C>4F*j@vGyL57vr1%p_k4dXMLzp$GbE%I$KT7 zgZPVR$E=e*JR!-ZYU*L+CB6*VtlDZ?uP-lezeA^B>Cid-fW zAsOz%%mvbSfn~un^Qtvdo7cT=A6?s=BA4+|WRxUOr{}ysd-m&sIzJ2M zI{(-B&fZ4~&?g5i>Tl$w%|3?dO2^9uIay7$ewtpssh8|rZoj_79g1^CTMm~o&#A}* z75lvA2GoLNwoQ2|m%oYk`^;GK>6aID{JI5%)X7AQ`@?)#ei zaDt6CR-hj^tV;Fiui5VUfkzQze`nYxuj{Wbmo%42lbCp!zp4u) z{lc`}n&Sv0f~!|Rpry3K0}3_eR80o)C}H}^~z86HlOhaUUu zWHET(qEm_DvO4{{i`q$ava!N=ABzrPnht5am`Elyo8`}gN*DF-7Q7F5^08}H4jHGX zsyOR?HlKaINueAkC?X%#+sgdCp8Wq;s9YjT`0jwQ(N&{+PL6%60sA-%fa9F14VZ{G z`jaPAj*qexrmT>@vwL2Xie;p^cJmh+l&oZVk59H`l$-YGa;8m6&$5wr!3y zuzARN)EFok0?EX+d8mi}n3fZ`dFcHbAe@Y-ByX8xeUhFq)O7P37l#=P2z3|C@LiIX zfuwOy@iMBNwj)Dx)qrx{UZ-p{x>0BJKp{8jP4~ux{=84jE4bWsb0p2~I=9NfdPS&p zY&tA6z}$;7qs)i5#vIJ?5CrvUwmX&Eh(Rb?BdGlPjfm&%huvbk`iF;27jl?rN^w5%|-X*$Rlz1&S!J#XLAAj>jYHyU0HL zF!6~1i>NcgdeVA8v`*)cV1Lsa77>l(#>H{oKTdB5mCkI*YGQo`|FqXFn2ZJ$2c`$+ zHpg!UCdZh=4(}Y-xC6^Smw#OtMaTgAHlvA^-zW;sS+|Dm6Tgrzn27Vtz|j<*)GdFp zkONFjE<7F5oPz_Fi<;vEs81;e_&~4ZN*nco?sM>$>GfrH`~}Z`QgLAJ!O}>9SI>?O zR2ogsAV1c>mb6}ho$btvYkJ;__Xf>qjl5#4-P%0OVf@}x=oo1wOc}ds)d@S-YInEH zuSMZ8 zyzT+K3Zi;)2mGmD7nwt~*E2T6#I?O6k;J#)lRZSn{g2dF*HQN$Ti_eT8JTNC>H}t7P|iDh$ba{$ zc~tz`Y&Ov1lnpibnQ?2-126v6(?xIi22$`=ng1~%Uurh?;^-PpYMiL;$&o8Kq6w*h3Epz z;S|RVpw!De0KgE^SSuZ%Pg9Pj5uIgMxZ=9>l~E24c)P4cSBPWVr0E@FSUh2Pr?BtqHjLR z5DXI~FYg8mIPFJFcZ8^H-fKvbZw27~-aKz63~)3=dp3K`Ya0v@rwiju37KfoMQHgx z2XcM(F_rN3Jo26)U14o1;cAm8sqwFZWpvj$=6~_UXWuhpHF})@3A=AheK(X&D1uw8 zQ*@p#df@Gyl&kh$eF?b325(buzj`gzAx%4mx z5e54}Aaf`Tj|vMQ{yf-0Lby^PZvGE;rp~uE;0_lZ7(&@!q~4#WSTkzDSRr^dNen+T z3UN>&Js!pADu(0DGTiGc%PDuJ5syWJ>TFsE!-DF++-X|0JUPpaO1>lR-XGPIDZ(&1 zD9#B62ifcz6!%i(vADei|8gAwHJxk&BhtjFnd0=?*fb7GK zlsq8ed3;5#+yp(12cjTp1=